II.6. Gestion des transactions
réparties
II.6.1. Définitions
d'une transaction
Une transaction est un ensemble des opérations
menées sur une BD, la transformant d'un état stable
cohérent en un autre état stable cohérent. En cas
d'interruption pour une raison quelconque, la transaction garantit de laisser
la base de données dans l'état dans lequel elle l'avait
trouvée.
Figure 13: Représentation d'une transaction
Une transaction est soit validée par un
commit, soit annulée par un rollback, soit interrompue
par un abort. Elle a une marque de début (Begin Of Transaction
BOT) ainsi qu'une marque de fin (End Of Transaction EOT).
Autrement, Une transaction est un traitement cohérent
et fiable. La cohérence et la fiabilité d'une transaction sont
garanties par 4 propriétés : l'Atomicité, la
Cohérence, l'Isolation, la Durabilité
qui font l'ACIDité d'une transaction.
Parlant d'opérations d'une transaction, nous en
comptons quatre types dont : le début de la transaction,la
lecture, l'écriture et la terminaison.
II.6.2. Condition de
terminaison
Une transaction n'échoue pas, elle est interrompue pour
diverses raisons, ou arrive à son terme prévu. Pour assurer la
cohérence de la base de données, en cas d'interruption de la
transaction, un mécanisme se charge de défaire toutes les actions
qui ont déjà été effectuées, c'est le
rollback. Si la transaction n'est pas interrompue, elle se définit
correctement et la base de données peut prendre en compte les
changements. On appelle généralement ce signal que donne la
transaction : commit ou validation.
II.6.3.
Propriétés des transactions
Une transaction est composée d'une suite de
requêtes dépendantes de la base qui doivent vérifier les
propriétés d'atomicité, de cohérence, d'isolation
et de durabilité, résumées par le vocable ACID.
· Atomicité : cette
propriété signifie qu'une transaction est traitée comme
une seule opération. Toutes les actions sont toutes menées
à bien ou aucune d'entre elles. C'est-à-dire qu'une transaction
doit effectuer toutes ses mises à jour ou ne rien faire du tout. En cas
d'échec, une transaction doit annuler toutes les modifications qu'elle a
engagées.
· Cohérence : une transaction est un
programme qui amène la BD d'un état cohérent à un
autre état cohérent, tel que toutes les contraintes
d'intégrité restent vérifiées. En cas
d'échec, l'état cohérent initial doit être
restauré.
· Isolation : c'est la propriété
qui impose à chaque transaction de voir la BD cohérente. Une
transaction en exécution ne peut révéler ses
résultats à d'autres transactions concurrentes
(simultanées) avant d'effectuer le commit.
· Durabilité: c'est la
propriété qui garantit lorsqu'une transaction a effectué
son commit, le résultat en permanence, et ne pourra être
effacé de la BD quelques soient les pannes du système
rencontrées.
|