Sobes.tech
Junior

Por que são usadas transações em bancos de dados?

sobes.tech IA

Resposta da IA

As transações garantem a atomicidade, consistência, isolamento e durabilidade (ACID) das operações com bases de dados.

  • Atomicidade: Todas as operações numa transação são concluídas na sua totalidade ou não são realizadas de todo. Se uma operação falhar, todas são revertidas.
  • Consistência: A transação leva a base de dados de um estado consistente para outro. São prevenidas violações de restrições (por exemplo, chaves únicas).
  • Isolamento: Cada transação é executada como se fosse a única no sistema. As alterações feitas por uma transação não são visíveis para outras até à sua conclusão.
  • Durabilidade: Após a conclusão bem-sucedida de uma transação, as suas alterações são guardadas e não se perdem mesmo em caso de falha do sistema.

As transações são importantes para garantir a integridade dos dados, especialmente ao realizar várias operações relacionadas que devem ser executadas juntas ou não executadas de todo. Um exemplo é transferir dinheiro de uma conta de poupança para uma conta corrente.

-- Início da transação
START TRANSACTION;

-- Deduzir da primeira conta
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;

-- Se a operação anterior foi bem-sucedida, creditar na segunda conta
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- Verificar se ambas as operações foram bem-sucedidas e sem erros
-- IF condição de erro THEN
--   ROLLBACK; -- Reverter todas as alterações
-- ELSE
--   COMMIT; -- Confirmar todas as alterações
-- END IF;

-- Supondo que ambas as operações foram concluídas com sucesso para o exemplo
COMMIT; -- Confirmar a transação
-- ROLLBACK; -- Reverter a transação em caso de erro