0% ont trouvé ce document utile (0 vote)
37 vues18 pages

Exposé Sur Les Transaction

Le document traite de la gestion des transactions dans les systèmes d'information, en mettant l'accent sur des concepts clés tels que la notion de transaction, sa vie, et les problèmes de concurrence d'accès. Il aborde également les mécanismes de verrouillage et de sérialisabilité, ainsi que le protocole de verrouillage à deux phases pour garantir l'intégrité des données. En conclusion, la gestion des transactions est essentielle pour assurer la cohérence et la sécurité des systèmes d'information.

Transféré par

jpwhwdpbyt
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues18 pages

Exposé Sur Les Transaction

Le document traite de la gestion des transactions dans les systèmes d'information, en mettant l'accent sur des concepts clés tels que la notion de transaction, sa vie, et les problèmes de concurrence d'accès. Il aborde également les mécanismes de verrouillage et de sérialisabilité, ainsi que le protocole de verrouillage à deux phases pour garantir l'intégrité des données. En conclusion, la gestion des transactions est essentielle pour assurer la cohérence et la sécurité des systèmes d'information.

Transféré par

jpwhwdpbyt
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SOMMAIRE

I. INTRODUCTION ......................................................................................................................................................... 4
II. LA NOTION DE TRANSACTION ................................................................................................................................... 5
III. LA VIE D’UNE TRANSACTION ................................................................................................................................. 6
IV. GESTION DES TRANSACTIONS ............................................................................................................................... 6
V. LES PROBLEMES DE CONCURRENCE D’ACCES........................................................................................................... 7
VI. VERROUILLAGE...................................................................................................................................................... 9
VII. LA SERIALISABILITE .............................................................................................................................................. 12
VIII. PROTOCOLE DE VERROUILLAGE A DEUX PHASES ............................................................................................... 15
REMERCIEMENT
Je tiens à remercier particulièrement Mr MPECK pour l’opportunité qu’il nous
donne de faire cet expose.je tiens également a remercié :
Mes collègues
Mes ami(e)s
Ma famille
Mes camarades
Mes encadreurs
Pour les encouragements et le fait qu’ils me guident dans tous mes choix et mes
décisions
I. INTRODUCTION
La gestion des transactions est un élément clé dans le système d’information moderne. Elle permet de
garantir la cohérence et l’intégrité des données en cas d’opération concurrente ou de panne du système. Dans
un monde ou les données de plus en plus critiques pour les entreprises. La gestion est essentielle pour
assurer les transactions et la sécurité des systèmes d’information.

La gestion de transaction fait son apparition dans des années 1970 avec le développement des SGBD.
Elle repose sur les principes fondamentaux tel que la cohérence, l’isolation, durabilité, l’atomicité. Ces
principes garantissent que les transactions soient exécutées de manière fiable et sécurisée. Ce pendant dans
les lignes qui suivent il sera pour nous d’approfondir ces différents concepts.
II. LA NOTION DE TRANSACTION

C’est une unité logique de traitement qui est soit complètement exécutée ou complétement
abandonnée. C’est également une unité atomique de traitement qui fait passer la base de données d’un Etat
cohérent a un autre Etat cohérent. Ce pendant si une transaction ne va pas en sont terme pour une raison ou
pour une autre, la base est restaurée dans l’Etat ou elle se trouvait avant que transaction ne démarre.

Exemple du banquier :

Le transfert d’une somme S d’un compte C1 vers un compte C2


Début-transaction
Lire C1
C1 : =C1-S
Ecrire : C1
Lire C2
C2 : = C2+S
Ecrire C2
Fin-transaction
Cette transaction est constituée d’un ensemble d’action élémentaires, mais elle doit être
traiter comme une seule opération.
Autrement dit le gestionnaire des transactions doit assurer que toutes les actions de la
transaction sont exécutées, ou bien qu’aucune ne l’est.
III. LA VIE D’UNE TRANSACTION
▪ VIE SANS EXPLOIRE

La transaction s’exécute normalement jusqu’à la fin. Elle se termine par une


instruction de validation COMMIT en SQL.
Nous dirons que cette transaction est validée. Toutes les modifications faites sur la
base par cette transaction sont considérées comme définitive.
❖ Un assassinat est un évènement extérieur qui vient interrompe l’exécution de
la transaction de façon irrémédiable. Cet arrêt peut provenir, soit d’une panne,
soit d’une action délibère de la part du SGBD qui décide de supprimer telle ou
telle transaction (c’est le cas lorsqu’il détecte un interblocage).
❖ Un suicide au cours de son exécution la transaction détecte certaines
conditions qui font que la poursuite de son exécution s’avère impossible, elle
peut se supprimer en exécutant une instruction d’annulation ROLLBACK en
SQL
❖ Dans ces deux derniers cas, tout doit se passer comme si la transanction
n’avait jamais existée. Il faut donc en quelques sorte lui faire faire marche
arrière et effacer de la base de données toutes trace de son exécution :nous
disons que la transaction a été annulée.

