Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma transação é uma unidade de trabalho que é feita como uma única operação atômica; ou seja, a operação é bem-sucedida ou falha como um todo. Por exemplo, considere transferir dinheiro de uma conta bancária para outra. Isso envolve duas etapas: retirar o dinheiro da primeira conta e depositá-lo na segunda. É importante que ambas as etapas sejam bem-sucedidas; não é aceitável que uma etapa seja bem-sucedida e a outra falhe. Um banco de dados que dá suporte a transações é capaz de garantir isso.
As transações podem ser concluídas ao serem confirmadas ou revertidas. Quando uma transação é confirmada, as alterações feitas nessa transação são permanentes. Quando uma transação é revertida, as linhas afetadas são retornadas ao estado em que estavam antes de a transação ser iniciada. Para estender o exemplo de transferência de conta, um aplicativo executa uma instrução SQL para debitar a primeira conta e uma instrução SQL diferente para creditar a segunda conta. Se ambas as instruções forem bem-sucedidas, o aplicativo confirmará a transação. Mas se uma das instruções falhar por qualquer motivo, o aplicativo desfará a transação. Em ambos os casos, o aplicativo garante um estado consistente no final da transação.
Uma única transação pode abranger várias operações de banco de dados que ocorrem em momentos diferentes. Se outras transações tiverem acesso completo aos resultados intermediários, as transações poderão interferir umas nas outras. Por exemplo, suponha que uma transação insira uma linha, uma segunda transação leia essa linha e a primeira transação seja revertida. A segunda transação agora tem dados para uma linha que não existe.
Para resolver esse problema, há vários esquemas para isolar transações umas das outras. O isolamento da transação geralmente é implementado bloqueando linhas, o que impede que mais de uma transação use a mesma linha ao mesmo tempo. Em alguns bancos de dados, o bloqueio de uma linha também pode bloquear outras linhas.
À medida que o isolamento de transações aumenta, a concorrência é reduzida, ou seja, a capacidade de duas transações usarem os mesmos dados ao mesmo tempo. Para obter mais informações, consulte Definir o nível de isolamento da transação.
Esta seção contém os seguintes tópicos.