Qu'est-ce que Transaction ?
Série d'opérations sur une base de données traitée comme une seule unité. COMMIT rend les résultats définitifs, et ROLLBACK ramène les données à leur état d'avant le début de la transaction. Le SGBD gère les transactions au moyen de verrous et de journaux pour qu'elles satisfassent l'atomicité, la cohérence, l'isolation et la durabilité (propriétés ACID).
Nom japonais: トランザクション
« Transaction » apparaît dans 13 questions d'entraînement réparties sur 1 thèmes, dont Bases des bases de données.
Domaine: Bases des bases de données
COMMIT et ROLLBACK
Dans un virement entre comptes, le résultat n'est correct que lorsque le débit du compte A et le crédit du compte B ont tous deux été effectués. Une transaction regroupe une telle série d'opérations en une seule unité : exécuter COMMIT à la fin rend les résultats définitifs, et exécuter ROLLBACK, par exemple lorsqu'une erreur survient en cours de route, annule toutes les mises à jour de la transaction. Les mises à jour non validées sont aussi annulées en cas de panne, si bien qu'il ne reste jamais d'état intermédiaire où seule une partie des mises à jour aurait été appliquée.
Questions fréquentes
Que se passe-t-il si une erreur survient au milieu d'une transaction ?
Soit l'application exécute ROLLBACK, soit le SGBD effectue une reprise après panne, et toutes les mises à jour de cette transaction sont annulées. Il ne reste jamais seulement une partie des mises à jour.
Quels problèmes pose une transaction longue ?
Elle détient des verrous pendant longtemps : les autres transactions attendent, on peut traiter moins de travail simultanément, et les interblocages deviennent plus probables. En règle générale, une transaction doit rester aussi courte que le permet le maintien de la cohérence.