A aula aborda transações em bancos de dados, que permitem executar vários comandos de forma atomizada, garantindo que todos sejam executados ou nenhum. Exemplos mostram como transferir valores entre contas e incluir novos clientes com dados relacionados em diferentes tabelas dentro de uma transação.
3. 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;
4. 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?
SimNão
Executa comando 1
Executa comando 2
Executa comando N
5. 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.
6. 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
8. 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 principal1
Incluir dois telefones
(residencial e celular)
na tabela de telefones2
Incluir um endereço
(principal) na tabela de
endereços
3
11. 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 venda4