CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

Tamanho: px
Começar a partir da página:

Download "CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo"

Transcrição

1 CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados e escassos Espera Controle seria necessário Provável conflito

2 2. Concorrência em BD A concorrência (por dados) existe quando temos: Múltiplos Usuários Múltiplas Operações Operações que buscam os mesmos recursos (dados) Operações Simultâneas O termo concorrência refere-se ao fato de que os SGBDs em geral permitem que muitos usuários/muitas transações tenham acesso ao mesmo banco de dados (mesmo dado) ao mesmo tempo. Em um sistema desse tipo, é necessário algum tipo de mecanismo de controle (bloqueio) para assegurar que transações concorrentes não interfiram umas nas outras ou não causem inconsistência. Em uma situação ideal, cada um destes usuários deveria executar os seus comandos como se ele fosse o único. Este seria o maior nível de isolamento. Entretanto, é muito baixo o nível de concorrência correspondente a tal nível de isolamento e usuários poderão ficar aguardando por informações durante tempos relativamente longos, à espera do término de outras transações. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento total, a SQL definiu alguns níveis de isolamento. SGBD BD/Dado (recurso) Transação T1 concorre com T2 pelo recurso (principalmente dado), (pode haver interferência em T2). Transação T2 concorre com T1 pelo recurso (principalmente dado), (pode haver interferência em T1).

3 3. Transações x Concorrência (Efeitos da Concorrência) Em um ambiente onde não existe isolamento total entre as transações, a intercalação entre os comandos das transações pode produzir os efeitos (problemas) que serão apresentados a seguir. Efeitos que podem ser produzidos pela concorrência: Leitura Suja (ou Dependência sem commit) 1. Transações T1 e T2 são iniciadas. 2. A transação T1 modifica a linha L1. 3. A transação T2 lê a linha L1 antes que T1 termine. 4. T1 termina com fracasso e suas operações são desfeitas. Assim: T2 terá lido uma informação que nunca foi confirmada. Viu algo que não existe. Problema comum na maioria dos SGBD s. Leitura Não Repetida (ou Análise inconsistente) 1. Transações T1 e T2 são iniciadas. 2. A transação T1 lê a linha L1. 3. A transação T2 modifica a linha L1, atualizando seus dados ou apagando a linha. 4. A transação T2 é concluída com sucesso e as suas operações são confirmadas. 5. A transação T1 lê (ou tenta ler) a linha L1. Assim: T1 nunca modificou os dados da linha L1, mas não obteve a mesma leitura dentro da mesma transação. Pense, por exemplo, em T1 fazendo duas operações de soma (totalização de uma determinada coluna). Este efeito fará com que o valor na coluna que está sendo totalizada seja alterado em uma das linhas antes da segunda totalização, produzindo uma soma (sum) diferente da primeira.

4 Leitura Fantasma (ou Leitura dupla) 1. Transações T1 e T2 são iniciadas. 2. A transação T1 lê um conjunto de linhas que atendem a uma condição C1; 3. A transação T2 executa uma operação de atualização que cria uma ou mais linhas que atendem à condição C1; 4. A transação T1 lê, novamente, um conjunto de linhas que atendem a uma condição C1. Assim: Embora T1 não tenha criado linhas que atendem à condição C1, novas linhas participarão do resultado da mesma consulta na transação. Pense no exemplo apresentado no item anterior. A diferença é que, na leitura fantasma, aparece um novo registro e na Leitura Não Repetida houve uma alteração em um registro já lido. Perda de Atualização 1. Transações T1 e T2 são iniciadas. 2. A transação T1 lê o dado D1 e armazena seu valor na variável X. 3. A transação T2 lê o dado D1 e armazena seu valor na variável Y. 4. A transação T1 atualiza D1 com o valor A transação T2 atualiza D1 com o valor A transação T1 termina com sucesso. 7. A transação T2 termina com sucesso. Assim: Para a transação T1 o valor de D1 deveria ser 10, mas efetivamente, o valor é 11 (último valor gravado no BD).

