Banco de dados
6 – Transações e Controle de
Concorrência
Grinaldo Lopes de Oliveira (grinaldo@gmail.com)
Curso Superior de Tecnologia em
Análise e Desenvolvimento de Sistemas
* Material com créditos de colaboração dos professores Márcio Soussa, Leandro Coelho e Pablo Florentino
Agenda
Aprendendo
Transações
Controle de Concorrência
Transação
O que é uma Transação
O termo transação refere-se a uma coleção de operações que forma uma única unidade lógica de trabalho.
Por exemplo, uma transferência de dinheiro de uma conta para outra é uma transação consistindo de duas atualizações, uma para cada conta. Exemplo de Transação
Transferência bancária
BEGIN TRANSACTION update conta1 set saldo = saldo – 100 update conta2 set saldo = saldo + 100
COMMIT TRAN
Características de Transações
Transações do SGBD
Finalização de uma Transação
Commit Transaction
Encerramento da transação com sucesso;
Torna as atualizações permanentes;
Rollback Transaction
Término de transação com erro;
Retorna o banco de dados à posição anterior à
Transação;
BEGIN
TRANSACTION
ROLLBACK
TRANSACTION
COMMIT
TRANSACTION
O que faz uma transação falhar?
Estados de uma Transação
Propriedades de uma Transação
ACID
A: Atomicidade
Unidade lógica atômica (tudo ou nada)
C: Consistência (Preservação)
Ao final de uma transação o banco continua consistente I: Isolamento
A execução de uma transação não deve sofrer interferência de outras transações concorrentes
D: Durabilidade (Persistência)
Após o ponto de confirmação, as alterações devem persistir no banco de dados
Arquitetura de um SGBD
Referência
Respostas
Comandos da
Aplicação /usuário/ DBA
Catálogo do
Sistema
Compilador
Otimizador
Gerente de Transações
Gerente de bloqueios
Gerente de logs
LOG
Gerente de acesso a dados BD
Gerente de buffers
Log de Transações
Características:
Registro de todas as operações