IV. GESTION DES TRANSACTIONS


Un système de gestion transactionnel doit garantir les propriétés suivantes
(résumées par le vocable ACID) :

▪ Atomicité : une transaction doit effectuer toutes ses mises à jour ou rien faire du tout.
▪ Cohérence :la transaction doit faire passer la base de données d’un état cohérent a un
autre.
▪ Isolation : les résultats d’une transaction ne doivent être visible aux autres
transactions qu’une fois la transaction validée.
▪ Durabilité : dès qu’une transaction valide, ses modifications, le système doit garantir
que ces modifications seront conservées en cas de panne.
V. LES PROBLEMES DE
CONCURRENCE D’ACCES
Des transactions exécutées concurremment peuvent interférer et mettre la base de données
dans un état incohérent.
Considérons deux transactions T1 et T2 qui s’intéressent à un même objet A. les deux seules
opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
• LECTURE-LECTURE ET PARTAGE
• Aucun conflit
• Un même objet peut toujours être partage en lecture
• ECRITURE-ECRITURE ET PERTE DE MISE A JOUR
T2 vient (écraser) par une autre écriture celle effectuée par T1

Temps Transaction T1 Etat de la Transaction T2


base
T1 Lire A A=10 -
T2 - Lire A
T3 A :=A+10 -
T4 - -
T5 - A :=A+50
T6 Ecrire A A=20 -
T7 - A=60 Ecrire A

• ECRITURE- LECTURE ET LECTURE IMPROPRE


T2 lit une valeur modifiée par T1 et ensuite T2 est annulée

Temps Transaction T1 Etat de la Transaction T2


base
T1 Lire A A=10 -
T2 A :=A+20 -
T3 Ecrire A A=30 -
T4 - Lire A
T5 **annulation**
T6 - -
• LECTURE-ECRITURE ET LECTURE NON
REPRODUCTIBLES
T1 modifie la valeur de A entre deux lectures de T2

Temps Transaction T1 Etat de la base Transaction T2


T1 Lire A A=10 -
T2 - Lire A
T3 A : = A+10 -
T4 Ecrire A A=20 -
T5 - -
T6 - Lire A

De nombreuses solutions ont été proposées pour traiter le problème des accès
concurrents.
Un exemple important est le verrouillage a deux phases qui est un des plus
utilises.
VI. VERROUILLAGE
Le verrouillage repose sur les deux actions :
Verrouillage(A) : acquérir un contrôle de l’objet A
Libérer(A) : libérer l’objet A
Un objet A est typiquement un n-uplet de la base de données, il existe deux types de verrous
➢ Verrous exclusifs (X locks) ou verrous d’écriture
➢ Verrous partages (S locks) ou verrous de lecture

Protocole d’accès aux données

• Aucune transaction ne peut effectuer une lecture ou une mise à jour d’un objet si elle
n’a pas acquis au préalable un verrous S ou X sur cet objet
• Si une transaction ne peut obtenir un verrou déjà obtenu par une autre transaction T2,
alors elle doit attendre jusqu’à ce que le verrou soit libéré par T2
• Les verrous X sont conserves jusqu’à la fin de la transaction (COMMIT ou
ROLLBACK)
• En général les verrous S sont également conservés jusqu’à cette date
Phénomènes indésirables

La privation : une transaction risque d’attendre un objet indéfiniment si à chaque fois que cet objet est libéré,
il est pris par une autre transaction.
Pour traiter ce problème, on peut organiser sur chaque verrou une file d’attente avec une politique (premier
arrivée), (première servie).
L’interblocage (ou verrou mortel)

TI

A B

TJ
Ti attend Tj ; Tj attend Ti : il y a interblocage
On peut construire le graphe (qui attend quoi) :
- les sommes représentent les transactions T1
- on aura une arête Ti ----> Tj si Ti est en attente de Tj
Il y a situation t’interblocage lorsque le graphe contient un cycle. Il existe deux techniques pour traiter le
problème d’interblocage :

➢ Prevention des interblocages


