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