5 4. Níveis de Isolamento Em razão da influência existente entre as transações, o padrão SQL criou vários Níveis de Isolamento, eles definem a relação adotada pela transação com os efeitos da concorrência (problemas) listados no item 3. Os níveis de isolamento definem: Quando eu ler vou bloquear? O bloqueio será durante toda a transação ou durante minha leitura? As leituras devem ler a última versão comitada? As leituras podem ler dados não comitados (leitura suja)? Níveis de isolamento definidos no padrão SQL: Serializable Read Uncommitted Read Committed Repeatable Read O nível de isolamento a ser utilizado pode ser definido: - Através do comando de início de uma transação: Padrão SQL: START TRANSACTION [nível-de-isolamento] SQL Server: BEGIN TRANSACTION [nível-de-isolamento] - Pelo comando de alteração das propriedades da transação: SET TRANSACTION ISOLATION LEVEL [nível-de-isolamento] Níveis de Isolamento x Concorrência CONCORRÊNCIA CONSISTÊNCIA Read Committed Read Uncommitted Serializable MÍN ISOLAMENTO MÁX (pode resultados errados) (sem interferência, com espera)

6 Detalhamento dos Níveis de Isolamento Para cada nível de isolamento, demonstraremos, através de exemplos práticos, alguns dos efeitos da concorrência que se aplicam a ele. Assim, será necessário criar o BD do modelo apresentado abaixo (Sistema de Leilão). Faça-o agora, utilizando os scripts que serão fornecidos. Obs.: para simplificar os exemplos este modelo não segue regras rígidas de normalização. Read Uncommitted - Permite a leitura de dados não comitados. Ao não impor bloqueio de leitura (lê como está), se o dado estiver sendo atualizado, é possível que se leia algo que não vai ser confirmado posteriormente. - Grande nível de concorrência mas sujeito a todos os problemas de concorrência vistos no item 3 (leitura suja, leitura não repetida, leitura fantasma, perda de atualização). Exemplo prático (LEITURA SUJA): Situação do Produto cujo IdProduto é 10: IdProduto NomeProduto PrecoInicial MelhorOferta 10 Adaptador PCI Express Wireless 150Mbps 42,00 NULL Atenção: para fazer a simulação da LEITURA SUJA, copie todo o código do usuário 1 e cole em uma nova sessão (janela de query). Faça o mesmo com o código do usuário 2. No SQL SERVER, selecione todo o código do usuário 1 menos as linhas do ROLLBACK (inclusive) em diante. Clique no botão EXECUTAR.

7 A seguir, execute todo o código do usuário 2 e observe o resultado do select deste usuário. Qual o valor da MELHOR OFERTA para o usuário 2? Retorne para o código do usuário 1 e execute as linhas do ROLLBACK em diante que estavam pendentes. Qual o valor da MELHOR OFERTA? Qual o problema gerado para o usuário 2 considerando que a transação dele já terminou ou mesmo que houvesse outros comandos nela? USUÁRIO 1\SESSÃO 1 -- Mudar o contexto de banco de dados -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = Abre uma transação BEGIN TRAN -- Cria e grava dados em variáveis dentro da transação SMALLMONEY = = ' ' = André = Adaptador PCI Express Wireless 150Mbps = = NEWID() -- Insere uma nova oferta para o produto 10 INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) -- Recupera a melhor oferta para o produto 10 = (SELECT MelhorOferta FROM Produtos WHERE IdProduto = 10) -- Verifica se o valor da oferta é a melhor oferta para esse produto IS NULL

8 -- Atualiza o produto 10 se for a melhor oferta UPDATE Produtos SET MelhorOferta WHERE IdProduto = Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = 10 ROLLBACK -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = 10 USUÁRIO 2\SESSÃO 2 -- Mudar o contexto de banco de dados ATENÇÃO! -- Muda o nível de isolamento SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = 10

9 Read Committed - O padrão para o ANSI. - Só é possível ler dados comitados (não permite leitura suja). - Diminui um pouco o nível de concorrência em relação ao read uncommitted. - Sujeito aos outros problemas de concorrência (leitura não repetida, leitura fantasma, perda de atualização). Exemplo prático (ATUALIZAÇÃO PERDIDA): Situação do Produto cujo IdProduto é 10: IdProduto NomeProduto PrecoInicial MelhorOferta 10 Adaptador PCI Express Wireless 150Mbps 42,00 NULL Atenção: para fazer a simulação da ATUALIZAÇÃO PERDIDA, copie todo o código do usuário 1 e cole em uma nova sessão (janela de query). Faça o mesmo com o código do usuário 2. A seguir, execute a transação (completa) do usuário 1 e em seguida a transação (completa) do usuário 2. USUÁRIO 1\SESSÃO 1 (pretende fazer uma oferta de 50,40): -- Mudar o contexto de banco de dados -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = Abre uma transação BEGIN TRAN -- Cria e grava dados em variáveis dentro da transação SMALLMONEY = = ' ' = André = Adaptador PCI Express Wireless 150Mbps = = NEWID()

