Aislamiento transaccional

El est�ndar ANSI/ISO SQL define cuatro niveles de aislamiento transaccional en funci�n de tres hechos que deben ser tenidos en cuenta entre transacciones concurrentes. Estos hechos no deseados son:

lecturas "sucias"

Una transacci�n lee datos escritos por una transacci�n no esperada, no cursada.

lecturas no repetibles

Una transacci�n vuelve a leer datos que previamente hab�a le�do y encuentra que han sido modificados por una transacci�n cursada.

lectura "fantasma"

Una transacci�n vuelve a ejecutar una consulta, devolviendo un conjuto de filas que satisfacen una condici�n de b�squeda y encuentra que otras filas que satisfacen la condici�n han sido insertadas por otra transacci�n cursada.

Los cuatro niveles de aislamiento y sus correspondientes acciones se describen m�s abajo.

Tabla 1. Niveles de aislamiento de Postgres

  Lectura "sucia" Lectura no repetible Lectura "fantasma"
Lectura no cursada Posible Posible Posible
Lectura cursada No posible Posible Posible
Lectura repetible No posible No posible Posible
Serializable No posible No posible No posible
Postgres ofrece lectura cursada y niveles de aislamiento serializables.