Está en la página 1de 16

La Transacción.

John
John Freddy
Freddy Duitama
Duitama Muñoz.
Muñoz.

Facultad
Facultad de
de Ingeniería.
Ingeniería.
U.de.A.
U.de.A.
2001.
2001.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


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. Begin transacction.

Instrucción -1 . Instrucción -1 .

Instrucción-2. Instrucción-2.

.... ....

Commit work. Rollback work.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


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.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Estados de una Transacción.

Parcialmente Comprometida
comprometida

Activa

Fallida Abortada

Transiciones permitidas.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Ejecució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.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Planificaciones 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 : A=15 B= 30 C = 50

Plan 1 Plan 2

T1 T2 T1 T2
read A Read A
A:=A-10 Read B
A:=A-10
Write A
Read B Valor final plan 1. B:=B-20
B:=B+10 Write A
Write B A=5 , B=20 C=70 Write B
Read B Read B
B:=B-20 Plan secuencial
Valor final plan 2. Read C
Write B B:= B+10
Read C A=5 , B=20 C=70 C:=C+20
C:=C+20 WriteB
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Write C Plan secuenciable
Planes no equivalentes.
Valores Iniciales : A=15 B= 30 C = 50

Plan 1 Plan 3
T1 T2
T1 T2 Read A
read A A:=A-10
A:=A-10 Read B
Write A
Write A B:=B-20
Read B Read B
B:=B+10 Write B
Write B Valor final plan 1. B:=B+10
Read B Read C
B:=B-20 A=5 , B=20 C=70 Write B
Write B C:=C+20
Plan secuencial
Valor final plan 3. Write C
Read C
C:=C+20 A=5 B=40 C=70.
Write C Plan no secuenciable
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Secuencialidad 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

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Manejo de Bloqueos.

• El S.G.B.D. registra para cada item I, cuando alguna


transacción está leyendo ó escribiendo sobre él.

Tabla de bloqueos:
(<item>, <tipo de bloqueo>,<Tx>).

• 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.A+1; write(X.A); Unlock(reg-X).

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Algoritmo 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.
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Ejemplo del Algoritmo.
T1 T2 T3
1. T1:Lock A
2. T2:Lock B 4-5
3. T2:Lock C T1 6-7 T2
4. T2:Unlock B
5. T1:Lock B 9-10
6. T1:Unlock A T3 8-11
7. T2:Lock A
8. T2:Unlock C
9. T2:Unlock A
10 T3: Lock A
T1 debe estar antes
11 T3: Lock C
de t2.
12 T1:Unlock B
13 T3:Unlock C 
14 T3:Unlock A. T2 debe estar antes
de T1.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


El 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
T1 T2
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.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


El bloqueo riguroso de dos fases.
T1 T2
Lock A
Lock C
Provoca retroceso en cascada.
Lock B

Unlock A
Unlock B
Lock B
Unlock C El bloque riguroso:
Unlock B Libera recursos despues del commit
Rollback ó del rollback.

Permite que
Las transacciones se puedan
secuenciar en el orden en que se
comprometan.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Los interbloqueos.

T1 T2 T3
Grafo de esperas:
Lock A
Nodos : Transacciones.
Lock B
Lock C Arcos:
Lock B ? Ti --->Tj Ti tiene un recurso que solicita Tj
Lock C?
Lock A ?

T3

T1
Solución:
Si se detecta un ciclo debe T2
retrocederce una de las Tx
Involucradas.

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.


Transacciones 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 Rlock Wlock
x
i Rlock Si No
s
t
e Wlock No No
John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.
Bibliografía.

Abraham Silberschatz, Henry Korth, S. Sudarshan.


Fundamentos de Bases de Datos. Mc Graw Hill. 1998.
Cap. 13-14

John Freddy DuitamaM. U.de.A.- Facultad de Ingeniería.

También podría gustarte