10 -- Insere uma nova oferta para o produto 10 INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) -- Recupera a melhor oferta para o produto 10 = (SELECT MelhorOferta FROM Produtos WHERE IdProduto = 10) -- Espera 15 segundos propositalmente WAITFOR DELAY '00:00:15' Retornou null -- Verifica se o valor da oferta é a melhor oferta para esse produto IS NULL -- Atualiza o produto 10 UPDATE Produtos SET MelhorOferta WHERE IdProduto = 10 COMMIT -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = 10 Resultado esperado da transação do usuário 1: como a melhor oferta estava NULL, ela será substituída por 50,40 (oferta do usuário 1). Mas atenção, a linha WAITFOR DELAY '00:00:15' fará a transação parar neste ponto por 15 segundos antes de atualizar o valor da melhor oferta para 50,40 (o comando update está em uma linha posterior à linha do delay). Enquanto os 15 segundos correm, o usuário 2 inicia a sua transação. USUÁRIO 2\SESSÃO 2 (pretende fazer uma oferta de 49,20): -- Mudar o contexto de banco de dados -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = Abre uma transação BEGIN TRAN

11 -- Cria e grava dados em variáveis dentro da transação SMALLMONEY = = ' ' = Davi = Adaptador PCI Express Wireless 150Mbps = = NEWID() -- Insere uma nova oferta para o produto 10 INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) Retornou null -- Recupera a melhor oferta para o produto 10 = (SELECT MelhorOferta FROM Produtos WHERE IdProduto = 10) -- Espera 15 segundos propositalmente WAITFOR DELAY '00:00:15' -- Verifica se o valor da oferta é a melhor oferta para esse produto IS NULL -- Atualiza o produto 10 UPDATE Produtos SET MelhorOferta WHERE IdProduto = 10 COMMIT -- Recupera os dados do produto 10 SELECT IdProduto, NomeProduto, PrecoInicial, MelhorOferta FROM Produtos WHERE IdProduto = 10 Resultado esperado da transação do usuário 2: como o usuário 1 fez uma oferta maior, a oferta de 49,20 do usuário 2, não será gravada como a melhor oferta (que deve ficar com o usuário 1, cuja oferta é de 50,40). Mas atenção, a linha WAITFOR DELAY '00:00:15', existente nas duas transações, fará com que a transação do usuário 1 termine (commit) ANTES da transação do usuário 2 (pois a transação do usuário 2 iniciou o processamento depois da transação do usuário 1). Responda: Qual o valor gravado na coluna MelhorOferta quando as duas transações encerrarem?

12 Atenção: execute os comandos abaixo para que os dados do produto 10 retornem ao estado anterior -- Mudar o contexto de banco de dados -- Volta a situação do produto UPDATE Produtos SET MelhorOferta = NULL WHERE IdProduto = Elimina as duas ofertas DELETE FROM Ofertas WHERE IdOferta >= Complete a frase: O exemplo acima mostra que o nível de isolamento READ COMMITED permite o efeito/problema de concorrência (entre outros), embora proteja a transação quanto ao problema.

13 Repeatable Read - Os bloqueios de leitura duram até o fim da transação (quando uma transação faz uma leitura, os registros lidos ficam bloqueados até que tal transação finalize, mesmo que a leitura já tenha terminado). - Leituras sempre consistentes. - Há redução da concorrência em razão da duração dos bloqueios (se alguém quiser atualizar vai ter que esperar). - Apenas um problema de concorrência pode ocorrer: Registros Fantasmas. Exemplo prático 1: funcionamento do Repeatable Read: Atualmente, as 10 melhores ofertas são: IdOferta DataOferta IdUsuário IdProduto ValorOferta :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: ,02 Atenção: para fazer a simulação do funcionamento do nível Repeatable Read, copie todo o código do usuário 1 e cole em uma nova sessão (janela de query). Faça o mesmo com o código do usuário 2. Não os execute ainda. USUÁRIO 1\SESSÃO 1 (seleciona as 10 melhores ofertas): -- Mudar o contexto de banco de dados -- Muda o nível de isolamento SET TRANSACTION ISOLATION LEVEL REPEATABLE READ -- Abre uma transação BEGIN TRAN -- Mostra as dez melhores ofertas SELECT TOP(10) * FROM Ofertas ORDER BY ValorOferta DESC COMPUTE SUM(ValorOferta), MAX(ValorOferta)

