Descarga la aplicación para disfrutar aún más
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).
Compartir