VapVup👤
← Voltar
🔐

Transações e ACID

Entenda como bancos de dados garantem que operações complexas aconteçam de forma segura e confiável, mesmo quando algo dá errado no meio do caminho.

🏦Analogia

A transferência bancária

Imagine que você transfere R$100 da sua conta para a conta de um amigo. O banco tira da sua conta E coloca na dele. Se o sistema cair no meio, o dinheiro não pode simplesmente sumir — ou tudo acontece, ou nada acontece. É exatamente assim que uma transação funciona.

⚛️Conceito

Atomicidade e Consistência

Atomicidade significa que a transação é indivisível: ou todas as operações são executadas com sucesso, ou nenhuma é. Consistência garante que o banco de dados sempre sai de um estado válido para outro estado válido — nunca fica pela metade.

🔒Conceito

Isolamento e Durabilidade

Isolamento garante que transações simultâneas não interferem umas nas outras — cada uma age como se estivesse sozinha. Durabilidade significa que, uma vez confirmada (commit), a transação sobrevive até a quedas de energia.

🔧Exemplo

Transferência entre contas

Veja como uma transação protege uma transferência bancária:

BEGIN TRANSACTION;

UPDATE contas SET saldo = saldo - 100 WHERE id = 1;
UPDATE contas SET saldo = saldo + 100 WHERE id = 2;

-- Se tudo deu certo:
COMMIT;

-- Se algo falhou:
-- ROLLBACK;
🚧Conceito

Deadlocks e Níveis de Isolamento

Deadlock acontece quando duas transações ficam esperando uma pela outra eternamente — como dois carros em um beco sem saída. Níveis de isolamento (Read Uncommitted, Read Committed, Repeatable Read, Serializable) controlam o quanto uma transação enxerga das outras, equilibrando segurança e performance.

📝Analogia

Níveis de isolamento no dia a dia

Pense em provas na escola: Serializable é cada aluno fazendo a prova sozinho na sala. Read Committed é todo mundo junto, mas você só vê a resposta do colega depois que ele entrega. Read Uncommitted é ver a resposta do colega enquanto ele ainda está escrevendo — perigoso!