Vous êtes sur la page 1sur 8

SGBD

Transactions de Base de Donnes

18/05/2013

P.O.O

Introduction
Oracle Server garantit la cohrence des donnes par le biais des transactions. Les transactions consistent en un ensemble d'ordres du LMD qui ralisent une modification cohrente des donnes. Exemple:

un transfert de fonds entre deux comptes implique de dbiter un compte et d'en crditer un autre du mme montant. Les deux actions doivent, soit russir, soit chouer en mme temps : un crdit ne peut pas tre valid sans le dbit correspondant.
Ensemble d'ordres du LMD effectuant une modification cohrente des donnes Un ordre du LDD Un ordre du LCD

Une transaction se compose des lments suivants :


Transaction
Commence l'excution du premier ordre SQL Se termine par l'un des vnements suivants :

COMMIT ou ROLLBACK Excution d'un ordre LDD ou LCD (validation automatique) Fin de session utilisateur Panne du systme

Etat des Donnes Avant COMMIT ou ROLLBACK Il est possible de restaurer l'tat prcdent des donnes. L'utilisateur courant peut afficher le rsultat des oprations du LMD au moyen de l'ordre SELECT. Les rsultats des ordres du LMD excuts par l'utilisateur courant ne peuvent pas tre affichs par d'autres utilisateurs. Les lignes concernes sont verrouilles. Aucun autre utilisateur ne peut les modifier.

Validation des Modifications


Pour enregistrer dfinitivement les modifications en instance, utilisez l'ordre COMMIT. Aprs l'excution d'un ordre COMMIT :

Les modifications de donnes sont crites dfinitivement dans la base de donnes. L'tat prcdent des donnes est irrmdiablement perdu.
Tous les utilisateurs peuvent voir les rsultats de la

transaction. Les lignes qui taient verrouilles sont libres et redeviennent accessibles d'autres utilisateurs pour modification.

Tous les savepoints sont effacs

Validation des Modifications


Mettre jour la table EMP en remplaant par 10 le numro de dpartement de l'employ 7782 (Clark).

Rendre ensuite la modification permanente en spcifiant l'ordre COMMIT


SQL> UPDATE emp 2 SET deptno = 10 3 WHERE empno = 7782; 1 row updated. Validez les modifications. SQL> COMMIT; Commit complete.

Annulation des Modifications


Aprs l'excution d'un ordre ROLLBACK

Les modifications apportes aux donnes sont annules. Les donnes sont retrouvent leur tat prcdent. Les lignes verrouilles sont libres.
employee;

SQL> DELETE FROM 14 rows deleted. SQL> ROLLBACK; Rollback complete.

Annulation des Modifications


Annulation des Modifications Jusqu' une Etiquette de Savepoint
SQL> UPDATE... SQL> SAVEPOINT update_done; Savepoint created. SQL> INSERT... SQL> ROLLBACK TO update_done; Rollback complete.

Vous aimerez peut-être aussi