TRANSACCIONES PARTE I CC 3201 BASES DE DATOS
TRANSACCIONES PARTE I CC 3201 – BASES DE DATOS SEBASTIÁN FERRADA SFERRADA@DCC. UCHILE. CL
TRANSACCIONES Las transacciones son unidades individuales de trabajo que se realizan en una base de datos
TRANSACCIONES Las transacciones son programas: listas de instrucciones de lectura/escritura a objetos de una BD
TRANSACCIONES - OPERACIONES
TRANSACCIONES - CARACTERÍSTICAS A – ATOMICIDAD C – CONSISTENCIA I – INDEPENDENCIA (ISOLATION) D – DURABILIDAD
ACID – ATOMICIDAD Las transacciones son atómicas: o se realiza todo o no se realiza nada
ACID – CONSISTENCIA Al terminar una transacción, la base de datos es consistente (está libre de errores lógicos).
ACID – INDEPENDENCIA La ejecución de una transacción no afecta ni interfiere con la ejecución de otra
ACID – DURABILIDAD Los cambios realizados por una transacción persisten luego de ser comprometida
PLANIFICACIONES Una planificación es una forma de ejecutar un conjunto de transacciones, respetando el orden de las operaciones de cada transacción
PLANIFICACIONES COMPLETAS Una planificación es completa, si todas sus transacciones se comprometen
PLANIFICACIONES SERIALES Una planificación es serial o secuencial si no se entremezclan operaciones de diferentes transacciones, es decir, si se ejecuta una transacción tras otra
PLANIFICACIONES NO SERIALES ¿QUÉ? ¿Por qué alguien querría mezclar operaciones de distintas transacciones?
PLANIFICACIONES NO SERIALES Productividad: realizar otras operaciones mientras se espera I/O por ejemplo Reducir tiempo de espera: procesar tx cortas mientras se procesa tx larga
PLANIFICACIONES NO SERIALES - CONFLICTOS E/L – Lectura sucia L/E – Lectura no repetible E/E – Actualización perdida
CONFLICTO ESCRITURA/LECTURA T 1 X=X-100 T 2 X=X * 1, 06 Y=Y + 100 s o t a d e s ! ! a ! e t n La b e t s i s n o nc i a d e qu
CONFLICTO LECTURA/ESCRITURA T 1 23 C? T 2 23 C? RESERVA(23 C) Commit RESERVA(23 C) e u f a y o t n e i s El a ! o d a v r rese
CONFLICTO LECTURA/ESCRITURA T 1 ESCRIBIR(X) T 2 ESCRIBIR(Y) COMMIT ESCRIBIR(X) COMMIT c a z i l a u Act a d i d r e ión p
SERIALIZABILIDAD Lo ideal sería procesar una transacción a la vez, pero como no es posible, tenemos que ejecutar concurrentemente tratando que sean lógicamente equivalentes a un plan secuencial
EQUIVALENCIA DE PLANES Hay distintos criterios para definir que dos planes son equivalentes: Equivalencia por Resultado Equivalencia por Vista Equivalencia por Conflicto
EQUIVALENCIA POR RESULTADO
SERIALIZABILIDAD POR RESULTADO Un plan es serializable por resultado si es equivalente por resultado a una planificación serial
EQUIVALENCIA POR CONFLICTO
SERIALIZABILIDAD POR CONFLICTO Un plan es serializable por conflicto si es equivalente por conflicto a una planificación serial
SERIALIZABILIDAD POR CONFLICTO T 1 R(X) T 2 R(X) W(Y) W(X) C C Es equivalente por conflicto con <T 1, T 2>
EQUIVALENCIA POR VISTA
SERIALIZABILIDAD POR VISTA Un plan es serializable por vista si es equivalente por vista a una planificación serial
SERIALIZABILIDAD POR VISTA Todo plan serializable por conflicto es serializable por vista, pero no necesariamente al revés
SERIALIZABILIDAD POR CONFLICTO T 1 R(X) T 2 R(X) W(Y) W(X) C C Es equivalente por vista con <T 1, T 2>
SERIALIZABILIDAD POR CONFLICTO La mayoría de los SABD usan serializabilidad por conflicto. ¿Cómo saber si un plan es serializable por conflicto?
GRAFO DE PRECEDENCIA
GRAFO DE PRECEDENCIA
GRAFO DE PRECEDENCIA 1 2 3 4
GRAFO DE PRECEDENCIA - SERIALIZABILIDAD Un plan es serializable por conflicto si y solo si su grafo de precedencia no tiene ciclos
GRAFO DE PRECEDENCIA 1 2 3 4
GRAFO DE PRECEDENCIA 1 2 3 4
RECUPERABILIDAD Si una transacción aborta es necesario dejar la base de datos consistente. Las planificaciones que intentan hacer esto se llaman recuperables
PLAN RECUPERABLE Un plan es recuperable si ninguna transacción se confirma antes de que se hayan confirmado todas las transacciones de las que leyó
PLAN RECUPERABLE T 1 R(X) W(X) T 2 R(X) W(X) C C
PLAN RECUPERABLE T 1 R(X) W(X) T 2 R(X) W(X) A ? ? ?
PLAN RECUPERABLE T 1 R(X) W(X) T 2 Aborto en R(X) cascada W(X) A A
EVITAR RECUPERACIÓN EN CASCADA Un plan evita recuperación en cascada si toda transacción lee elementos escritos solo por transacciones confirmadas
EVITAR RECUPERACIÓN EN CASCADA T 1 W(X) T 2 T 3 W(X) C R(X) A CUÁL ES EL VALOR DE X? ? ?
PLAN RECUPERABLE ESTRICTO Un plan es recuperable estricto si toda transacción solo lee o escribe objetos X, tal que la última transacción que escribió X ha sido confirmada o abortada
- Slides: 44