Ressource

Affirmation

  • 2PL ou MVCC sont des outils utilisés par le SGBD pour mettre en œuvre les niveaux d’isolation définis par le standard SQL.
  • => Ce sont les niveaux d’isolation qui définissent si une transaction bénéficie d’une isolation totale ou partielle.

Définition

Définition

L’isolation de la base de données permet à une transaction de s’exécuter comme s’il n’y avait aucune autre transaction en cours d’exécution simultanément.

L’isolation est garantie par MVCC ou les Locks

Exemple (avant de rentrer dans les explications)

Les niveaux d’isolation SQL (ANSI) :

  • READ UNCOMMITTED
  • READ COMMITTED
  • REPEATABLE READ
  • SERIALIZABLE

=> Ils décrivent ce qui est possible/interdit : dirty reads, non-repeatable reads, phantom reads, etc.

Exemple

Niveau d’isolationMécanismes utilisés (exemples)Garanties
READ COMMITTEDMVCC ou 2PL légerdirty read évité, mais pas le lost update
REPEATABLE READMVCC ou 2PLlecture stable, mais phantom possible
SERIALIZABLE2PL strict ou MVCC détection de conflitsaucune anomalie

=> Chaque niveau d’isolation autorise certaines anomalie, voici pourquoi