4. Definition
Une transaction est une séquence d’opérations de lecture ou de mise à
jour, transmise par un processus client au serveur du SGBD, se terminant par
l’une des deux instructions suivantes:
commit, indiquant la validation de toutes les opérations effectuées par
la transaction;
rollback indiquant l’annulation de toutes les opérations effectuées par
la transaction.
Il est aussi possible d’indiquer explicitement le début d’une transaction
avec la commande start transaction.
Source : http://sys.bdpedia.fr/transactions.html
5. Principe de la Transaction
Le principe est que les lignes de code se trouvant entre
start transaction et commit s’exécutent ou pas du tout.
rollback permet de garder les données à l’état initial d’avant la transaction annulée
6. Propriétés de la Transaction
ATOMICITE
COHERENCE
ISOLATION
DURABILITE
7. ISOLATION
L’isolation est la propriété qui
garantit que l’exécution d’une
transaction semble totalement
indépendante des autres
transactions
une transaction s’exécute en fait en
concurrence avec d’autres
Le niveau d’isolation totale ou
partielle(plusieurs niveaux)
8. Durabilité
L’exécution d’un commit rend permanentes
toutes les mises à jour de la base effectuées
durant la transaction
Le système garantit que toute interruption du
système survenant après le commit ne
remettra pas en cause ces mises à jour(crash
server, coupure de courant,interruption voulue
par le développeur)
9. ATOMICITE
Le rollback annule toutes les modifications de la
base effectuées pendant la transaction
Un rollback peut être déclenché explicitement
par l’utilisateur, ou effectué par le système au
moment d’une reprise sur panne ou de tout
autre problème empêchant la poursuite
normale de la transaction
10. COHERENCE
Le maintien de la cohérence peut relever aussi bien du système que de
l’utilisateur selon l’interprétation du concept de « cohérence »
Pour le système, la cohérence d’une base est définie par les contraintes
associées au schéma. Ces contraintes sont notamment:
les contraintes de clé primaire (clause primary key);
l’intégrité référentielle (clause foreign key);
les contraintes check;
les contraintes implantées par triggers
11. Avantages et Inconvénients
Inconvénients : Isolation forte qui
engendre des blocages d’accès aux
données aux autres utilisateurs
Avantages : Corruption de données
évitées
12. SIMPLICITE ET DOUCEUR
Simplicité de simplifier du code en omettant de
rétrograder les lignes de code pour revenir à un état
initial de la base de données ou de perdre les
données tout simplement par coupure de courant,
crash de server ou bug de l’application
Douceur dans le déboguage avec l’utilisation du
bloc try catch pour capturer les exceptions
retournées par la base de données