Banco de dados transacao
1 Introdução ao Processamento de Consultas
2 Otimização de Consultas
3 Plano de Execução de Consultas
4 Introdução a Transações
5 Recuperação de Falhas
6 Controle de Concorrência
7 Fundamentos de BDs Distribuídos
8 SQL Embutida
Introdução a Transações
• SGBD
– sistema de processamento de operações de acesso ao BD
• SGBDs são em geral multi-usuários
– processam simultaneamente operações disparadas por vários usuários
• deseja-se alta disponibilidade e tempo de resposta pequeno – execução intercalada de conjuntos de operações • exemplo: enquanto um processo i faz I/O, outro processo j é selecionado para execução
• Operações são chamadas transações
1
Transação
• Unidade lógica de processamento em um SGBD
• Composta de uma ou mais operações
– seus limites podem ser determinados em SQL
• De forma abstrata e simplificada, uma transação pode ser encarada como um conjunto de operações de leitura e escrita de dados
Tx read(x) x=x–i read(y) y=y*x write(x) write(y) lê o dado X do BD e o armazena na variável X
grava no dado Y do BD o valor da variável Y
Estados de uma Transação
• Uma transação é sempre monitorada pelo
SGBD quanto ao seu estado
– que operações já fez? concluiu suas operações? deve abortar?
• Estados de uma transação
– Ativa, Em processo de efetivação, Efetivada,
Em processo de aborto, Concluída
– Respeita um Grafo de Transição de Estados
2
Transição de Estados de uma Transação reads e writes
Em Processo de Efetivação iniciar transação
finalizar transação Ativa
transação deve ser desfeita
encerramento com sucesso
encerramento sem sucesso
Efetivada conclusão da transação com sucesso
Em Processo de Aborto conclusão
da transação sem sucesso
Concluída
Transição de Estados de uma Transação reads e writes
Em Processo de Efetivação iniciar transação
Ativa
finalizar transação encerramento com sucesso
transação deve