Transaction
Une transaction est un groupe d'opérations exécutées comme une unité logique unique satisfaisant ACID — tout ou rien.
Objectif
Regrouper plusieurs opérations en une unité atomique, garantissant l'exactitude en cas de panne et de concurrence.
Mécanisme
BEGIN la démarre, les opérations s'exécutent, COMMIT valide ou ROLLBACK annule. L'atomicité est garantie par le journal d'annulation, la durabilité par le journal de redo/WAL, l'isolation par verrous ou MVCC. Les transactions distribuées utilisent 2PC/3PC ou le pattern Saga.
Cas d’usage
- Virements bancaires
- Commandes et décrément de stock
- Mises à jour multitables relationnelles
- Opérations distribuées entre services
Exemples
- entrée
BEGIN; A→B 100; COMMITOutputAtomic transferAll or nothing
Erreurs courantes
- No explicit transaction causes partial commits
- Wrap related operations in a transaction
Termes associés
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). GLOSSAIRE
Isolation Level
Les niveaux d'isolation définissent la visibilité entre transactions concurrentes, de la lecture non validée au sérialisable ; des niveaux plus élevés donnent plus de cohérence mais moins de concurrence. GLOSSAIRE
Primary Key
Une clé primaire est la colonne ou combinaison de colonnes qui identifie de manière unique chaque ligne d'une table — non nulle et unique ; l'identité de la ligne. GLOSSAIRE