Serializabilidad de transacciones: equivalencia por conflicto y por vistas en bases de datos
Resumen
El texto explica la serializabilidad de transacciones, el mecanismo que permite que la ejecución concurrente de transacciones mantenga la consistencia de una base de datos. Describe las operaciones básicas leer y escribir sobre un elemento de datos y los casos de conflicto entre ellas. Después presenta las dos formas de equivalencia de planificaciones: en cuanto a conflicto y en cuanto a vistas, con sus condiciones y su relación, incluido el concepto de escritura a ciegas.
Puntos clave
- Una planificación es serializable si es equivalente a una planificación secuencial.
- Dos instrucciones están en conflicto si pertenecen a transacciones distintas, actúan sobre el mismo elemento de datos y al menos una es una escritura.
- Dos planificaciones son equivalentes en cuanto a conflictos si pueden transformarse una en otra mediante intercambios de instrucciones no conflictivas.
- La equivalencia en cuanto a vistas exige que las lecturas tomen los mismos valores y que coincida la última escritura de cada elemento de datos.
- Toda planificación serializable en cuanto a conflictos es también serializable en cuanto a vistas, pero no al revés.
- Las escrituras a ciegas aparecen en las planificaciones serializables en cuanto a vistas que no son serializables en cuanto a conflictos.
Serializabilidad de Transacciones en Bases de Datos
La serializabilidad (o secuencialidad) es un concepto fundamental en la gestión de bases de datos. El sistema debe controlar la ejecución concurrente de las transacciones para asegurar que el estado de la base de datos sigue siendo consistente.
Para determinar qué planificaciones aseguran la consistencia y cuáles no, se consideran solo dos operaciones básicas sobre un elemento de dato $Q$:
leer(Q)escribir(Q)
Entre estas dos operaciones, una transacción puede realizar una secuencia arbitraria de operaciones con la copia de $Q$ que reside en la memoria intermedia.
Formas de Equivalencia de Planificación
Existen dos formas principales de equivalencia de planificación que definen la serializabilidad:
1. Serializabilidad en Cuanto a Conflicto
Una planificación $P$ implica dos instrucciones consecutivas $I_i$ e $I_j$, pertenecientes a las transacciones $T_i$ y $T_j$ respectivamente ($i eq j$).
- Si $I_i$ e $I_j$ se refieren a distintos elementos de datos, se pueden intercambiar $I_i$ e $I_j$ sin afectar el resultado de cualquier instrucción de la planificación.
- Si $I_i$ e $I_j$ se refieren al mismo elemento $Q$, el orden de los dos pasos puede ser importante.
Casos de Conflicto Potencial (Mismo Elemento Q)
- $I_i = leer(Q)$, $I_j = leer(Q)$: El orden de $I_i$ e $I_j$ no importa, puesto que $T_i$ y $T_j$ leen el mismo valor de $Q$, independientemente del orden.
- $I_i = leer(Q)$, $I_j = escribir(Q)$: El orden de $I_i$ e $I_j$ es importante. Si $I_i$ está antes que $I_j$, $T_i$ no lee el valor de $Q$ que escribe $I_j$ de $T_j$. Si $I_j$ está antes que $I_i$, $T_i$ lee el valor de $Q$ escrito por $T_j$. Por tanto, el orden de $I_i$ e $I_j$ es importante.
- $I_i = escribir(Q)$, $I_j = leer(Q)$: Ídem al anterior. El orden de $I_i$ e $I_j$ es importante.
- $I_i = escribir(Q)$, $I_j = escribir(Q)$: El orden afecta al valor final de $Q$ en la base de datos. Puesto que ambas son operaciones de escritura, el orden no afecta ni a $T_i$ ni a $T_j$ en su ejecución inmediata. Sin embargo, el valor que obtendrá la siguiente instrucción
leer(Q)de $P$ sí se ve afectado, ya que se conserva en la DB la última instrucción de escritura. Si no hay ninguna otra instrucciónescribir(Q)después de $I_i$ e $I_j$ en $P$, el orden de $I_i$ e $I_j$ afecta directamente al valor final de $Q$ en el estado de la DB que se obtiene con la planificación $P$.
Definiciones Clave de Conflicto
- Se dice que $I_i$ e $I_j$ están en conflicto si son operaciones de diferentes transacciones sobre el mismo elemento de datos, y al menos una de esas instrucciones es una operación
escribir. - Si una planificación $P$ se puede transformar en otra $P'$ por medio de una serie de intercambios de instrucciones no conflictivas, se dice que $P$ y $P'$ son equivalentes en cuanto a conflictos.
- Se dice que una planificación $P$ es serializable en cuanto a conflictos si es equivalente en cuanto a conflictos a una planificación secuencial.
2. Serializabilidad en Cuanto a Vistas
Considérense dos planificaciones, $P$ y $P'$, en las cuales participa el mismo conjunto de transacciones. Son equivalentes en cuanto a vistas si se cumplen las tres condiciones siguientes:
- Si la transacción $T_i$ lee el valor inicial de $Q$ en $P$, también debe leer el valor inicial de $Q$ en $P'$.
- Si $T_i$ ejecuta
leer(Q)en $P$ y el valor lo ha producido $T_j$, entonces $T_i$ debe leer también el valor de $Q$ que produjo $T_j$ en $P'$. - Para todo elemento de datos $Q$, la transacción que realice la última operación
escribir(Q)en $P$ debe realizar la misma operaciónescribir(Q)en $P'$.
Las condiciones 1 y 2 aseguran que cada transacción lee los mismos valores en ambas planificaciones y, por tanto, realizan los mismos cálculos. La condición 3, junto con las condiciones 1 y 2, asegura que ambas planificaciones dan como resultado el mismo estado final del sistema.
Se dice que la planificación $P$ es serializable en cuanto a vistas si es equivalente en cuanto a vistas a una planificación secuencial.
Relación entre Tipos de Serializabilidad y Escrituras a Ciegas
Toda planificación serializable en cuanto a conflictos es siempre serializable en cuanto a vistas. Sin embargo, una planificación serializable en cuanto a vistas puede que no sea serializable en cuanto a conflictos.
La escritura a ciegas (blind write) se denomina cuando hay transacciones que realizan operaciones de escribir(Q) sin haber realizado ninguna operación leer(Q) previamente.
Las escrituras a ciegas aparecen en toda planificación serializable en cuanto a vistas que no sea serializable en cuanto a conflictos.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué es una escritura a ciegas?
Es una operación escribir(Q) realizada por una transacción sin haber ejecutado antes ninguna operación leer(Q) sobre ese mismo elemento. El texto indica que aparecen en las planificaciones serializables en cuanto a vistas que no son serializables en cuanto a conflictos.
¿Cuándo dos instrucciones están en conflicto?
Dos instrucciones están en conflicto cuando pertenecen a transacciones distintas, se refieren al mismo elemento de datos y al menos una de ellas es una operación escribir. Si no se cumplen estas condiciones, pueden intercambiarse sin alterar el resultado.
¿Toda planificación serializable en conflicto es serializable en vistas?
Sí, según el texto toda planificación serializable en cuanto a conflictos es siempre serializable en cuanto a vistas. Lo contrario no siempre se cumple.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.