Vous êtes sur la page 1sur 11

Exercices

 Soit l’ordonnancement O suivant :

T1 T2 T3
L(A)
L(A)
L(B)
L(B)
L(B)
L(A)
M=A
N=B
A=B
B=M
E(A)
B=A
A=N
E(A)
E(B)
E(B)
Commit
Commit
P=A
A=B
B=P
E(A)
E(B)
Commit

 Monter que O1 est sérialisable.


 Montrer que O1 n’est pas c-sérialisable.
 Est-ce que O1 est récupérable ? Expliquer
 Soit l’ordonnancement O2 suivant avec les transactions lancées
dans l’ordre chronologique T1, T2, T3, T4, T5 :
T1 T2 T3 T4 T5
L(A)
L(B)
E(B)
L(B)
L(A)
E(B)
L(B)
L(B)
L(A)
L(A)

On suppose que l’on utilise le mécanisme de contrôle de


concurrence basé sur les estampilles. Au final, quelles sont les
transactions qui seront exécutées et quelles sont celles qui devront
être annulées ?
 Suite à une panne, et pour réaliser une reprise, on utilise le fichier
log dont le contenu est décrit ci-dessous :
<T1 Start>
<T1, A, 0, 10>
<T2 Start>
<T2 A, 10, 20>
<T3 Start>
<T2 commit>
<Checkpoint {T1, T3}>
<T3, B, 1, 11>
<T4 Start>
<T4, B, 11, 22>
<T4 Commit>
<T3 Commit>
<T5 Start>
<T5, B, 22, 33>
<T1, A, 20, 30>

 Quelles sont les transactions à refaire et celles à défaire ?


 Donner la suite des affectations que l’on doit exécuter lors
de la phase UNDO.
 Donner la liste des affectations que l’on doit exécuter lors de
la phase REDO.
 Est-il possible que ces transactions aient toutes utilisé le
protocole de verrouillage en deux phases strict ? Expliquer.
 Soit l’ordonnancement O3 suivant :
Instant T1 T2 T3
t_1 Lock_P(A)
t_2 L(A)
t_3 Lock_P(A)
t_4 L(A)
t_5 Lock_X(B)
t_6 L(B)
t_7 B = B+1
t_8 E(B)
t_9 Lock_X(B)
t_10 L(B)
t_11 Lock_X(B)
t_12 L(B)
t_13 B=B+2
t_14 B = B+3
t_15 Unlock(A)
t_16 Unlock(B)
t_17 Lock_X(A)
t_18 A = A+3
t_19 E(A)
t_20 Unlock(B)
t_21 Unlock(A)
t_22 Unlock(B)
t_23 Unlock(A)

 Montrer que cet ordonnancement mènera à une situation de


deadlock en précisant l’instant où ce dernier aura lieu
(colonne Instant). Indication : utiliser le graphe d’attente.
 Supposons que les transactions sont lancées selon l’ordre
chronologique T1, T2, T3. Supposons que pour éviter les
deadlocks, on décide d’annuler certaines transactions en
privilégiant les plus anciennes transactions (Ti peut attendre
Tj si Ti est plus ancienne que Tj, sinon Ti est annulée). Quelles
transactions pourront terminer leur exécution ?
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O4 suivant :

T1 T2
Begin Transaction
Select * From T ;
Begin transaction
Select B from T where A=10;
Update T set B=1000 where
A=10;
Commit
Select B from T where A<20;
Commit

 On suppose que T1 et T2 utilisent le même niveau


d’isolation. Quel est ce niveau d’isolation qui permet
justement d’exécuter ces opérations dans cet ordre
chronologique ? Indication : Procéder par élimination
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O5 suivant :

T1 T2
Set transaction isolation level READ
COMMITTED
Begin Transaction
Select B From T where A=10;
Set transaction isolation level SERIALIZABLE
Begin transaction
Update T set B=B+1 ;
Commit
Select B From T where A=10;
Commit

Dérouler cet ordonnancement et expliquer où et quand les verrous


sont-ils posés et libérés. Quelles sont les valeurs affichées par la
transaction T1.
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O6 suivant :

T1 T2
Set transaction isolation level SERIALIZABLE
Begin Transaction
Select B From T where A=10;
Set transaction isolation level READ
COMMITTED
Begin transaction
Update T set B=B+1 ;
Commit
Select B From T where A=10;
Commit

Dérouler cet ordonnancement et expliquer où et quand les verrous


sont-ils posés et libérés. Quelles sont les valeurs affichées par la
transaction T1.
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O7 suivant :

T1 T2
Set transaction isolation level REPEATABLE
READ
Begin Transaction
Select count(*) From T ;
Set transaction isolation level READ
COMMITTED
Begin transaction
Insert into T values(30, 300) ;
Commit
Select count(*) From T;
Commit

Dérouler cet ordonnancement et expliquer où et quand les verrous


sont-ils posés et libérés. Quelles sont les valeurs affichées par la
transaction T1.
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O8 suivant :

T1 T2
Set transaction isolation level REPATABLE
READ
Begin Transaction
Select B From T where A=10;
Set transaction isolation level READ
COMMITTED
Begin transaction
Insert into T values(30, 300)
Update T set B=B+1 ;
Commit
Select B From T where A=10;
Commit

Dérouler cet ordonnancement et expliquer où et quand les verrous


sont-ils posés et libérés. Quelles sont les valeurs affichées par la
transaction T1. Qu’arrive-t-il avec cet ordonnancement ?
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O9 suivant :

T1 T2
Set transaction isolation level READ
COMMITTED
Begin Transaction
Select B From T where A=10;
Set transaction isolation level READ
COMMITTED
Begin transaction
Insert into T values(30, 300)
Update T set B=B+1 ;
Commit
Select B From T where A=10;
Commit

Dérouler cet ordonnancement et expliquer où et quand les verrous


sont-ils posés et libérés. Quelles sont les valeurs affichées par la
transaction T1.
 Soit la table T suivante
A B
10 100
20 200

Soit l’ordonnancement O10 suivant :

T1 T2
Set transaction isolation level SERIALIZABLE
Begin Transaction
Select B From T where A=10;
Set transaction isolation level SERIALIZABLE
Begin transaction
Update T set B=B+1 ;
Commit
Select B From T where A=10;
Commit

Dérouler cet ordonnancement et expliquer où et quand les verrous


sont-ils posés et libérés. Quelles sont les valeurs affichées par la
transaction T1.

Vous aimerez peut-être aussi