AZZOUZ
TD Transactions
– USTHB M1 SSI–
M. AZZOUZ
Dernière mis à jour :Février 2021
Exercice 01
On considère 3 transactions Ti , Tj , Tk :
Ti Tj Tk
READ(A)=Ri (A) READ(A)=Rj (A) WRITE(A)=Wk (A)
WRITE(B)=Wi (B) READ(B)=Rj (B) WRITE(B)=Wk (B)
Rj (A) Ri (A)
Wk (A) Ri (A)
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5;
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5;
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1: b:=(b*2)-10;
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T2: tmp:= a;
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T2:a:= b;
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T2:b:= tmp;
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
T1 T2 T3
a b a b tmp a b A B
- - - - - - - 5 10
T1: a:=(a*2)-5; 5 - - - - - - 5 10
A
T1 T2
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A
T1 T2
A
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A
T1 T2
A
A
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A
T1 T2
A
A A
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A
T1 T2
A /B
A A
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A
T1 T2
A /B
A /B A
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A
T1 T2
A /B
A /B A /B
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A /B
T1 T2
A /B
A /B A /B
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A /B
T1 T2
A /B
A /B A /B
T3
Exercice 02
Considérer l’ordonnancement de transactions suivant : A=5; B=10;
2.L’ordonnancement est-il correct? Sérialisable ?.
b. Sérialisable?
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A) W2(B) C2
Par graphe de précédence
Déterminer les conflits
Sur A: R1(A)- W2(A); R2(A)- W1(A); R3(A)-W1(A); R3(A)-W2(A); W1(A)- W2(A);
Sur B: R2(B)-W1(B); R3(B )-W1(B); R3(B )-W2(B); R1(B)- W2(B); W1(B)- W2(B);
Tracer le graphe
A /B
T1 T2
A /B
A /B A /B
T3
Le graphe contient le cycle {T1, T2, T1}, l’ordonnancement est n’est pas sérialisable.
Exercice 02
3.Donner le scenario d’exécution de cet ordonnancement dans le cas du verrouillage à deux
phases. Construire le graphe d’attente de cet ordonnancement. Existe-t-il un deadlock ? Si oui,
proposer une solution à ce problème.
L’ordonnancement O: R1(A) R2(A) R2(B) R3(A) R3(B) C3 W1(A) R1(B) W1(B) C1 W2(A)
W2(B) C2
a. V2P
c.Solution : Les deux transaction T1 et T2 n’ont pas fait de mise à jour. T2 est la
victime car elle est la plus récente. Rollback(T2) annuler T2 et libérer les
verrous(unlock(A); Unlock(B)) et reprendre T1 à partir de point de blockage. T2
sera relancée dés son début à la fin
Exercice 02
c. V2P après annulation de T2 et reprise de T1
T3
Exercice 03
1. Produisez un graphe d’attente pour ce scénario.
T3
X4
T6
Exercice 03
1. Produisez un graphe d’attente pour ce scénario.
X1 T4 X7 X1
X7
T5 X1, X5 X3
T4
X8 T6 X4, X9 X6
T7 X6 X5
X5
T3
X4
T6
Exercice 03
1. Produisez un graphe d’attente pour ce scénario.
X1 T4 X7 X1
X7
T5 X1, X5 X3
T4
X8 T6 X4, X9 X6
T7 X6 X5
X5
T3
X4
T6
Exercice 03
1. Produisez un graphe d’attente pour ce scénario.
X1 T4 X7 X1
X7
T5 X1, X5 X3
T4
X8 T6 X4, X9 X6
T7 X6 X5
X5
T3
T7
X4
X6
T6
Exercice 03
1. Déterminez si des verrous indéfinis (deadlock) apparaissent.
T3
T7
X4
X6
T6
Exercice 03
2. Déterminez si des verrous indéfinis (deadlock) apparaissent.
T3
T7
X4
X6
T6
Exercice 03
2. Déterminez si des verrous indéfinis (deadlock) apparaissent.
T3
T7
X4
X6
T6
Exercice 03
2. Déterminez si des verrous indéfinis (deadlock) apparaissent.
T3
T7
X4
X6
T6
Exercice 03
2. Déterminez si des verrous indéfinis (deadlock) apparaissent.
L'un des programmes qui s'exécute dans ce SGBD gère les connexions à
un système informatique. Ce programme lit le mot de passe de
l'utilisateur, le compare avec celui stocké sous forme cryptée dans la base
de données écrit les informations de connexion dans le journal de
connexions et incrémente la valeur du nombre d'accès réalisés par
l'utilisateur dans le système. Le journal de connexions et le nombre
d'accès des utilisateurs sont stockés dans la base de données.
Exercice 04
L'un des programmes qui s'exécute dans ce SGBD gère les connexions à un
système informatique. Ce programme lit le mot de passe de l'utilisateur, le
compare avec celui stocké sous forme cryptée dans la base de données, écrit les
informations de connexion dans le journal de connexions et incrémente la
valeur du nombre d'accès réalisés par l'utilisateur dans le système. Le journal de
connexions et le nombre d'accès des utilisateurs sont stockés dans la base de
données.
lit le mot de passe de l'utilisateur: lecture à partir de l’interface (entrée clavier).
le compare avec celui stocké sous forme cryptée dans la base de données:
lecture à partir de la BD: select * from utilisateur where
motdepasse=motdepasselu;Read.
L'un des programmes qui s'exécute dans ce SGBD gère les connexions à
un système informatique. Ce programme lit le mot de passe de
l'utilisateur, le compare avec celui stocké sous forme cryptée dans la
base de données, écrit les informations de connexion dans le journal de
connexions et incrémente la valeur du nombre d'accès réalisés par
l'utilisateur dans le système. Le journal de connexions et le nombre
d'accès des utilisateurs sont stockés dans la base de données.
En conclusion
le programme manipule trois granules: mot de passe, journal de
connexion et le nombre d’accès.
Le programme a 4 opération: deux lecture et deux écritures.
Exercice 04
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
2. Construire le graphe de précédence de cet ordonnancement. O1 est-il
sérialisable ?
Les conflits :
sur X : R1(X)- W2(X), R1(X)- W3(X), R2(X)- W3(X), W2(X)-R3(X), W2(X)-W3(X)
sur Y : W2(Y)-R3(Y)
sur Z : W3(Z)-W1(Z)
Le graphe de précédence
T1
Z
X X
X/ Y
T2 T3
Exercice 04
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
2. Construire le graphe de précédence de cet ordonnancement. O1 est-il
sérialisable ?
Les conflits :
sur X : R1(X)- W2(X), R1(X)- W3(X), R2(X)- W3(X), W2(X)-R3(X), W2(X)-W3(X)
sur Y : W2(Y)-R3(Y)
sur Z : W3(Z)-W1(Z)
Le graphe de précédence
T1
Z
X X
X/ Y
T2 T3
Le graphe contient le cycle {T1, T3, T1}, l’ordonnancement est n’est pas
sérialisable.
Exercice 04
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
Exercice 04
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
3. Donner le scenario d’exécution de cet ordonnancement en appliquant le
protocole de verrouillage à deux phases. Justifier.
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
Exercice 04
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O1: R1(X) R2(X) W2(Y) R3(Y) W3(Z) W1(Z) W2(X) R3(X) W3(X)
4. L’algorithme d’estampillage (à deux estampilles) accepte-t-il cet
ordonnancement sans rejets ?
O2: R1(X) R2(X) R3(Y) W2(Y) W3(Z) W1(Z) R3(X) W2(X) W3(X).
5. Construire le graphe d’attente de cet ordonnancement. Existe-t-il un
deadlock ? Si oui, proposer une solution à ce problème.
a. V2P
Exercice 04
O2: R1(X) R2(X) R3(Y) W2(Y) W3(Z) W1(Z) R3(X) W2(X) W3(X).
5. Construire le graphe d’attente de cet ordonnancement. Existe-t-il un
deadlock ? Si oui, proposer une solution à ce problème.
a. V2P
O2: R1(X) R2(X) R3(Y) W2(Y) W3(Z) W1(Z) R3(X) W2(X) W3(X).
5. Construire le graphe d’attente de cet ordonnancement. Existe-t-il un deadlock ?
Si oui, proposer une solution à ce problème.
b.Graphe d’attente
Z X
T1 T3 T2
X Y
O2: R1(X) R2(X) R3(Y) W2(Y) W3(Z) W1(Z) R3(X) W2(X) W3(X).
5. Construire le graphe d’attente de cet ordonnancement. Existe-t-il un
deadlock ? Si oui, proposer une solution à ce problème.
a. V2P