Vous êtes sur la page 1sur 3

Faculté d’Electronique et d’Informatique 2011/ 2012

Département informatique Master : RSD, SII et MIL

Examen : Architecture des SGBD


Durée : 1h 30

Exercice 1.

Soient m transactions T1, T2, …, Tm opérant sur une BD gérant 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 représentée par : OPi(Oj) tel que :

• Oj est un objet (1≤j≤n)

• OPi représente une opération effectuée par la transaction Ti (1≤i≤m).

Ri, si Ti veut lire la valeur de l’objet Oj

Wi, si Ti veut écrire la valeur de l’objet Oj

OPi =

Questions

Supposons que le gestionnaire des transactions applique l’algorithme de verrouillage à deux phases
pour contrôler la sérialisabilité de l’ordonnancement OC

1. Dans quels cas une transaction Ti demandant un verrou sur l’objet Oj, obtient l’accord du
gestionnaire.

2. Dans quels cas une transaction T i demandant un verrou sur l’objet O j, n’obtient pas l’accord
du gestionnaire.

3. Dans quels cas, une transaction Ti, ne peut pas demander de verrous?

4. A quel moment une transaction Ti libère les objets qu’elle a verrouillé?

5. Ecrire un algorithme permettant d’implémenter le protocole de verrouillage à deux phases en


prenant en compte les cas traités dans les questions précédentes.

6. Appliquer cet algorithme sur le scénario suivant :

a. Trois objets : A, B, C

b. Cinq 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 d’attente, existe-t- il des deadlock? Si oui, proposer une solution.

Exercice 2

Dans le cadre de la réforme de la sécurité sociale le gouvernement veut créer un « dossier médicale
partagé » qui permettra dans quelques minutes aux médecins de connaitre tous les actes médicaux,
tous les traitements mais aussi tous les antécédents d’un patient. La gestion de tels dossiers peut être
facilitée par un SGBD relationnel avec le schéma (simplifié) suivant (les attributs clés sont soulignés) :

Personne(Numss, Nom, Prénom, Adresse)

Consultation(NumCons, Date, Symptôme, NumSSPatient*, NumSSMédecin*)

Prescription(NumCons, NomMédicament)

Médicament(NomMédicament, NomSubstance, Prix)

Une personne (patient ou médecin) a un numéro de sécurité sociale (NumSS), un nom, un prénom et
une adresse.

Chaque consultation a un numéro unique (NumCons), une date, le numéro de sécurité sociale du
patient et du médecin ainsi que le symptôme du patient (nous supposons qu’un patient n’a qu’un seul
symptôme au moment d’une consultation).

Les médicaments prescrits après une consultation sont stockés dans la table prescription (un traitement
est composé de toutes les prescriptions associées à la même consultation).

Pour chaque médicament on connait son nom et la substance active et le prix.

Questions :

1. Si la relation consultation est interrogée très fréquemment par la requête suivante :

SELECT Nom FROM Personne P, Consultation C WHERE P.NumCons=C.NumCons AND


C.Symptôme=”touxsèche”;

a. Quelle solution proposez-vous à l’administrateur de cette base de données pour


améliorer le temps de réponse de cette requête.

b. Quel objectif des SGBD relationnels permet cela.

2. Lors de la conception de la BD, l’administrateur n’a pas prévu le prix de la consultation qui
est important pour la comptabilité

a. Comment il pourrait rattraper cet oubli ?

b. Quel objectif des SGBD permet cela et comment il le permet ?

c. Quelles sont les répercussions sur les différents catalogues ?


3. Donner la contrainte d’intégrité permettant à la sécurité sociale de réaliser un remboursement
à la source (aucun paiement par le patient) si le prix de la consultation plus le prix des
médicaments prescrits lors de cette consultation ne dépasse pas 2000 DA.

Vous aimerez peut-être aussi