4. Gestion de transaction
Une transaction peut être considérée comme
une unité de traitement cohérente et fiable. Une transaction
prend un état d'une base de données, effectue une ou des actions
sur elle et génère un autre état de celle-ci. Les actions
effectuées sont des opérations de lecture ou d'écriture
sur les données de la base. Par conséquent, une transaction peut
être définie comme étant une séquence
d'opérations de lecture et d'écriture sur une base de
données, qui termine en étant soit validée soit
abandonnée.
La notion de cohérence recouvre plusieurs
dimensions :
· Du point de vue des demandes d'accès, il s'agit
de gérer l'exécution concurrente de plusieurs transactions sans
que les mises à jour d'une transaction ne soient visibles avant sa
validation, on parle de cohérence transactionnelle ou isolation.
· Du point de vue des données
répliquées, il consiste à garantir que toutes les copies
d'une même donnée soient identiques, on parle de cohérence
mutuelle.
La cohérence transactionnelle est assurée
à travers quatre propriétés, résumées sous
le vocable ACID :
· Atomicité : toutes les opérations de la
transaction sont exécutées ou aucune ne l'est. C'est la loi du
tout ou rien.
· Cohérence : La cohérence signifie que la
transaction doit être correcte du point de vue de l'utilisateur,
c'est-à-dire maintenir les invariants de la base ou contraintes
d'intégrité. Une transaction cohérente transforme une base
de données cohérente en une base de données
cohérente. En cas de non succès, l'état cohérent
initial des données doit être restauré.
· Isolation : elle assure qu'une transaction voit
toujours un état cohérent de la base de données. Pour ce
faire, les modifications effectuées par une transaction ne peuvent
être visibles aux transactions concurrentes qu'après leur
validation. En outre, une transaction a une opération marquant son
début (begin transaction) et une autre indiquant sa fin (end
transaction). Si la transaction s'est bien déroulée, la
transaction est terminée par une validation (commit), dans le cas
contraire, la transaction est annulée (rollback, abort).
· Durabilité : une fois que la transaction est
validée, ses modifications sont persistantes et ne peuvent être
défaites.
Les propriétés ACID sont très difficiles
à maintenir car elles représentent un frein aux performances du
système.
Si une transaction contient au moins une opération qui
effectue des modifications sur les données de la base, la transaction
est dite transaction d'écriture ou de mise à jour. Si toutes les
opérations ne font que des lectures sur les données de la base,
la transaction est dite transaction de lecture.
Un autre classement peut être fait à partir de la
durée de la transaction. Avec ce critère, une transaction peut
être classée on-line ou batch. Les transactions on-line,
communément appelées transactions courtes, sont
caractérisées par un temps de réponse relativement court
(quelques secondes) et accèdent à une faible portion des
données.Les transactions batch, appelées transactions longues,
peuvent prendre plus de temps pour s'exécuter (minutes, heures, jours)
et manipulent une très grande quantité des données.
|