Definición - ¿Qué significa Aislamiento?
El aislamiento, en el contexto de las bases de datos, especifica cuándo y cómo los cambios implementados en una operación se vuelven visibles para otras operaciones paralelas. El aislamiento de transacciones es una parte importante de cualquier sistema transaccional. Se ocupa de la coherencia y la integridad de los datos recuperados por consultas que no afectan a los datos de un usuario por otras acciones del usuario. Una base de datos adquiere bloqueos en los datos para mantener un alto nivel de aislamiento.
Techinfo explica el aislamiento
Se definen varios niveles de aislamiento para controlar el grado de bloqueo de datos. Un alto nivel de aislamiento puede resultar en bloqueo de sobrecarga para el sistema creando interbloqueos. Los cuatro niveles principales de aislamiento son: Lectura no confirmada: este nivel trata con lecturas sucias, donde los datos leídos no son consistentes con otras partes de la tabla o consulta y no están confirmados. Aquí los datos se leen directamente de los bloques de la tabla sin ninguna verificación, validación ni procesamiento. Por lo tanto, los datos están tan sucios como pueden ser. Lectura confirmada: en este caso, las filas que devuelve una consulta son filas ya confirmadas cuando se inició la consulta. Como la confirmación se completa antes de que se inicie la consulta, el resultado no se muestra en la salida de la consulta. Lectura repetida: las filas devueltas por una consulta en este caso se confirman cuando se inició la transacción. Los cambios realizados no están presentes en la transacción y, por lo tanto, no aparecen en el resultado de la consulta. Serializable: en este nivel, las transacciones ocurren de forma completamente aislada, en serie una tras otra. Las bases de datos como Oracle y Postgre SQL a veces no garantizan el orden en serie de las transacciones, pero admiten el aislamiento de instantáneas donde todas las lecturas de una transacción son instantáneas consistentes de la base de datos y la transacción se confirma solo si ninguna actualización genera conflictos con otras actualizaciones simultáneas realizadas desde la instantánea. Las anomalías permitidas por los aislamientos de instantáneas pueden provocar una violación de la coherencia de los datos al intercalar transacciones que mantienen la coherencia. Estas anomalías se pueden eliminar introduciendo conflictos de actualización o bloqueo artificial. Todas las bases de datos permiten a los usuarios establecer sus niveles de aislamiento predeterminados. Los niveles de aislamiento perfectos elegidos evitan que las aplicaciones introduzcan errores como lecturas sucias, lecturas repetibles y lecturas fantasma. Cuando la primera transacción lee los cambios no confirmados realizados por la segunda transacción, da lugar a lecturas sucias. Cuando una lectura de datos permanece igual si se vuelve a leer durante la misma transacción, es una lectura repetible. Las lecturas fantasmas ocurren cuando los nuevos registros agregados son señalados por transacciones antes de insertarlos. Los diferentes niveles de aislamiento de bloqueos de base de datos con los que se ocupan son: Bloqueos de lectura: Los bloqueos de lectura evitan cambiar los datos leídos durante una transacción hasta que la transacción finaliza, eliminando los casos de lecturas repetibles. Otras transacciones pueden leer estos datos, pero no se proporciona acceso de escritura o modificación. Bloqueos de escritura: los bloqueos de escritura evitan que otras transacciones cambien los datos hasta que finalice la transacción. Bloqueos de escritura exclusivos: el bloqueo de escritura exclusivo evita que otras transacciones lean o alteren datos hasta que finalice la transacción actual. Instantáneas: una instantánea es una vista congelada de los datos cuando se inicia la transacción. Evita lecturas sucias, lecturas no repetibles y lecturas fantasmas. Esta definición fue escrita en el contexto de bases de datos