ACID
ACID désigne les quatre propriétés des transactions relationnelles : atomicité (tout ou rien), cohérence (contraintes maintenues), isolation (concurrence sans interférence), durabilité (persistance après commit).
Objectif
Garantir que les transactions soient correctes et fiables face aux pannes et à la concurrence, l'engagement central des bases de données relationnelles.
Mécanisme
Atomicité : undo log pour tout ou rien. Cohérence : les contraintes sont satisfaites avant et après. Isolation : verrous/MVCC rendent les transactions concurrentes équivalentes à séquentielles. Durabilité : redo log/WAL écrit vers stockage persistant après commit. Niveaux d'isolation croissants : lecture non validée → lecture validée → lecture reproductible → sérialisable.
Cas d’usage
- Transactions de transfert financier
- Commandes et déduction de stock
- Mises à jour multi-tables
- Opérations nécessitant une forte cohérence
Exemples
- entrée
BEGIN; UPDATE...; INSERT...; COMMITOutputAtomic commit or rollbackAll or nothing
Erreurs courantes
- Long transactions holding locks cause blocking
- Shorten transactions; use optimistic locking