Vous êtes sur la page 1sur 4

Exercice N 01 Soit m transactions T1, T2, , Tm oprant sur une BD grant n objets O1,O2, .., On.

Un ordonnancement concurrent OC des m transactions est un entrelacement des actions de toutes les transactions. Chaque action dans cet ordonnancement est reprsente par : OPi(Oj) tel que : Ojest un objet (1jn) OPi reprsente une opration effectue par la transaction Ti (1im). Ri, si Ti veut lire la valeur de lobjet Oj OPi = Wi, si Ti veut crire la valeur de lobjet Oj Questions Supposons que le gestionnaire de transactions applique lalgorithme de verrouillage deux phases pour contrler la srialisabilit de lordonnancement OC 1. Dans quels cas une transaction Ti demandant un verrou sur lobjetOj,obtient laccord du gestionnaire.
La transaction Ti demande un verrou sur lobjet Oj et obtient laccord du gestionnaire dans les cas suivants

a. Lobjet Oj est libre b. Lobjet Oj est verrouill seulement par Ti(quelque-soit le type du verrou) c. Lobjet est verrouill par une autre transaction que Ti par un verrou compatible : lobjet est
verrouill en lecture et Ti effectue une lecture (OPi=Ri).

2. Dans quels cas une transaction Ti demande un verrou sur lobjeOj, nobtient pas laccord du gestionnaire.
La transaction Ti demande un verrou sur lobjet Oj et nobtient pas laccord du gestionnaire dans les cas suivants

a. Lobjet Ojest verrouill par une autre transaction par un verrou exclusif b. Lobjet Ojest verrouill par une autre transaction par un verrou partag et la transaction Ti
effectue une Ecriture (OPi=Wi).

3. Dans quels cas, la transaction Ti, ne pourra pas demander de verrous ? Ti ne peut pas demander de verrous dans les cas suivants : a. Ti est mise en attente par le gestionnaire b. Ti a dverrouill un objet. 4. A quel moment la transaction Ti libre les variables quelle a verrouills ? Ti libre les variables verrouilles la fin de la transaction (aprs le commit). 5. Ecrire un algorithme permettant dimplmenter le protocole de verrouillage deux phases en prenant en compte les cas traits dans les questions prcdentes.

Algorithme de Verrouillage deux phases Entre : Ordonnancement OC Dbut Tant queNonFin (OC) Faire Lire(OPi, Oj) ; Si Ti est en Attente alors passer litration suivante Sinon SiOPi=Ui alors Librer(Oj), Mettre Ti en attente SinonSi (OPi=Ri) Alors // Cas de libration dun objet

// Cas de lecture dun objet

Si (Oj est Libre) Alors Accepter le verrou partag de Ti sur Oj SinonSi Il nexiste pas une autre transaction Tk (ki) qui a dj verrouill Oj par un verrou exclusif) Alors Accepter le verrou partag de Ti sur Oj Sinon Mettre Ti en attente de Tk Sinon (OPi=Wi) Alors // Cas dcriture dun objet

Si (Oj est Libre) Alors Accepter le verrou exclusif de Ti sur Oj Sinon Si Il nexiste pas une autre transaction Tk (ki) qui a dj verrouill Oj par un verrou exclusif ou un verrou partag) Alors Accepter le verrou exclusif de Ti sur Oj Sinon Mettre Ti en attente de Tk (Tk sont toutes les transactions qui ont verrouill Oj) Si fin (Ti) alors Librer tous les objets verrouilles par Ti Relancer toutes les transactions en attente de Ti. Fin Tant que Fin

6. Appliquer cet algorithme sur le scnario suivant : a. Cinq variables : A, B, C, D, E b. Six transactions T1, T2, T3, T4, T5, T6 c. OC : W6(E)W1(A)W2(C)R2(E)R1(B)W3(D)R3(C)R1(C)R6(D)R4(D)W4(D)W3(A) W3(B)W1(E)R5(A)W2(E)W6(D)W5(A) 7. Dessiner le graphe dattente, existe il des deadlock? Si oui, proposer une solution. Transaction T6 T1 T2 T2 T1 T3 T3 T1 T6 T4 T4 T3 T3 T1 T5 T2 T6 T5 Action Verrou XLOCK6(E) XLOCK1(A) XLOCK2(C) SLOCK2(E) SLOCK1(B) XLOCK3(D) SLOCK3(C) SLOCK1(C) SLOCK6(D) SLOCK4(D) SLOCK5(A) Rsultat Ok Ok Ok NON, T2 attend T6 OK OK NON, T3 attend T2 NON, T1 attend T2 NON, T6 attend T3 NON, T4 attend T3 T4 attend T3 T3 attend T2 T3 attend T2 T1 attend T2 NON, T5 attend T1 T2 attend T6 T6 attend T3 T5 attend T1

W6(E) W1(A) W2(C) R2(E) R1(B) W3(D) R3(C) R1(C) R6(D) R4(D) W4(D) W3(A) W3(B) W1(E) R5(A) W2(E) W6(D) W5(A)

Graphe dattente

T1

T2

T6

T5

T4

T3

Il y a un cycle T2, T6, T3 alors prsence de deadlock. La solution consiste annuler une transaction parmi T3, T2 et T6, et la relancer aprs afin de casser le cycle. On peut annuler T2 qui bloque deux transactions T3 et T1.

Corrig de lexercice 2 1.a. Crer un index secondaire grce la commande : Create index Isympt on consultation (Symptme); 1. b. Cela rpond lobjectif de lindpendance physique. Ladministrateur peut crer tout moment, pour des raisons defficacit, un nouvel index secondaire. Cest loptimiseur de choisir parmi les chemins existant, le meilleur chemin. 2. a Il utilise la commande Alter table ( ou Expand table) : Alter Table Consultation Add field (prix Integer) ; 2. b Ceci est rendu possible grce lindpendance logique, la gestion des catalogues. Cela permet de changer le schma de la base de donnes tout moment. 2. c La cration dun nouvel attribut a pour consquences : Dans le catalogue attribut : linsertion dune ligne dcrivant lattribut (Nom attribut : prix-consult, type : interger, .) Dans le catalogue relation : Modification de la cardinalit de la relation attribut : card = card + 1 Modification de la la relation consultation : Degr = Degr + 1, Taille dun tuple = Taille dun tuple + Long dun entier Version = version +1 3. Contrainte dintgrit : Assert CI-Secu on Consultation c, Prescription p, Medicament m : 2000 <= c.prix-consult + select sum (m. prix) from mdicament where c. numcons = p.numcons and p. NomMdicament= m.NomMdicament ; Remarque : Celui qui a propos un trigger qui fait la mme chose, il est considr correct.

Vous aimerez peut-être aussi