Bases des bases de données
Quelle proposition décrit correctement le verrouillage à deux phases (2PL), utilisé pour le contrôle de concurrence des transactions ?
- AUne transaction peut alterner autant de fois qu'elle le veut entre pose et libération de verrous. Cela garantit qu'aucun interblocage ne se produit
- BOn ne pose de verrous que pour les écritures, pas pour les lectures. Cela évite tous les problèmes, y compris les lectures sales
- CDès qu'une transaction a libéré un verrou, elle n'en pose plus de nouveau. Cela garantit qu'une exécution simultanée donne le même résultat qu'une exécution en série, mais des interblocages peuvent encore se produire
Afficher la réponse et l'explication
Réponse : C. Dès qu'une transaction a libéré un verrou, elle n'en pose plus de nouveau. Cela garantit qu'une exécution simultanée donne le même résultat qu'une exécution en série, mais des interblocages peuvent encore se produire
Avec le verrouillage à deux phases (2PL), chaque transaction comporte 2 phases : une phase où elle pose l'un après l'autre les verrous dont elle a besoin (phase de croissance) et une phase où elle les libère (phase de décroissance) ; une fois qu'elle a commencé à libérer des verrous, elle n'en pose plus de nouveaux. Si toutes les transactions respectent cette règle, le résultat d'une exécution simultanée est garanti identique à celui d'une exécution des transactions l'une après l'autre dans un certain ordre (sérialisabilité). Il ne peut toutefois pas empêcher un interblocage (deadlock), dans lequel 2 transactions attendent chacune que l'autre libère un verrou ; le SGBD détecte donc les interblocages et les traite, par exemple en annulant l'une des transactions. En pratique, on utilise couramment le verrouillage à deux phases strict, qui conserve les verrous exclusifs jusqu'à la validation ; il empêche aussi les autres transactions de lire des données non validées.
Continuer : 9 autres questions sur Bases des bases de données