banco de dados ii - unimep/pronatec - aula 11
TRANSCRIPT
Agenda de hoje
Transações de Banco de Dados
Transação de BD:
“tudo ou nada”
Permite manipular diversas
tabelas e/ou comandos ao
mesmo tempo, garantido a
integridade de que todo o
serviço será executado por
completo;
Fluxograma de uma transação
Inicia a transação
Grava toda a transação
(COMMIT)
Desfaz toda a transação
(ROLLBACK)
Conseguiu
executar tudo
sem erros?
Sim Não
Executa comando 1
Executa comando 2
Executa comando N
Propriedade ACID
Atomicidade: todas as atualizações feitas
por uma transação são efetivadas no BD ou
nenhuma delas (tudo ou nada);
Consistência: ao final de uma transação o
BD continua consistente
Isolamento: a execução de uma transação
não deve sofrer interferência de outras
transações concorrentes
Durabilidade: Após o ponto de confirmação,
as atualizações dever ser persistidas no BD.
Exemplo de manipulação de diversos
comandos ao mesmo tempo
Transferir 250,00 do correntista
Jonatas Cerrado para o José da Silva
Remover 250,00 do
correntista de origem
Acrescentar 250,00
para o correntista de
destino
1
2
Resolução do exemplo anterior
https://github.com/apbertoletti/Pronatec-
BD2/blob/master/BDBanco/S03%20-%20BDBanco%20-
%20Exemplos%20de%20comando.sql
Script completo (aula 11)
Exemplo de manipulação de diversas
tabelas ao mesmo tempo
Incluir um novo cliente juntamente
com os seus telefones e endereços
Incluir o cliente na
tabela principal 1
Incluir dois telefones
(residencial e celular)
na tabela de telefones 2
Incluir um endereço
(principal) na tabela de
endereços 3
Resolução do exemplo anterior
Script completo (aula 11) https://github.com/apbertoletti/Pronatec-
BD2/blob/master/BDLoja/S03%20-%20BDLoja%20-
%20Exemplos%20comandos.sql
Vamos treinar um pouco?!
Exercício:
Criar um script transacional
que simule a inclusão de uma nova
venda no BDLoja, prevenindo dos
erros mais comuns
Inclui um registro na tabela
Venda contendo os dados
do cliente estabelecimento 1
Inclui um registro na tabela
VendaProduto contendo os
registros do(s) produto(s)
vendido(s). Quantidade não
pode ser menor ou igual
zero
2
Baixa o estoque do(s)
produto(s) vendido(s). Não
pode ficar com estoque
negativo
3
Inclui um novo registro na
tabela de Boleto referente
ao valor total desta venda 4
Scripts completos utilizados nesta aula
disponíveis na URL abaixo:
https://github.com/apbertoletti/Pronatec-BD2
Por hoje é só...
Bora estudar
e praticar!