Transações (Mecanismo de Banco de Dados)

Uma transação é uma seqüência de operações executadas como uma única unidade lógica de trabalho. Uma unidade lógica de trabalho deve mostrar quatro propriedades, designadas pelas iniciais ACID (atomicidade, consistência, isolamento e durabilidade), para que seja qualificada como uma transação.

  • Atomicidade
    Uma transação deve ser uma unidade atômica de trabalho; ou todas as suas modificações de dados são executadas ou nenhuma delas é executada.

  • Consistência
    Quando concluída, uma transação deve deixar todos os dados em um estado consistente. Em um banco de dados relacional, todas as regras devem ser aplicadas às modificações da transação para manter toda a integridade dos dados. Todas as estruturas de dados internas, tais como índices em árvore B ou listas duplamente vinculadas, devem estar corretas ao término da transação.

  • Isolamento
    Modificações feitas por transações simultâneas devem ser isoladas das modificações feitas por qualquer outra transação simultânea. Uma transação reconhece os dados no estado em que estavam antes de outra transação simultânea tê-los modificado ou reconhece os dados depois que a segunda transação tiver sido concluída, mas não reconhece um estado intermediário. Isso é chamado serializabilidade porque resulta na capacidade de recarregar os dados iniciais e reexecutar uma série de transações de modo que os dados obtidos estejam no mesmo estado em que estavam depois que as transações originais foram executadas.

  • Durabilidade
    Depois que uma transação tiver sido concluída, seus efeitos ficam permanentemente no sistema. As modificações persistem até mesmo no caso de uma queda do sistema.

Especificando e impondo transações

Os programadores SQL são responsáveis por iniciar e terminar transações em pontos que imponham a consistência lógica dos dados. O programador deve definir a seqüência de modificações de dados que deixem os dados em um estado consistente em relação às regras comerciais da organização. O programador inclui essas instruções de modificação em uma única transação de modo que o Mecanismo de banco de dados do SQL Server possa aplicar a integridade física da transação.

É de responsabilidade de um sistema de banco de dados empresarial, tal como uma instância do Mecanismo de Banco de Dados, oferecer mecanismos que assegurem a integridade física de cada transação. O Mecanismo de Banco de Dados oferece:

  • Recursos de bloqueio que preservam o isolamento da transação.

  • Recursos de log que garantem a durabilidade da transação. Mesmo se o hardware do servidor, o sistema operacional ou a instância do Mecanismo de Banco de Dados falharem, a instância usa os logs da transação ao reinicializar para reverter automaticamente qualquer transação incompleta até o ponto da falha do sistema.

  • Recursos de administração de transação que impõem a atomicidade e a consistência da transação. Depois que uma transação tiver sido iniciada, ela deve ser concluída com êxito ou a instância do Mecanismo de Banco de Dados desfará todas as modificações de dados feitas desde que a transação foi iniciada.