Lorsqu’une demande d’acquisition de verrou ne peut être satisfaite on fait passer un test aux deux
transactions impliquées, à savoir celle qui demande le verrou, Ti, et celle qui le possède déjà, Tj.
Si Ti et Tj passe le test alors Ti est autorisé à attendre Tj, sinon l’une des deux transactions est annulée pour
être relancée par la suite.
➢ Détection des interblocages
Les interblocages sont détectes en construisant effectivement le graphe (qui attend quoi) et en y recherchant
les cycles.
Lorsqu’un cycle est découvert l’une des transactions est choisi comme victime, elle est annulée de manière à
faire disparaitre le cycle.
L’examen du graphe peut se faire soit lorsqu’il y a attendu de la part d’une transaction, soit périodiquement.
VII. LA SERIALISABILITE
Une exécution entrelacée donnée d’un ensemble de transaction est considérée correcte si elle est sérialisable-
c’est-à-dire, si elle produit le même résultat qu’une certaine exécution en série des mêmes transactions
s’exécutant l’une après l’autre.

L’ordonnancement : étant donnée un ensemble de transaction, toute exécution de ces transactions


(entrelacée ou non) est appelée un ordonnancement.

Théorème de verrouillage a deux phases :si toutes les transactions satisfait le « protocole de verrouillage
a deux phases », tous les ordonnancements entrelaces sont alors sérialisables.
VIII. PROTOCOLE DE
VERROUILLAGE A DEUX
PHASES
Chaque transaction, tous les verrouillages doivent précéder toutes les libérations de verrous
On distingue deux phases :
-acquisition des verrous
-libération des verrous
Dans la pratique, la seconde phase est souvent condensée en une seule opération de COMMIT ou de
ROLLBACK à la fin de la transaction.
Dans le but de réduire les conflits sur les ressources et, par la même , d’améliorer Pour les performances, les
systèmes réels autorisent la construction de transactions qui ne sont pas A deux phases- c’est-à-dire qui
abandonnent prématurément des verrous (avant le COMMIT) et obtiennent ensuite de nouveaux verrous.

❖ Niveaux d’isolation
Tout protocole qui n’est pas complètement sérialisable ne peut être considéré sur, cependant , les système
autorisent des transactions s’exécutant a un niveau d’isolation non sur qui pourrait violer la sérialisabilité de
trois façons particulières :
• Lecture salissante
Supposons que la transaction T1 effectue une mise à jour sur certaine ligne, que la transaction T2 récupère
ensuite cette ligne et que la transaction T1 se termine par un ROLLBACK.la transaction T2 a alors observe
une ligne qui n’existe plus, et dans un certain sens n’a jamais existé (car la transaction T1 n’a en fait jamais
été exécutée).
• Lecteur non renouvelable
Supposons que la transaction T1 récupère une ligne, que la transaction T2 effectue en suite une mise à jour à
cette ligne et que la transaction T1 récupère de nouveau la « même » ligne.la transactionT1 a en fait
récupérer la « même » ligne deux fois mais a observé des valeurs différentes de cette ligne.
• Fantômes
Supposons que la transaction T1 récupère un ensemble de ligne qui satisfait une certaine condition.
Supposons que la transaction T2 insère en suite une ligne qui satisfait la même condition.si la transaction T1
répète maintenant la même demande. Elle observera une ligne qui n’existait pas précédemment – un
« fantôme ».
➢ Niveau d’isolation SQL
L’instruction SET TRANSACTION permet de définir le niveau d’isolant de la prochaine transaction a
exécuter
SET TRANSACTION READ UNCOMMITTED/ READ COMMITTED/
REPEATABLE READ/ REPETABLE READ/ SERIALIZABLE
• L’option par défaut est SERIABIZABLE

Niveau d’isolation Lectures Lecture non Fantôme


Salissante renouvelable
READ UNCOMMITTED O O O
Lecture non validée
READ COMMITTED N O O
Lecture validée
REPEATABLE READ N N O
Lecture renouvelable
SERIALIZABLE N N N
Sérialisable
VIIII. C0NCLUSION

Au terme de notre expose, nous constatons que la gestion de transaction est une unité logique de traitement
qui est soit complétement exécutée soit complétement abandonnée. Par ailleurs, nous ne pouvons parler de
gestion des transactions sans toutefois parle de la notion de transaction, de la vie d’une transaction, des
problemes de concurrences d’accès, du verrouillage, de la sérialisabilité et du protocole de verrouillage a
deux phases.
I. INTRODUCTION ......................................................................................................................................................... 4
II. LA NOTION DE TRANSACTION ................................................................................................................................... 5
III. LA VIE D’UNE TRANSACTION ................................................................................................................................. 6
IV. GESTION DES TRANSACTIONS ............................................................................................................................... 6
V. LES PROBLEMES DE CONCURRENCE D’ACCES........................................................................................................... 7
VI. VERROUILLAGE...................................................................................................................................................... 9
VII. LA SERIALISABILITE .............................................................................................................................................. 12
VIII. PROTOCOLE DE VERROUILLAGE A DEUX PHASES ............................................................................................... 15

Vous aimerez peut-être aussi