Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Definición de niveles de aislamiento
La "I" de ACID significa aislamiento. El grado de aislamiento de una transacción determina el grado en el que otras transacciones simultáneas pueden afectar a los datos en los que opera.
El estándar SQL:1992Tx1 y Tx2:
Dirty read: esto ocurre cuandoTx1modifica un elemento y, a continuación,Tx2lee ese elemento antes de queTx1haya realizado el cambio. A continuación, siTx1nunca consigue confirmar el cambio o lo restaura,Tx2leerá un valor que nunca leyó en la base de datos.Non-repeatable read: esto ocurre cuandoTx1lee un elemento y, a continuación,Tx2lo modifica o elimina, confirma el cambio y, a continuación,Tx1intenta volver a leer el elemento.Tx1ahora lee un valor diferente al anterior o descubre que el elemento ya no existe.Phantom read: esto ocurre cuandoTx1lee un conjunto de elementos que cumplen un criterio de búsqueda y, a continuación,Tx2añade un nuevo elemento que cumple el criterio de búsqueda y luegoTx1repite la búsqueda.Tx1ahora obtiene un conjunto de elementos diferente al que tenía antes.
Cada uno de estos tres tipos de interacción puede provocar incoherencias en los datos resultantes en una base de datos.
El estándar SQL:1992 definió cuatro niveles de aislamiento que tienen diferentes garantías en cuanto a los tres tipos de interacción y las incoherencias que pueden producir. En los cuatro niveles, se puede garantizar que una transacción se ejecute por completo o que no se ejecute en absoluto:
READ UNCOMMITTED: permite los tres tipos de interacciones (es decir, lecturas incorrectas, lecturas no repetibles y lecturas fantasma).READ COMMITTED: las lecturas incorrectas no son posibles, pero sí las no repetibles y las lecturas fantasma.REPEATABLE READ: las lecturas incorrectas y las lecturas no repetibles no son correctas, pero las lecturas fantasmas sí lo son.SERIALIZABLE: no se puede producir ninguno de los tres tipos de fenómenos de interacción.
El control de simultaneidad multiversión (MVCC) permite otro tipo de aislamiento, es decir, el aislamiento SNAPSHOT . Esto garantiza que una transacción opera en una instantánea de datos en el momento en el que aparece cuando comienza la transacción y que ninguna otra transacción puede cambiar esa instantánea.