14 COMMIT -- Mostra as dez melhores ofertas novamente SELECT TOP(10) * FROM Ofertas ORDER BY ValorOferta DESC COMPUTE SUM(ValorOferta), MAX(ValorOferta) USUÁRIO 2\SESSÃO 2 (altera o valor da oferta ): -- Atualiza a melhor oferta UPDATE Ofertas SET ValorOferta = WHERE IdOferta = Instruções: No SQL SERVER, selecione todo o código do usuário 1 menos a linha do COMMIT. Clique no botão EXECUTAR. Note que os resultados dos dois comandos select são os mesmos (como esperado), sendo também iguais ao apresentado no início deste exemplo prático (note o valor da oferta : 2.808,02). Obs.: a transação não foi completada (sem commit). A seguir, execute todo o código do usuário 2 e observe na parte inferior da janela que o comando update está aguardando (mensagem Executing query... não termina) a liberação dos registros lidos pelo usuário 1 (especificamente a oferta cujo valor se deseja alterar para ,00). Retorne para a sessão do usuário 1, selecione e execute apenas o comando select acima do commit. O valor da oferta foi alterado? Justifique. Selecione e execute apenas o commit que estava pendente. Retorne para a sessão do usuário 2. Observe que o comando update foi completado ( 1 row(s) affected ). Retorne para a sessão do usuário 1, selecione e execute apenas o comando select acima do commit. O valor da oferta foi alterado? Justifique. Qual a outra mudança que podemos notar em relação ao registro da oferta ? Justique.

15 Atenção: agora copie e execute os comandos abaixo para que os dados retornem ao estado anterior. -- Mudar o contexto de banco de dados -- Desfaz o UPDATE UPDATE Ofertas SET ValorOferta = WHERE IdOferta = Exemplo prático 2 (REGISTROS FANTASMAS (ANSI / SQL SERVER) ou LEITURA NÃO REPETIDA (DB2)): No momento, as 10 melhores ofertas permanecem as mesmas: IdOferta DataOferta IdUsuário IdProduto ValorOferta :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: ,02 Atenção: para fazer a simulação do problema Registros Fantasmas no nível de isolamento Repeatable Read, copie todo o código do usuário 1 e cole em uma nova sessão (janela de query). Faça o mesmo com o código do usuário 2. Não os execute ainda. USUÁRIO 1\SESSÃO 1 (seleciona as 10 melhores ofertas): -- Mudar o contexto de banco de dados -- Muda o nível de isolamento SET TRANSACTION ISOLATION LEVEL REPEATABLE READ -- Abre uma transação BEGIN TRAN -- Mostra as dez melhores ofertas SELECT TOP(10) * FROM Ofertas ORDER BY ValorOferta DESC COMPUTE SUM(ValorOferta), MAX(ValorOferta)

16 -- Mostra as dez melhores ofertas SELECT TOP(10) * FROM Ofertas ORDER BY ValorOferta DESC COMPUTE SUM(ValorOferta), MAX(ValorOferta) COMMIT USUÁRIO 2\SESSÃO 2 (insere uma nova oferta (valor de 4.000,00) para o produto 333): -- Mudar o contexto de banco de dados -- Nova oferta (valor 4.000) para o produto 333 INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) VALUES (424075, ' ', 300, 333, 4000, NEWID()) O INSERT desta transação será executado ou ficará aguardando o encerramento da transação do usuário 1 (como o update do exemplo anterior)? Instruções e observações: No SQL SERVER, selecione todo o código do usuário 1 menos a linha do COMMIT. Clique no botão EXECUTAR. Note que os resultados dos dois comandos select são os mesmos (como esperado), sendo também iguais ao apresentado no início deste exemplo prático. Obs.: a transação não foi completada (sem commit). A seguir, execute todo o código do usuário 2. Note que o comando INSERT foi executado ( 1 row(s) affected ). Não houve espera. Por quê? Retorne para a sessão do usuário 1, selecione e execute o comando select acima do commit. Note a alteração no resultado desta execução do select em comparação à anterior. A justificativa é a presença de uma nova linha na tabela (gerada pelo insert do usuário 2, uma oferta de 4.000,00) que atende aos requisitos do select (está entre as 10 maiores ofertas, substituindo a oferta de 2.808,02 que era a menor entre as 10 maiores). Selecione e execute apenas o commit que estava pendente. Selecione e execute novamente o comando select acima do commit. Note que a leitura é a mesma (a nova oferta aparece).

