Transactions exercices, Exercises of Database Management Systems (DBMS)

Exercices about transaction in fatat base

Typology: Exercises

2020/2021

Uploaded on 01/01/2021

nour7
nour7 🇩🇿

1 document

1 / 7

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Page: 1
Solutions aux exercices du chapitre 14
1. a) Cet ordonnancement n'est pas sérialisable car le résultat de l'ordonnancement
séquentiel T1,T2 produit l'état, A=15,B=5, et le résultat de T2,T1 produit l'état A=30,B=15
b) Cet ordonnancement n'est pas sérialisable car le résultat de l'ordonnancement
séquentiel T1,T2 produit l'état, A=15,B=5, et le résultat de T2,T1 produit l'état A=30,B=15
(idem a)
L'ordonnancement ne respecte pas le protocole de verrouillage en deux phases car par
exemple, Dev(A) au temps t4 par T1 précède Ver(B,X) au temps t9 par T1.
c) Oui (équivalent à T1,T2)
Cet ordonnancement suit une variation possible du protocole de verrouillage rigoureux en
deux phases qui n'utilise que des verrouillages exclusifs (verrouillage exclusif rigoureux
en deux phases).
d)
Temps
Transaction T1
État de la BD
Transaction T2
t1
DébutTransaction
A = 10, B = 20
t2
Ver(A, P)
t3
Lire(A, a)
t4
DébutTransaction
t5
Ver(B, P)
t6
Lire(B, b)
t7
Ver(B, P)
t8
Lire(B, b)
t9
Ver(A, P)
t10
Lire(A, a)
t11
b := a/2
t12
a := a+b
t13
Ver(B, X)
t14
attente (bloquée)
t15
attente (bloquée)
Ver(A, X)
t16
attente (bloquée)
interblocage
attente (bloquée)
t17
assassinat de la victime
T2
t18
Dev(A)
t19
Écrire(b, B)
B=5
t20
Dev(B)
t21
ConfirmerTransaction
t22
Résurrection de T2…
e) en t9 le Écrire(b, B) serait rejeté et provoquerait l'annulation de T1
pf3
pf4
pf5

Partial preview of the text

Download Transactions exercices and more Exercises Database Management Systems (DBMS) in PDF only on Docsity!

Page: 1

Solutions aux exercices du chapitre 14

  1. a) Cet ordonnancement n'est pas sérialisable car le résultat de l'ordonnancement séquentiel T 1 , T 2 produit l'état, A=15,B=5, et le résultat de T 2 , T 1 produit l'état A=30,B= b) Cet ordonnancement n'est pas sérialisable car le résultat de l'ordonnancement séquentiel T 1 , T 2 produit l'état, A=15,B=5, et le résultat de T 2 , T 1 produit l'état A=30,B= (idem a) L'ordonnancement ne respecte pas le protocole de verrouillage en deux phases car par exemple, Dev ( A ) au temps t 4 par T 1 précède Ver ( B , X ) au temps t 9 par T 1. c) Oui (équivalent à T 1 , T 2 ) Cet ordonnancement suit une variation possible du protocole de verrouillage rigoureux en deux phases qui n'utilise que des verrouillages exclusifs (verrouillage exclusif rigoureux en deux phases). d) Temps Transaction T 1 État de la BD Transaction T 2 t 1 DébutTransaction A = 10, B = 20 t 2 Ver ( A , P ) t 3 Lire ( A , a ) t 4 DébutTransaction t 5 Ver ( B , P ) t 6 Lire ( B , b ) t 7 Ver ( B , P ) t 8 Lire ( B , b ) t 9 Ver ( A , P ) t 10 Lire ( A , a ) t 11 b := a / t 12 a := a + b t 13 Ver ( B , X ) t 14 attente (bloquée) t 15 attente (bloquée) Ver ( A , X ) t 16 attente (bloquée) interblocage attente (bloquée) t 17 assassinat de la victime T 2 t 18 Dev ( A ) t 19 Écrire ( b , B ) B = t 20 Dev ( B ) t 21 ConfirmerTransaction t 22 Résurrection de T 2… e) en t 9 le Écrire ( b , B ) serait rejeté et provoquerait l'annulation de T 1

