BANCO DE DADOS – Aula 25: TRANSAÇÕES Além de disponibilizar os dados para consulta e gerenciar a integridade dos mesmos, um bom banco de dados (integrado a um SGBD) deve fornecer a capacidade de gerenciamento de transações. Uma transação é o conjunto de uma ou mais operações realizadas no banco de dados, a qual deve ter a sua integridade garantida por meio de quatro propriedades, conhecidas como ACID (Atomicidade, Consistência, Isolamento e Durabilidade). O gerenciamento completo de uma transação previne erros e inconsistências dos mais variados tipos. As propriedades que garantem a integridade de uma transação são descritas a seguir. Atomicidade A atomicidade de uma transação diz respeito à execução da transação por completo, ou no aborto da mesma. Impede que a transação seja executada pela metade. Utilizando o exemplo anterior, ou a transferência e a atualização do saldo ocorrem por completo ou ambas são abortadas. No ditado popular, esta definição é conhecida com “Tudo ou Nada”. Consistência Esta propriedade diz respeito à validação dos dados utilizados pela transação. Cada campo deverá, ao final da transação, estar preenchido com valores válidos dentro de seu domínio de dados, assim como válidos nos relacionamentos criados entre as tabelas. Isolamento Cada transação deve ter acesso privado aos dados de que necessita. Mesmo que outras transações necessitem de acesso somente à leitura de alguns dados, poderão haver inconsistências quando um determinado campo for alterado por uma transação A e lido por uma transação B, caso a primeira seja abortada e tenha os seus campos retornados aos valores iniciais, pois neste intervalo de tempo seus valores teriam sido considerados como temporários e invalidados. Durabilidade A durabilidade garante que, em caso de erro na execução todos os campos em questão no banco de dados sejam restaurados com seus valores inicias. Além disto, também é característica desta propriedade manter os dados permanentes no final de uma transação realizada com sucesso. Sintaxe: START TRANSACTION; comandos COMMIT | ROLLBACK;