Title: La Transaccin'
1La Transacción.
- John Freddy Duitama Muñoz.
- Facultad de IngenierÃa.
- U.de.A.
- 2001.
2- Transacción.
- Ejecución de un programa que lee y escribe datos
a y desde la B. de D. - El programa se ejecuta como una pieza atómica.
- En SQL
Begin transacction. Instrucción -1
. Instrucción-2. .... Rollback work.
Begin transacction. Instrucción -1
. Instrucción-2. .... Commit work.
3- Propiedades de una Transacción.(ACID)
- Atomicity Una Transacción se ejecuta
completamente ó de otra manera se eliminan los
cambios parciales realizados. - Begin Transaction - Programa - End
Transaction - Consistency Después de terminar una Transacción
la Base de datos no viola ninguna de sus reglas
valores obligatorios, claves únicas,etc. - Isolation Los efectos de una Transacción(Tx) no
son visibles a otros usuarios mientras no se
confirmen. - Durability Si el sistema falla no debe permitir
que se pierdan las operaciones realizadas por Tx
ya confirmadas.
4- Estados de una Transacción.
- Transiciones permitidas.
Parcialmente comprometida
Abortada
5Ejecución concurrente de una Transacción.
- Hechos que afectan a las propiedades ACID.
- Sistemas de tiempo compartido por lo que las
transacciones se ejecutan concurrentemente, no
una despues de la otra. - Fallas en puntos intermedios de las
Transacciones. - Solución
- El sistema controla la concurrencia. La técnica
más usada Bloquear los registros que una
transacción usa. - El sistema establece un mecanismo de
recuperación ante fallas. - Plan de ejecución de una Transacción
- Orden en el que los pasos elementales de
esta(bloqueos, lecturas, escrituras) son llevados
a cabo deben aparecer en la misma secuencia en
la que ocurren en el programa.
6Planificaciones equivalente.
- La ejecución de varias Tx concurrentes es
correcta si y solo si su efecto es el mismo - que el obtenido de ejecutarlas una despues de la
otra en algún orden dado.
Valores Iniciales A15 B 30 C 50
Plan 1 T1 T2
read A AA-10 Write A Read
B BB10 Write B Read B
BB-20 Write B Read C
CC20 Write C
Plan 2
T1 T2 Read A
Read B AA-10
BB-20 Write A Write B Read B Read
C B B10 CC20
WriteB Write C
Valor final plan 1. A5 , B20
C70 Plan
secuencial
Valor final plan 2. A5 , B20
C70 Plan
secuenciable
7Planes no equivalentes.
Valores Iniciales A15 B 30 C 50
Plan 3 T1 T2 Read A AA-10 Read
B Write A BB-20 Read B Write B BB10
Read C Write B CC20 Write C
Plan 1 T1
T2 read A AA-10
Write A Read B BB10 Write B Read B
BB-20 Write B
Read C CC20
Write C
Valor final plan 1. A5 , B20
C70 Plan
secuencial
Valor final plan 3. A5 B40 C70. Plan no
secuenciable
8Secuencialidad de planes de ejecución.
- Plan secuenciable Si sus efectos son
equivalentes a algún plan secuencial. -
- Asumimos que el efecto de dos planes no puede ser
el mismo a menos que sean producidos por
exactamente la misma secuencia de operaciones. - Consecuencia Asumir algunos planes como NO
secuenciable cuando en realidad lo son. Pero
garantizamos que nunca aceptaremos un plan que no
sea secuenciable. - Objetivo hallar modelos que nos permitan inferir
una amplia gama de planes secuenciables, evitando
comportamiento no secuenciable
9Manejo de Bloqueos.
- El S.G.B.D. registra para cada item I, cuando
alguna transacción está leyendo ó escribiendo
sobre él. - Tabla de bloqueos
- (ltitemgt, lttipo de bloqueogt,ltTxgt).
- Bloqueo (Locks) Privilegio de acceso a un Item.
- El manejador de bloqueos lo otorga ó lo da por
terminado - Item Unidades de datos sobre los que se
controla el acceso concurrente usualmente a
nivel de registros. - Ejemplo
- Lock(reg-X) Read(X.A) X.A X.A1 write(X.A)
Unlock(reg-X).
10Algoritmo para probar la secuencialidad.
- Asumimos Tx como una secuencia de bloqueos y
desbloqueos. - Una Tx no obtiene un bloqueo si ya hay uno
previo. - Si obtiene el bloqueo la Tx lee y escribe.
- Entrada Un plan S para T1,...,Tk transacciones.
- Salida Un plan serial equivalente, si existe.
- Método Construir un grafo dirigido con.
- Nodos Transacciones.
- Arcos Si la Tx-j libera un recurso(Tx-j
Unlock A) - y a continuación
- la Tx-s bloquea este recurso (Tx-s
Lock A) - se construye un arco de Tx-j a Tx-s.
- Significado intuitivo
- En cualesquier plan serial equivalente a S, Tx-j
debe preceder a Tx-s. - Evaluación Si G tiene un ciclo, el plan NO es
secuenciable.
11Ejemplo del Algoritmo.
-
- T1 T2 T3
- 1. T1Lock A
- 2. T2Lock B
- 3. T2Lock C
- 4. T2Unlock B
- 5. T1Lock B
- 6. T1Unlock A
- 7. T2Lock A
- 8. T2Unlock C
- 9. T2Unlock A
- 10 T3 Lock A
- 11 T3 Lock C
- 12 T1Unlock B
- 13 T3Unlock C
- 14 T3Unlock A.
4-5
T1
T2
6-7
9-10 8-11
T3
T1 debe estar antes de t2. ?? T2 debe estar
antes de T1.
12El protocolo de bloqueo de dos fases.
-
- En una Tx todos los bloqueos deben preceder a
los desbloqueos. - - Fase de Bloqueo La Tx puede obtener
bloqueos pero no liberarlos. - - Fase de Desbloqueo. La tx puede liberar los
bloqueos pero no obtenerlos. - T1 T2
- Lock A
- Lock C
- Lock B
- Unlock A
- Unlock B
- Lock B
- Unlock C No hay ciclos, luego son
- Unlock B secuenciables.
-
- Cualquier colección de Tx regidas por el
Two-Phase-Locking no puede tener un plan no
secuenciable.
13El bloqueo riguroso de dos fases.
- T1 T2
- Lock A
- Lock C
- Lock B
- Unlock A
- Unlock B
- Lock B
- Unlock C
- Unlock B
- Rollback
-
-
-
Provoca retroceso en cascada.
El bloque riguroso Libera recursos despues del
commit ó del rollback. Permite que Las
transacciones se puedan secuenciar en el orden en
que se comprometan.
14Los interbloqueos.
-
- T1 T2 T3
- Lock A
- Lock B
- Lock C
- Lock B ?
- Lock C?
- Lock A ?
-
Grafo de esperas Nodos Transacciones. Arcos
Ti ---gtTj Ti tiene un recurso que solicita Tj
Solución Si se detecta un ciclo debe
retrocederce una de las Tx Involucradas.
15Transacciones con bloqueos de Lectura y Escritura.
- Permite que varias transacciones lean el mismo
dato. - Acceso de solo lectura Compartido - Rlock
- Acceso de lectura-escritura Exclusivo - Wlock.
- Admite nuevas situaciones de concurrencia.
- Ambos se liberan con después del commit.
- Matriz de Compatibilidad.
-
Solicita -
E x i s t e
16BibliografÃa.
- Abraham Silberschatz, Henry Korth, S. Sudarshan.
- Fundamentos de Bases de Datos. Mc Graw Hill.
1998. - Cap. 13-14
-