17 Conclusão: A oferta número no valor de 4.000,00 apareceu para a transação do usuário 1 como um registro fantasma (apareceu no meio da transação 1 sem que esta tenha feito algo para isso). Este é o padrão ANSI. Alguns SGBD consideram que a leitura não foi exatamente a mesma (base alterada pelo insert), estes consideram como uma leitura não repetida. Atenção: agora copie e execute os comandos abaixo para que os dados retornem ao estado anterior. -- Exclui o registro DELETE FROM Ofertas WHERE IdOferta = Exercício: a) Execute a transação do usuário 1 menos o commit. b) Execute a transação do usuário 2. c) Execute o select do usuário 1. d) Execute o delete acima (DELETE FROM Ofertas WHERE IdOferta = ) O que aconteceu? O que fazer para completar o exercício?

18 Serializable - Isolamento puro (nível mais alto). Efeitos de uma transação não influenciam em outra transação. - Redução muito grande da concorrência. - Impede todos os problemas gerados pelos acessos concorrentes. - Bloqueia os dados acessados até o final da transação (como faz o nível Repeatable Read ) e impede a inserção de novas linhas (tuplas) nas tabelas em uso. Elimina Registros Fantasmas também. Obs.: Bloqueia inclusive insert s que mudem o resultado de um select (visualização). Exemplo prático 1 (FUNCIONAMENTO DO NÍVEL SERIALIZABLE): No momento, as 10 melhores ofertas permanecem as mesmas: IdOferta DataOferta IdUsuário IdProduto ValorOferta :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: , :00: ,02 Atenção: para fazer a simulação, copie todo o código do usuário 1 e cole em uma nova sessão (janela de query). Faça o mesmo com o código do usuário 2. Não os execute ainda. USUÁRIO 1\SESSÃO 1 (seleciona as 10 melhores ofertas): -- Mudar o contexto de banco de dados -- Muda o nível de isolamento SET TRANSACTION ISOLATION LEVEL SERIALIZABLE -- Abre uma transação BEGIN TRAN -- Mostra as dez melhores ofertas SELECT TOP(10) * FROM Ofertas ORDER BY ValorOferta DESC COMPUTE SUM(ValorOferta), MAX(ValorOferta) COMMIT

19 USUÁRIO 2\SESSÃO 2 (insere uma nova oferta (valor de 4.000,00) para o produto 333): -- Mudar o contexto de banco de dados -- Inclui uma oferta alta INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) VALUES (424075, ' ', 300, 333, 4000, NEWID()) -- Inclui uma oferta baixa INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) VALUES (424075, ' ', 300, 333, 2000, NEWID()) -- Exclui o registro DELETE FROM Ofertas WHERE IdOferta = Instruções e observações: No SQL SERVER, selecione todo o código do usuário 1 menos a linha do COMMIT. Clique no botão EXECUTAR. Note que, conforme esperado, o resultado do comando select é o mesmo da tabela apresentada no início deste exemplo prático (10 melhores ofertas). Obs.: a transação não foi completada (sem commit). Agora, vá para a sessão do usuário 2, selecione todas as linhas referentes ao comando use e ao comando insert (não selecione do delete em diante). Clique no botão EXECUTAR. Note que, a sessão 2 está tentando incluir uma oferta de R$4.000,00. Esta oferta, se confirmada, tornaria falso o resultado do select feito pelo usuário 1 (que está usando o nível serializable). Assim, a operação do usuário 2 será bloqueada e terá que aguardar o término da transação do usuário 1. Note na parte inferior da janela o Executing query que não termina. Agora selecione o commit existente na transação do usuário 1 e clique no botão EXECUTAR. Retorne à sessão do usuário 2 e veja que a inclusão da nova oferta foi realizada. Retorne à sessão do usuário 1, selecione e execute o último select. Note que, agora, o resultado é diferente do anterior (nova oferta de R$4.000,00 aparece).

