1 3.3.- Integridad: transacciones 3.3.

Anuncio
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
Descargar