Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définition des niveaux d'isolement
Le « I » dans ACID signifie isolation. Le degré d'isolement d'une transaction détermine dans quelle mesure les autres transactions simultanées peuvent affecter les données sur lesquelles elle opère.
La norme SQL:1992Tx1 et Tx2 :
Dirty read: se produit lorsqueTx1modifie un élément, puis queTx2lit cet élément avant queTx1n'ait validé la modification. Ensuite, siTx1ne réussit jamais à valider la modification ou l'annule,Tx2a lu une valeur qui n'est jamais parvenue à la base de données.Non-repeatable read: se produit lorsqueTx1lit un élément, puis queTx2modifie ou supprime cet élément et valide la modification, et queTx1essaie de relire l'élément.Tx1lit alors une valeur différente de la valeur précédente ou constate que l'élément n'existe plus.Phantom read: se produit lorsqueTx1lit un ensemble d'éléments qui répondent à un critère de recherche, puis queTx2ajoute un nouvel élément qui répond au critère de recherche et queTx1répète la recherche.Tx1obtient alors un ensemble d'éléments différent de celui obtenu auparavant.
Chacun de ces trois types d'interaction peut entraîner des incohérences dans les données de résultat d'une base de données.
La norme SQL:1992 définit quatre niveaux d'isolement qui présentent des garanties différentes concernant ces trois types d'interaction et les incohérences qu'ils peuvent produire. À ces quatre niveaux, une transaction peut avoir la garantie de s'exécuter complètement ou de ne pas s'exécuter du tout :
READ UNCOMMITTED: autorise les trois types d'interaction, c'est-à-dire les lectures corrompues (dirty read), les lectures non reproductibles (non-repeatable read) et les lectures fantôme (t=phantom read).READ COMMITTED: les lectures corrompues ne sont pas possibles, mais les lectures non reproductibles et fantôme le sont.REPEATABLE READ: ni les lectures corrompues ni les lectures non reproductibles ne sont possibles, mais les lectures fantôme le sont encore.SERIALIZABLE: aucun des trois types de phénomène d'interaction ne peut se produire.
Le contrôle de simultanéité multiversion (MVCC) permet un autre type d'isolement, à savoir l'isolement SNAPSHOT . Cela garantit qu'une transaction s'exécute sur un instantané des données telles qu'elles existent lorsque la transaction commence, et qu'aucune autre transaction ne peut modifier cet instantané.