3.3.- Integridad: transacciones 3.3.- Integridad: integridad semántica (MODIFICADA) Solución: TRANSACCIÓN • Tipos de restricciones de integridad: – estáticas: se deben cumplir en cada estado de la base de datos (representable en CRT) INICIO Poner R1 en modo de comprobación diferido Inserción en Dep Modificación de Emp en la tupla con dni 20 FIN EJEMPLOS: Def. de Dominios, CP, CAj, VNN, UNIQUE, Assertions, ... – de transición: se deben cumplir en dos estados consecutivos EJEMPLO: El precio de un inmueble no puede disminuir La restricción R1 se comprueba al final – dinámicas: se deben cumplir en un conjunto de estados 3.3.- Integridad: control de accesos concurrentes 3.3.- Integridad: control de accesos concurrentes • Un plan P de las transacciones T1, T2, ..., Tn es un • En un plan en el que pueden aparecer intercaladas ordenamiento de las operaciones en el que para cada transacción Ti el orden de sus operaciones se mantiene. • Un plan P es en serie si para cada transacción Ti sus operaciones se ejecutan consecutivamente. No presenta problemas, pero no permite concurrencia. operaciones de distintas transacciones, las operaciones importantes para el control de la concurrencia son: • Leer(X), • Escribir(X), • Confirmar • Anular. 1 3.3.- Integridad: control de accesos concurrentes 3.3.- Integridad: control de accesos concurrentes • Dos operaciones en un plan están en conflicto si satisfacen las • Para que un plan sea correcto debe ser serializable, es decir, tres condiciones siguientes: equivalente a algún plan en serie. • Pertenecen a transacciones diferentes • Dos planes son equivalentes por conflictos si el orden de todo • Tienen acceso al mismo elemento X, y par de operaciones en conflicto es el mismo en ambos planes. • Una de las dos operaciones es escribir(X) • En la práctica no se usa la comprobación de la seriabilidad de un plan. Planes de ejecución P1 CORRECTO X=110 Y=1010 Leer(X) X = X-10 Escribir(X) Leer(Y) Y=Y+10 Escribir(Y) Leer(X) X = X-10 P3 INCORRECTO X=120 Y=1010 Leer(X) X = X+20 3.3.- Integridad: control de accesos concurrentes P4 CORRECTO X=110 Y=1010 Leer(X) X = X-10 Escribir(X) Leer(X) X = X+20 Escribir(X) Escribir(X) Leer(Y) Escribir(X) Leer(X) X = X+20 Escribir(X) Y=Y+10 Escribir(Y) Leer(Y) Y=Y+10 Escribir(Y) Soluciones: • Reserva de Ocurrencias de Datos (Locks) – Ejemplos a) y c) se reserva un registro. – Ejemplo b) se reservan todos. • Necesidad de controlar bloqueos (deadlocks) • P3 y P4 no son equivalentes por conflicto ya que el orden de las operacions sobre X es distinto. • P4 es serializable por conflictos, ya que es equivalente por conflictos a P1. • En un plan serializable puede haber concurrencia en la ejecución de las transacciones a • Otras soluciones (para el ejemplo c): anulación en cascada o aislamiento de transacciones. diferencia de los planes en serie como el P1. 2