Transações (acesso a dados MFC)
O conceito de uma transação foi desenvolvido para lidar com casos em que o estado resultante do banco de dados depende do sucesso total de uma série de operações. Isso pode ocorrer porque operações sucessivas podem modificar os resultados de operações anteriores. Nesses casos, se uma operação falhar, o estado resultante poderá ser indeterminado.
Para resolver esse problema, as transações agrupam uma série de operações de tal forma que a integridade do resultado final pode ser garantido. Todas as operações devem ser bem-sucedidas e depois aplicadas (gravadas no banco de dados) ou toda a transação falhará. O cancelamento da transação é chamado de reversão. Reversão permite uma recuperação das alterações e retorna o banco de dados ao estado anterior à transação.
Por exemplo, em uma transação bancária automatizada, se você transferir dinheiro de uma conta A para a conta B, tanto a retirada de A e o depósito em B devem ser bem-sucedidas para processar os fundos corretamente ou a transação inteira falhará.
Uma transação deve ter propriedades ACID, o que significa o seguinte:
Atomicidade Uma transação é uma unidade atômica de trabalho e executa uma única vez; ou todo o trabalho é feito ou nada é feito.
Consistência Uma transação preserva a consistência de dados, transformando um estado consistente dos dados em outro estado consistente dos dados. Dados vinculados por uma transação devem ser preservados semanticamente.
Isolamento Uma transação é uma unidade de isolamento e cada uma ocorre separadamente e independentemente das transações simultâneas. Uma transação nunca deve ver os estágios intermediários de outra transação.
Durabilidade Uma transação é uma unidade de recuperação. Se uma transação for bem-sucedida, suas atualizações persistem, mesmo se o sistema falhar ou for desligado. Se uma transação falhar, o sistema permanecerá no estado anterior à confirmação da transação.
Você pode oferecer suporte a transações em OLE DB (consulte Suportando transações em OLE DB) ou ODBC (consute Transação (ODBC)).
Uma transação distribuída é uma transação que atualiza dados distribuídos, ou seja, os dados em mais de um sistema de computador da rede. Para suportar transações em um sistema distribuído, você deve usar o ADO.NET, em vez de suporte para transações OLE DB.