7
Objectif
La transaction est le mécanisme de base du maintien de la cohérence d’un SGBD
client-serveur. Il est donc important de bien le connaître. L’outil mis en place par
les transactions pour assurer cette cohérence est le verrouillage. Un verrouillage
excessif pénalise les performances. Il est indispensable de maîtriser ce sujet et de
limiter autant que possible l’étendue et la durée des transactions, donc du verrouillage, pour éviter les attentes trop longues, les blocages, et les étreintes fatales
(deadlocks).
7.1 DÉFINITION D’UNE TRANSACTION
Un SGBDR est un système multi-utilisateurs. De ce point de vue, ses responsabilités
sont doubles : il doit assurer un accès concurrent aux données, et assurer que cellesci restent dans un état cohérent, par rapport aux contraintes définies par la structure
de la base, aux modifications d’ensembles de données, et aux potentialités d’écritures
simultanées. Cette protection est assurée par le mécanisme de la transaction. Les
transactions permettent de contrôler la cohérence des données et de ne permettre
une validation que lorsque celle-ci est respectée. Lors de toute modification, la base
est dans un état incohérent durant un laps de temps plus ou moins long. Par
exemple, si nous voulons mettre tous les noms de famille de la table Person.Contact
en majuscules, nous exécutons le code suivant :
UPDATE Person.Contact
SET LastName = UPPER(LastName);
Transactions et verrous
Précédent

- 219/334

Suivant