20 IMPORTANTE: - Vá para a sessão 2 e exclua o novo registro: DELETE FROM Ofertas WHERE IdOferta = Vá para a sessão 1 e execute novamente todo o código, menos o commit. - Vá para a sessão 2, selecione e execute o segundo insert (inclusão de uma oferta pequena de R$2.000,00 que não interfere no resultado do select da sessão 1 serializable). INSERT INTO Ofertas ( IdOferta, DataOferta, IdUsuario, IdProduto, ValorOferta, HashOferta) VALUES (424075, ' ', 300, 333, 2000, NEWID()) Note, pela mensagem apresentada, que esta inclusão foi confirmada, ao contrário da anterior. Qual o motivo? - Exclua o registro. DELETE FROM Ofertas WHERE IdOferta = Fim dos Exemplos - Resumo Geral: Os quatro níveis de isolamento da SQL de acordo com a sua relação com os quatro fenômenos (problemas) da concorrência: NÍVEL DE ISOLAMENTO READ UNCOMMITTED READ COMMITTED REPEATABLE READ Perda de Atualização Leitura Suja PROBLEMA Leitura Não-repetida Leitura Fantasma Permite Permite Permite Permite Permite Não permite Permite Permite Não permite Não permite Não permite Permite SERIALIZABLE Não permite Não permite Não permite Não permite

21 Exercício 1: Simular uma situação de concorrência e bloqueio. Use a tabela TBCONTA do banco de dados DBBANCO (código de criação abaixo, exclua o banco antes, caso ele já exista). CREATE DATABASE DBBANCO ON PRIMARY (NAME=DBTESTE, FILENAME="D:\BANCOS\DBTESTE.MDF", SIZE=10MB); CREATE TABLE DBBANCO.DBO.TBCONTA ( CODI INT NOT NULL IDENTITY PRIMARY KEY, CONTA INT NOT NULL, SALDO INT NOT NULL, LIMITE INT NOT NULL); Agora copie e execute os comandos abaixo para incluir duas linhas na tabela. INSERT INTO DBBANCO.DBO.TBCONTA (CONTA,SALDO,LIMITE) VALUES (123,5000,10000) INSERT INTO DBBANCO.DBO.TBCONTA (CONTA,SALDO,LIMITE) VALUES (456,200,5000) Escreva duas transações em janelas (NEW QUERY) diferentes do Management Studio. A primeira transação deve alterar um dado da tabela (o saldo da conta 123, por exemplo código abaixo): Obs.: digite mas não execute a transação ainda. begin transaction update TBCONTA set saldo=saldo+1000 where conta=123 commit A segunda transação (em outra janela) deve ler este mesmo dado (o saldo da conta 123 código abaixo). Obs.: digite mas não execute a transação ainda. begin transaction select saldo from TBCONTA where conta=123 commit Selecione as duas primeiras linhas da primeira transação e clique no botão <EXECUTE>. Vá para a janela da segunda transação e clique no botão <EXECUTE>.

22 O que aconteceu com a segunda transação? Por quê? Retorne à janela da primeira transação, selecione apenas o comando COMMIT e clique no botão <EXECUTE>. Retorne à janela da segunda transação. O que aconteceu? Por quê? Exercício 2: Anote o saldo atual da conta 123: Altere o código na janela da primeira transação: begin transaction update TBCONTA set saldo=saldo+1000 where conta=123 rollback Altere o código na janela da segunda transação: set transaction isolation level read uncommitted begin transaction select saldo from TBCONTA where conta=123 commit Retorne à janela da primeira transação e execute as duas primeiras linhas. Retorne à janela da segunda transação e clique no botão <EXECUTE>. Qual o valor do saldo? Retorne à janela da primeira transação e execute apenas a última linha (rollback). Retorne à janela da segunda transação, selecione e execute apenas o comando abaixo. select saldo from TBCONTA where conta=123 Qual o saldo da conta 123? Que fenômeno que ocorreu na execução da segunda transação?

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento. CONCORRÊNCIA 1. Introdução O termo concorrência se refere ao fato de que os SGBDs em geral permitem que muitas transações tenham acesso ao mesmo banco de dados ao mesmo tempo. Em um sistema desse tipo,

Leia mais

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso): TRANSAÇÕES 1. Introdução Transação Uma transação é uma unidade lógica de trabalho (processamento), formada por um conjunto de comando SQL, que tem por objetivo preservar a integridade e a consistência

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Controle de transações em SQL

