Documentos de Académico
Documentos de Profesional
Documentos de Cultura
07 - Procesamiento de Transacciones
07 - Procesamiento de Transacciones
Procesamiento de Transacciones
Contenido
PROCESAMIENTO DE Conceptos
TRANSACCIONES Problemas de la Concurrencia
Necesidad de Recuperación
Transacciones
Clasificación de Planes según Recuperación
Seriabilidad
A C
A
B D
B
t3 t4
t1 t2
Cátedra Bases de Datos 5 Cátedra Bases de Datos 6
1
11/09/2009
¿PORQUÉ ES NECESARIO EL
CONTROL DE CONCURRENCIA? Actualización Perdida
T1 T2
Problema de actualización perdida Leer_elemento(X);
Leer_elemento(X);
X:= X + M;
Problema de actualización temporal X:= X - N;
(lectura sucia) Escribir_elemento(X);
Escribir_elemento(X);
Leer_elemento(Y);
Problema de resumen incorrecto
Y:= Y + N; Se pierde la actualización
realizada por T1
Escribir_elemento(Y);
Cátedra Bases de Datos 9 Cátedra Bases de Datos 10
2
11/09/2009
¿PORQUÉ ES NECESARIA LA
RECUPERACIÓN? TIPOS DE FALLOS
Del Hardware
Para ejecutar toda transacción el
sistema debe asegurarse de que: De la Transacción o del Sistema
Todas sus operaciones: Errores locales o condiciones de
Se completen con éxito y su efecto quede excepción detectadas por la transacción
Asentado permanentemente en la base de datos, (Exceptions).
ó Imposición del control de concurrencia
La transacción no tenga efecto alguno Fallo del disco
sobre la base de datos ni sobre cualquier Problemas o catástrofes físicos
otra transacción
Cátedra Bases de Datos 13 Cátedra Bases de Datos 14
Control de Concurrencia y
Recuperación: Temario
Control de concurrencia
Estudio de un modelo y de los principios básicos que debe
implementar el manejador para garantizar la consistencia
de la base en la situación de modificaciones concurrentes.
Transacción
Historia (ejecución) y caracterización
Protocolos de Control de Concurrencia Transacciones
Mecanismos de Recuperación
Para asegurar un estado consistente frente a una falla.
Modelo de transacciones /
OPERACIONES DIAGRAMA DE TRANSICIÓN DE ESTADOS
PARA LA EJECUCIÓN DE TRANSACCIONES
Transacción: ejecución de un programa que Leer, Escribir
lee o modifica el contenido de la base de Fin de
datos Transacción
Parcialmente
Activa Confirmar
Operaciones del programa que componen el Inicio Confirmada
modelo de transacción que estudiaremos Transacción Confirmada
Abortar Abortar
Inicio de transacción
3
11/09/2009
PROPIEDADES DE LAS
TRANSACCIONES Propiedades ACID (cont.)
Atomicidad (Atomicity)
Atomicidad: una transacción es una unidad
atómica de procesamiento, o bien se realiza por
Conservación de la consistencia (Consistency) completo o no se realiza en absoluto
Aislamiento (Isolation)
Consistencia: una ejecución correcta de la
Durabilidad o permanencia (Durability) transacción debe llevar a la BD de un estado
consistente a otro
Se las conoce como las propiedades A C I D
Modelo de transacciones /
Propiedades ACID (cont.) PLANES
4
11/09/2009
PUNTO DE CONFIRMACIÓN
DE UNA TRANSACCIÓN [COMMIT]
plan No
Plan Recuperable: P0
recuperable
Un plan es Recuperable si ninguna transacción T1 confirma r1(x), w1(x), r2(x), r1(y), w2(x), c2, a1
hasta que confirmaron todas las transacciones desde las cuales
T1 leyó elementos. P1 plan
r1(x), w1(x), r2(x), r1(y), w2(x), a1 recuperable
Se dice que T1 lee de la transacción T2 en P, si T2 escribe
primero un elemento X que luego T1 lee.
5
11/09/2009
Planes que
Caso de lectura sucia Evitan Abortos en Cascada
T1 T2
Plan que Evita Abortos en Cascada:
Leer_elemento(X);
Un plan Evita Abortos en Cascada si ninguna transacción
Escribir_elemento(X);
Leer_elemento(X); lee de transacciones no confirmadas.
Escribir_elemento(X);
Commit Aborto en cascada implica que una transacción no confirmada
Leer_elemento(Y);
tiene que revertirse porque leyó un elemento de una
transacción fallida
Al fallar T1, el valor leído por T2
Falla de X es incorrecto
Estricto
P3 Plan Estricto
P0 x P1 x P2 x P3 x
a: r1(y), r2(z), w1(y), w2(z), c2, c1
b: r3(y), r4(z), r3(x), w4(z), w3(x), w4(u), c3, w4(x), c4
6
11/09/2009
Beneficios...
Los planes recuperables aseguran que
las transacciones confirmadas en planes entrelazados
no serán revertidas, y que
no queden datos erróneos que no se puedan corregir
de una “manera simple”
Al evitar abortos en cascada se disminuye el Clasificación según su
tiempo de recuperación evitando revertir otras
transacciones. Correctitud
Los planes estrictos simplifican la recuperación
de escrituras
7
11/09/2009
(3) (4)
Para cada caso en P donde Ti ejecuta Para cada caso en P donde Ti ejecuta
escribir_elemento(X) antes de que Tj una orden escribir_elemento(X) antes
ejecuta leer_elemento(X) de que Tj ejecuta una orden
escribir_elemento(X)
Crear una arista ( Ti → Tj ) en el grafo
crear una arista ( Ti → Tj ) en el grafo
de precedencia;
de precedencia;
T1 T2
No T1 T2
Serializable
8
11/09/2009
Planes
Veremos métodos de control de concurrencia
Caracterización de los planes
basados en demorar las operaciones en conflicto con
otras anteriores hasta que éstas terminen Recuperabilidad: planes recuperables, que evitan
abotros en cascada y estrictos
Dos métodos: Correctitud: Serializabilidad
Locking (uso de bloqueos o candados o locks) Propiedades ACID de las Transacciones
Usando timestamps (estampillas de tiempo)