en una transacción se leen un
conjunto de filas de una tabla en la que se puede
insertar información nueva, con lo que si se repite la
sentencia aparecerán filas que no estaban la primera
vez
Problema de la lectura sucia
Nota:
en una transacción se puede leer
información no confirmada de otra transacción
Problema del resumen incorrecto
Nota:
en una transacción se puede
leer información que puede ser modificada con lo que
si vuelve a leerla será distinta
Isolation levels
Read uncommitted
Nota:
No usar no protege expertos
Serializable
Nota:
protege demasiado, improbables casos
read committed
Nota:
no protege del second lost update y sí
puede ser importante. Casi todas las bbdd lo tienen por defecto. Con control optimista se puede evitar el
second lost update Con tener la BDD en read committed por
defecto sirve para el 90% si se añaden estos
controles a la aplicación
Fase de expansión (o crecimiento): se
pueden adquirir bloqueos pero no se
pueden liberar
Fase de contracción: se pueden liberar
bloqueos pero no se pueden adquirir
nuevos
Básico
Nota:
No previene el interbloqueo
Conservador
Nota:
La transacción debe bloquear todos
los elementos a los que va a acceder antes de
comenzar a ejecutarse. Previene el interbloqueo,
pero no es práctico
Estricto
Nota:
No se libera ningún bloqueo exclusivo
hasta después de terminar la transacción
Riguroso.
Nota:
No se libera ningún bloqueo (exclusivo o
compartido) hasta después de terminar la
transacción