Gerenciando transações de banco de dados
Transação: Unidade lógica em um processamento no SGBD que é composta por uma ou mais operações e seus limites podem ser determinados em SQL. De forma abstrata ou simplificada, uma transação pode ser encarada como um conjunto de operações de leitura e escrita de dados.
Por que existe a transação?
Devido a perda de atualização, problemas de atualização temporária e problema na totalização dos valores.
Propriedades de uma transação:
Existem alguns requisitos que sempre devem ser atendidos por uma transação.
Chamadas de propriedades ACID
- Atomicidade.
- Consistência.
- Isolamento.
- Durabilidade ou Persistência
Atomicidade
Tem basicamente o principio de “tudo ou nada”, ou todas as operações da transação são efetivadas com sucesso no BD, ou nenhuma delas se efetiva, isso preserva a integridade do BD.
É a responsabilidade do sub sistema de recuperação de falhas do SGBD desfazer as ações e transações parcialmente executadas. A atomicidade deve ser garantida no BD, pois uma transação pode manter o BD em um estado inconsistente durante sua execução.
Consistência
Uma transação sempre conduz o BD para um estado consistente para outro estado que também é consistente.
Para isso acontecer é a responsabilidade conjunta do DBA, que deve definir as RIs para garantir estados e transições de estado válidos para os dados e o Sub sistema de Recovery, que deve desfazer as ações de transação que violou a integridade.
Isolamento
No contexto de um conjunto de transações concorrentes, a execução de uma transação.
Tx, deve funcionar como se Tx executasse de forma isolada. Tx não deve sofrer interferências de algumas outras transações executando concorrentemente.
É a responsabilidade do subsistema de controle de concorrência scheduler do SGBD, garantir escalonamentos sem interferências.
Durabilidade ou Persistência
Deve-se garantir que qualquer uma das modificações realizadas por uma transação que concluiu com sucesso persistam no BD, nenhuma falha posterior ocorrida no BD deve perder essas modificações.
É responsabilidade do subsistema de recovery refazer transações que executaram com sucesso em caso de falha no BD.
Estados de uma transação
Uma transação é sempre monitorada pelo SGBD quanto ao seu estado
Ele verifica: 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 e Concluída.
Respeita um Grafo de Transição de Estados.