Controle de transações em SQL Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Gerenciamento de Transações

Gerenciamento de Transações Gerenciamento de Transações Outros tipos de recuperação: Além das falhas causadas por transações incorretas, conforme vimos anteriormente, podem ocorrer outros tipos de falhas, que ocorrem por fatores

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Projeto de Banco de Dados: Empresa X

Projeto de Banco de Dados: Empresa X Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados;

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Controle Patrimonial WEB

Controle Patrimonial WEB Cccc Controle Patrimonial WEB Manual Inventário Conteúdo. Introdução... 3 2. Inventário... 3 2.. Abertura do inventário... 4 2.2. Relatório para Inventário... 5 2.2.. Contagem física e verificação do estado

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Elaborado por Maria Lígia B. Perkusich O que é um gatilho (trigger)? Um gatilho é um tipo especial de procedimento armazenado

Leia mais

Banco de Dados. Conversão para o Banco de Dados SisMoura

Banco de Dados. Conversão para o Banco de Dados SisMoura Banco de Dados Conversão para o Banco de Dados SisMoura Objetivo : Converter as informações contidas em um determinado banco de dados para o banco de dados do Sismoura. Restaurar Banco de Dados em branco

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Tutorial contas a pagar

Tutorial contas a pagar Tutorial contas a pagar Conteúdo 1. Cadastro de contas contábeis... 2 2. Cadastro de conta corrente... 4 3. Cadastro de fornecedores... 5 4. Efetuar lançamento de Contas à pagar... 6 5. Pesquisar Lançamento...

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL

Leia mais

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br JavaServerFaces JSF Fernando Freitas Costa Bacharel em Sistemas de Informação Pós-Graduando em Gestão e Docência Universitária blog.fimes.edu.br/fernando nando@fimes.edu.br JavaServerFaces e Banco de Dados

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Software. Gerenciamento de Manutenção

Software. Gerenciamento de Manutenção Software Gerenciamento de Manutenção Tutorial Passo a Passo Do Cadastro de Serviço à Consulta de Serviços Realizados Tutorial Recomendações AsinformaçõesutilizadasnestetutorialsãoasmesmasquevocêtemnoseuBancodeDados

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 Leitura Obrigatória ELMASRI,

Leia mais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las?

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

MANUAL DO SISTEMA. Versão 6.04

MANUAL DO SISTEMA. Versão 6.04 MANUAL DO SISTEMA Versão 6.04 Inventário Manual...2 Relatório de contagem...2 Contagem...3 Digitação...3 Inventário Programado...6 Gerando o lote...7 Inserindo produtos manualmente no lote...8 Consultando

Leia mais

Agendamento para Importação de Notas Fiscais

Agendamento para Importação de Notas Fiscais LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2 (Orientamos aos clientes que utilizam banco de dados SQL, para efetuarem a atualização preferencialmente após o encerramento das atividades do dia, acessando

Leia mais

Iniciando o MySQL Query Brower

Iniciando o MySQL Query Brower MySQL Query Brower O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado

Leia mais

Table of Contents. PowerPoint XP

Table of Contents. PowerPoint XP Table of Contents Finalizando a apresentação...1 Usando anotações...1 Desfazer e repetir...1 Localizar e substituir...2 Substituir...2 Efeitos de transição...3 Esquema de animação...6 Controlando os tempos

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013 BD I Prof. Lineu Mialaret Aula 25:

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Oracle Comandos para Processamento de Transações

Oracle Comandos para Processamento de Transações Oracle Comandos para Processamento de Transações Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Transação Unidade lógica de trabalho contém um ou mais comandos SQL para manipulação

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Manual Sistema de Autorização Online GW

Manual Sistema de Autorização Online GW Sistema de Autorização Online GW Sumário Introdução...3 Acesso ao sistema...4 Logar no sistema...4 Autorizando uma nova consulta...5 Autorizando exames e/ou procedimentos...9 Cancelamento de guias autorizadas...15

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Como atualizar os preços da ABCFarma.

Como atualizar os preços da ABCFarma. Como atualizar os preços da ABCFarma. Requisitos 1. Ter o Microsoft Office 2003 instalado. Pode ser qualquer outra versão, mas eu vou explicar com a 2003, se você utilizar outra versão, saiba como utilizá-la.

Leia mais

Tópicos Avançados de Bases de Dados

Tópicos Avançados de Bases de Dados Tópicos Avançados de Bases de Dados Henrique Madeira Exercícios práticos Transacções e Controlo de Concorrência Nota importante: Antes de fazer estes exercícios é preciso garantir que têm uma conta Oracle

Leia mais

MANUAL TISS Versão 3.02.00

MANUAL TISS Versão 3.02.00 MANUAL TISS Versão 3.02.00 1 INTRODUÇÃO Esse manual tem como objetivo oferecer todas as informações na nova ferramenta SAP que será utilizada pelo prestador Mediplan, a mesma será responsável para atender

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

Leia mais

Como incluir artigos:

Como incluir artigos: Como incluir artigos: O WordPress é uma ferramenta muito flexível, com muitas variações e ajustes que podem torná-lo algo muito simples e também muito sofisticado conforme os recursos que são configurados

Leia mais

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM ÍNDICE ITEM Página 1. Objetivo... 3 2. Requisitos... 3 3. Diretório do Slim... 3 4. Procedimento para Transferência de Servidor... 3 4.1 Compartilhamento da

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Transações Ver conjunto de slides na opção Transações

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte I) Introdução

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

