Précédent Index

4   Concurrence (5 points)

Un SGBD reçoit la séquence d'opérations suivante, en provenance de trois transactions :

H: r1[x] r2[x] w2[y] r3[y] w3[z] w1[z] w2[x] r3[x] c2 c1 w3[x] c3

Question 4.1 :
(1 pt) 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.
Question: est-ce que l'une des transactions ci-dessus peut représenter l'exécution de ce programme de gestion des connexions? Justifiez votre réponse.

Question 4.2 :
(1 pt) On suppose que les opérations reçues sont exécutées dans ce même ordre par le SGBD. Montrez que cette exécution n'évite pas les annulations en cascade. Quelle transaction doit être annulée et quand pour que l'annulation en cascade se produise?

Question 4.3 :
(1 pt) Vérifiez si l'exécution est sérialisable, en trouvant les conflits et en construisant son graphe de sérialisation.

Question 4.4 :
(1,5 pt) Quelle est l'exécution obtenue par verrouillage à deux phases sur cette séquence d'opérations? On considère que le relâchement des verrous d'une transaction se fait au Commit et qu'à ce moment on exécute en priorité les opérations bloquées en attente de verrou.

Question 4.5 :
(0,5 pt) L'exécution obtenue par verrouillage à deux phases évite-t-elle les annulations en cascade?

Précédent Index