Transações e ACID
As garantias que impedem um sistema de ficar com dados pela metade quando algo falha, e de vender o mesmo item duas vezes.
Uma transação é um conjunto de operações no banco que acontece por inteiro ou não acontece. ACID é o nome das quatro garantias que ela oferece.
Sem transações, uma falha no meio de uma operação deixa dados pela metade, e dois pedidos simultâneos podem vender o mesmo item duas vezes.
- Atomicidade: tudo ou nada, mesmo se o servidor cair no meio.
- Consistência: as regras declaradas no banco nunca ficam violadas.
- Isolamento: transações simultâneas não atrapalham umas às outras, até certo ponto.
- Durabilidade: o que foi confirmado sobrevive a uma queda.
- Ler um valor e gravar depois, sem trava, é a origem clássica de vendas duplicadas.