APOSTILA DE EXCEL 2007

APOSTILA DE EXCEL 2007 APOSTILA DE EXCEL 2007 1. Introdução Quando você cria uma planilha nova, a tela do computador é dividida em linhas e colunas, formando uma grade. A interseção de uma linha e de uma coluna é chamada de

Leia mais

Curso PHP Aula 08. Bruno Falcão brunogfalcao@gmail.com

Curso PHP Aula 08. Bruno Falcão brunogfalcao@gmail.com + Curso PHP Aula 08 Bruno Falcão brunogfalcao@gmail.com + Roteiro Conectividade com BD SQL + SQL Structured Query Language. Padrão para interagir com banco de dados relacionais. + Banco de dados Um banco

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Everson Santos Araujo everson@por.com.br Conceitos Dado - Um fato que pode ser armazenado Banco de dados (BD) - Coleção de dados interrelacionados Sistema Gerenciador de Banco

Leia mais

Programação de Robótica: Modo Circuitos Programados - Avançado -

Programação de Robótica: Modo Circuitos Programados - Avançado - Programação de Robótica: Modo Circuitos Programados - Avançado - 1 Programação de Robótica: Modo Circuitos Programados - Avançado ATENÇÃO Lembramos que você poderá consultar o Manual de Referência do Software

Leia mais

Secretaria da Educação do Estado do Rio Grande do Sul. Manual: Sistema de Controle Patrimonial Inventário

Secretaria da Educação do Estado do Rio Grande do Sul. Manual: Sistema de Controle Patrimonial Inventário Secretaria da Educação do Estado do Rio Grande do Sul Manual: Sistema de Controle Patrimonial Inventário Sumário 1. Introdução... 3 2. Acessar o Controle Patrimonial Web... 4 2.1. Login... 4 3. Inventário...

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM ÍNDICE ITEM Página 1. Objetivo... 3 2. Requisitos... 3 3. Diretório do Millennium... 3 4. Procedimento para Transferência de Servidor... 3 4.1 Compartilhamento

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Print Audit 6 - SQL Server 2005 Express Edition Installation Guide

Print Audit 6 - SQL Server 2005 Express Edition Installation Guide Print Audit 6 - SQL Server 2005 Express Edition Installation Guide Resumo Este é um guia passo a passo para instalar o SQL Server 2005 Express Edition como base de dados para o Print Audit 6. Pré-Requisitos

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Preenchimento dos Pedidos de Credenciamento Provisório, Credenciamento 5 anos, Recredenciamento e Aumento de Vagas

Preenchimento dos Pedidos de Credenciamento Provisório, Credenciamento 5 anos, Recredenciamento e Aumento de Vagas 1 Preenchimento dos Pedidos de Credenciamento Provisório, Credenciamento 5 anos, Recredenciamento e Aumento de Vagas III Residentes O SisCNRM traz uma mudança de estrutura para a visualização e acompanhamento

Leia mais

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz SISTEMAS OPERACIONAIS LIVRES Agendar uma tarefa Você deve estar com logon de administrador para executar essas etapas. Se não tiver efetuado logon como administrador, você só poderá alterar as configurações

Leia mais