Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 7
Tema 7
Control de la concurrencia
Objetivos
Contenidos
Bibliografía
[CB 2005] Connolly, T.; Begg C.: Sistemas de bases de datos. 4ª Edición.
Pearson Educación. Addison Wesley. (Cap. 20)
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases
de Datos. 3ª Edición. Addison-Wesley. (Cap. 19 y 20)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos.
Conceptos fundamentales. 2ª Edición. Addison-Wesley
Iberoamericana. (Cap. 17 y 18)
…
leer_elemento(X); T4 lee X después
… de restar N
Y:=Y+N;
escribir_elemento(Y);
Tema 7. Control de la concurrencia 11
7.2 Serializabilidad
Motivación
• Objetivo de un protocolo de control de concurrencia:
– Planificar las transacciones de forma que no ocurran
interferencias entre ellas, y así evitar la aparición de los
problemas mencionados
• Solución obvia: no permitir intercalación de operaciones de
varias transacciones
T1 T2 T1 T2
leer_elemento(X); leer_elemento(X);
X:= X-N; X:= X+M;
escribir_elemento(X); escribir_elemento(X);
leer_elemento(Y); leer_elemento(X);
Y:=Y+N; X:= X-N;
escribir_elemento(Y); escribir_elemento(X);
leer_elemento(X); leer_elemento(Y);
X:= X+M; Y:=Y+N;
escribir_elemento(X); escribir_elemento(Y);
Planificación A Planificación B
¿Existe algún modo de identificar las ejecuciones que está garantizado que
protegen la consistencia de la base de datos?
Teoría de la Serializabilidad
Tema 7. Control de la concurrencia 13
7.2 Serializabilidad
Planificación de transacciones
• Cada transacción comprende una secuencia de operaciones
que incluyen acciones de lectura y escritura en la BD, que
finaliza con una confirmación (commit) o anulación (rollback)
Este es el objetivo de la
Serializabilidad
Tema 7. Control de la concurrencia 17
7.2 Serializabilidad
Planificación serializable
• Una planificación P (no serie) es serializable si es
equivalente a alguna planificación serie de las
mismas n transacciones
– Una planificación que no es equivalente a ninguna ejecución en
serie, es una planificación no serializable
• Toda planificación serializable es correcta
– Produce los mismos resultados que alguna ejecución en serie
• Dos maneras de definir la equivalencia entre planificaciones:
– Equivalencia por conflictos
– Equivalencia de vistas
T1 T2 T1 T2 T1 T2 T1 T2
PA PB PD
PC 23
Tema 7. Control de la concurrencia
7.2 Serializabilidad
Ejemplo de planificación no serializable
Transacción T1 Transacción T2 Transacción T3
leer_elemento(X); leer_elemento(Z); leer_elemento(Y);
escribir_elemento(X); leer_elemento(Y); leer_elemento(Z);
leer_elemento(Y); escribir_elemento(Y); escribir_elemento(Y);
escribir_elemento(Y); leer_elemento(X); escribir_elemento(Z);
escribir_elemento(X);
Y
T1 T2 T3
leer_elemento(Z); T1 T2
leer_elemento(Y);
escribir_elemento(Y); X
leer_elemento(Y);
leer_elemento(Z); Y Y,Z
leer_elemento(X);
escribir_elemento(X); T3
escribir_elemento(Y);
escribir_elemento(Z);
leer_elemento(X);
leer_elemento(Y); Hay dos ciclos:
escribir_elemento(Y); T1→T2→T1 y
Planificación E
escribir_elemento(X); T1→T2→T3→T1
Tema 7. Control de la concurrencia 24
7.2 Serializabilidad
Ejemplo de planificación serializable
Transacción T1 Transacción T2 Transacción T3
leer_elemento(X); leer_elemento(Z); leer_elemento(Y);
escribir_elemento(X); leer_elemento(Y); leer_elemento(Z);
leer_elemento(Y); escribir_elemento(Y); escribir_elemento(Y);
escribir_elemento(Y); leer_elemento(X); escribir_elemento(Z);
escribir_elemento(X);
T1 T2 T3
leer_elemento(Y); T1 T2
leer_elemento(Z);
leer_elemento(X);
X,Y
escribir_elemento(X);
escribir_elemento(Y); Y Y,Z
escribir_elemento(Z);
leer_elemento(Z); T3
leer_elemento(Y);
escribir_elemento(Y);
leer_elemento(Y);
escribir_elemento(Y); La planificación
leer_elemento(X); serie equivalente
Planificación F
escribir_elemento(X); es T3 → T1 → T2
Tema 7. Control de la concurrencia 25
7.2 Serializabilidad
Aplicaciones de la serializabilidad
Planificador de
Parece, pues, que habría que
Tareas del SO • Carga del sistema comprobar si P es serializable
• Momento de una vez ejecutadas las
introducción de las transacciones incluidas en P...
transacciones
• Prioridades de los Ejecución de
Planificación P Transacciones reintentar
(ordenamiento de procesos
las operaciones) ...
Cancelar el
¿P serializable? efecto de P
Es el SO el que distribuye los recursos NO
para los procesos, y determina la SI
intercalación de las operaciones de las ¡¡enfoque muy
transacciones concurrentes OK
(ejecutadas como procesos del SO) poco práctico!!
Es necesario encontrar técnicas que garanticen la
serializabilidad, sin tener que verificar a posteriori
Tema 7. Control de la concurrencia 26
7.3 Técnicas de control de concurrencia
• Métodos basados en la teoría de la serializabilidad,
que definen un conjunto de reglas (o protocolo) tal que...
– si todas las transacciones las cumplen, o
– el subsistema de control de concurrencia del SGBD las
impone (automáticamente)
... se asegura la serializabilidad de toda planificación
de transacciones
• Clasificación
– Métodos de bloqueo
– Métodos de marca de tiempo
– Técnicas de multiversión
– Métodos optimistas
• Bloqueos
– Gestión Automática de los bloqueos
Bloqueos exclusivos y compartidos
– Permiten a otras transacciones leer los datos bloqueados,
pero no modificarlos
Bloqueos de tabla o de fila (una o más)
Los bloqueos sólo se liberan la finalizar la transacción
(COMMIT o ROLLBACK)
– Gestión Manual
Se superpone al bloqueo automático
Sentencia LOCK TABLE (no existe UNLOCK)