Partilhar via


Transações ODBC

Uma transação é uma unidade de trabalho realizada como uma única operação atómica; ou seja, a operação tem sucesso ou falha como um todo. Por exemplo, considere transferir dinheiro de uma conta bancária para outra. Isto envolve dois passos: levantar o dinheiro da primeira conta e depositá-lo na segunda. É importante que ambos os passos tenham sucesso; Não é aceitável que um passo tenha sucesso e o outro falhe. Uma base de dados que suporta transações pode garantir isso.

As transações podem ser concluídas por comprometimento ou por reversão. Quando uma transação é comprometida, as alterações feitas nessa transação tornam-se permanentes. Quando uma transação é revertida, as linhas afetadas são devolvidas ao estado em que estavam antes do início da transação. Para estender o exemplo da transferência de conta, uma aplicação executa um extrato SQL para debitar a primeira conta e um extrato SQL diferente para creditar a segunda conta. Se ambas as declarações forem bem-sucedidas, a aplicação então confirma a transação. Mas se alguma das instruções falhar por qualquer motivo, a aplicação reverte a transação. Em qualquer dos casos, a aplicação garante um estado consistente no final da transação.

Uma única transação pode abranger múltiplas operações de base de dados que ocorrem em momentos diferentes. Se outras transações tivessem acesso total aos resultados intermédios, estas poderiam interferir umas com as outras. Por exemplo, suponha que uma transação insere uma linha, uma segunda transação lê essa linha e a primeira transação é revertida. A segunda transação passou a ter dados de uma linha que não existe.

Para resolver este problema, existem vários esquemas para isolar as transações umas das outras. O isolamento de transações é geralmente implementado bloqueando linhas, o que impede que mais do que uma transação use a mesma linha ao mesmo tempo. Em algumas bases de dados, bloquear uma linha pode também bloquear outras linhas.

Com o aumento do isolamento das transações, vem uma redução da concorrência, ou seja, a capacidade de duas transações usarem os mesmos dados ao mesmo tempo. Para mais informações, consulte Definir o Nível de Isolamento da Transação.

Esta seção contém os seguintes tópicos.