2.a) Oui, cet ordonnancement est équivalent à T 1 , T 2. N.B. L'équivalence dépend des calculs particuliers effectués ici. Cet ordonnancement n'est pas sérialisable par conflit (cycle dans le graphe de préséance) Cet ordonnancement est récupérable car les données écrites par une transaction ne sont pas lues par l'autre. b) Oui, cet ordonnancement est équivalent à T 1 , T 2. Cet ordonnancement respecte le protocole de verrouillage en deux phases mais pas la variante stricte car Dev ( B ) par T 1 précède le ConfirmerTransaction

Le graphe de préséance contient un cycle! Donc, l'ordonnancement n'est pas sérialisable par permutation. c) Non, par exemple, en t 5 , le Écrire ( a , A ) n'est pas précédé d'une demande de verrouillage exlusif pour A. Ensuite, le Dev ( A ) en t 6 précède Ver ( B , X ) en t 11 et en t5. d) Oui, ne change rien par rapport à l'ordonnancement initial dans ce cas particulier. e) Non, le Écrire ( a , A ) en t 19 est illégal car A n'est pas verrouillé exclusivement. f) En t 11 le Écrire ( b , B ) serait rejeté et provoquerait l'annulation de T

  1. a) b) Oui car graphe acyclique; un ordonnancement séquentiel équivalent est donnée par un tri topologique : T 3 , T 1 , T 2. c) Non car en t 7 , l'écriture sera rejetée. Ceci provoquera l'annulation de T 2. d) Non car en t 7 il y aura blocage de T 2. e) Non car en t 7 , l'écriture sera rejetée. Le rejet est dû au fait qu'en t 6 , T 3 a lu la version initiale de A , A 0 , qui a été écrite disons en t 0. T 3 a lu cette version et t 0 < t 3 = Estampille ( T 2 ) < t 5 = Estampille ( T 3 ). Ceci provoquera l'annulation de T 2. f) Méthode basée sur la vérification de cycles dans le graphe de préséance! (voir [Bernstein, 1987 #6])
  2. a)

b) Oui car graphe acyclique; un ordonnancement séquentiel équivalent est donnée par un tri topologique : T 4 , T 1 , T 2 , T 3.

a) Il faut refaire T 1 et défaire T 2 car même si T 2 a effectué son opération ConfirmerTransaction , l'écriture de l'enregistrement ( Confirmer , 2) n'a pas été faite au journal avant t 21. b) Algorithme en une passe de reculon Temps T 1 T 2 BD Journal Gestionnaire de récupération t 1 DébutT. A =0 ; B =10; C = t 2 ( Début , 1) t 3 Écrire (50, A ) t 4 ( Défaire , 1, A : 0) t 5 DébutT. t 6 ( Refaire , 1, A :

t 7 ( Début , 2) t 8 Écrire (100, B ) t 9 ( Défaire , 2, B :

t 10 Écrire (60, C ) t 11 ( Défaire , 1, C :

t 12 ( Refaire , 2, B :

t 12 ( Refaire , 1, C :

t 18 ( Défaire , 2, A :

t 19 C = 60 t 20 ConfirmerT. t 21 Panne t 22 A = 50 ( Défaire , 2, A :

B = 10 ( Défaire , 2, B :

A = 50 ( Refaire , 1, A :

C = 60 ( Refaire , 1, C :

d) Le gestionnaire de récupération peut éviter les opérations correspondant aux écritures de journal ( Refaire , 1,^ C : 60) et ( Défaire , 2,^ A : 50) à l'aide du NSJ car il peut déterminer que l'écriture de C a été faite pour T 1 et que l'écriture de A n'a jamais été faite ni pour T 1 ni pour T 2. Par contre, il devra faire l'opération correspondant à ( Refaire , 1, A : 50) qui a pu être omise par l'algorithme en une passe.