Logo Studenta

II PlanificacionesConflictos de concurrencias

¡Estudia con miles de materiales!

Vista previa del material en texto

Planificación
Secuenciales 
Las transacciones se ejecutan una después de otra. Al finalizar ambas, la base 
de datos se encuentra en un estado consistente. Cada planificación secuencial 
consiste en una secuencia de instrucciones de varias transacciones, en la cual 
las instrucciones pertenecientes a una única transacción están juntas en dicha 
planificación.
No 
secuenciales
Permiten que una transacción comience su ejecución mientras otra está en 
curso, sin alterar el orden de las instrucciones de las transacciones en ejecución. 
La base de datos quedará en un estado consistente sólo si el resultado de su 
ejecución concurrente es el mismo que se daría si se hubieran ejecutado 
secuencialmente (en este caso se dice que son planificaciones equivalentes).
Conflictos de 
concurrencia
Actualización 
perdida
Ocurre cuando dos transacciones que intentan modificar un elemento de datos 
leen el antiguo valor del elemento y una de ellas ( 𝑇 1) actualiza el dato, pero 
esa actualización se pierde dado que la otra transacción (𝑇 2) sobreescribe el 
valor sin siquiera leerlo
Dependencia 
no confirmada 
(lectura sucia)
Ocurre cuando una transacción 𝑇1 lee o actualiza un elemento de datos que ha 
sido actualizado por otra transacción 𝑇 2 que aún no ha sido confirmada. Por lo 
tanto, existe la posibilidad de que deshaga 𝑇 2 y 𝑇 1 haya visto un valor que ya 
no existe. 𝑇 1 opera sobre una suposición falsa. 
Análisis 
inconsistente
Seproduce cuando una transacción 𝑇1, producto de haber leído un dato 
actualizado por otra transacción 𝑇 2 ya confirmada, incurre en un análisis 
inconsistente, devolviendo un resultado erróneo.
Lectura no 
repetible o 
difusa
Se produce cuando una transacción 𝑇1 vuelve a leer un elemento de datos que 
ya había leído previamente pero que luego fue modificado por otra transacción 𝑇 
2. Así, 𝑇 1 estará leyendo dos valores distintos para el mismo elemento de 
datos.
Lectura 
fantasma
Se produce cuando una transacción 𝑇1 vuelve a ejecutar una consulta que 
extrae una cantidad de tuplas de una relación, que ya había ejecutado 
anteriormente, pero que ahora devuelve una tupla adicional (fantasma) que 
fuera insertada por otra transacción 𝑇2 (es decir, lee un elemento de datos que 
antes no existía).

Continuar navegando