Transação atômica

(Redirecionado de Algoritmo Instantâneo)

Transação Atômica, em ciência da computação, é uma operação, ou conjunto de operações, em uma base de dados, ou em qualquer outro sistema computacional, que deve ser executada completamente em caso de sucesso, ou ser abortada completamente em caso de erro. Um exemplo prosaico que ilustra este conceito é o da gravidez. Não se diz que uma mulher está "meio grávida"; ou ela está grávida ou não está.

O exemplo clássico para a necessidade de uma "transação atômica" é aquele da transferência entre duas contas bancárias. No momento de uma transferência de valores de uma conta "A" para uma conta "B", que envolve pelo menos uma operações de ajuste no saldo para cada conta, se o computador responsável pela operação é desligado por falta de energia, espera-se que o saldo de ambas as contas não tenha se alterado. Neste caso são utilizados sistemas que suportam transações atômicas.

Tipicamente, esse conceito é implementado por algum mecanismo que indica que a transação foi iniciada ou terminou, ou pela manutenção de uma cópia dos dados feita antes do início da transação. Os sistemas de arquivo que implementam transações atômicas normalmente utilizam métodos como o journaling que evitam a cópia dos dados. Os SGBDs utilizam sistemas de log de dados que gravam os dados ainda não confirmados. No caso da confirmação da transação (commit), esses dados são consolidados na base de dados, por outro lado, na ocorrência de algum problema esses dados são descartados (rollback).

Ver também editar