Está en la página 1de 15

rea de Computacin e Informtica

Bases de Datos B
Transacciones y Concurrencia

M.C. Sandra Edith Nava Muoz

Transacciones
Una transaccin es una coleccin de operaciones que forman una nica unidad lgica de trabajo en una aplicacin de bases de datos. Propiedades de las Transacciones (A.C.I.D.): 1) Atomicidad 2) Consistencia 3) Aislamiento (Independencia) 4) Durabilidad

Atomicidad
COMMIT (Comprometer) ROLLBACK (Retroceder)
Gestor de Transacciones
Asegura las propiedades de Atomicidad y Durabilidad del sistema de bases de datos.

Gestor de Control de Concurrencia


Controla la interaccin entre las transacciones concurrentes para asegurar la consistencia de la base de datos.

Diagrama de estados de una transaccin


Parcialmente comprometida Comprometida

Activa

Fallida

Abortada

Transaccin
T1: leer (A) A = A 10,000 escribir (A) leer (B) B = B + 10,000 escribir (B) Cta. A 200,000 190,000 190,000 Cta. B 400,000 400,000 410,000

Transaccin abortada: Reiniciar la transaccin Cancelar la transaccin

Ejecuciones concurrentes
T1: leer (A) A = A 10,000 escribir (A) leer (B) B = B + 10,000 escribir (B) T2: leer (A) temp = A * 0.1 A = A temp escribir (A) leer (C) C = C + temp escribir (C)

Las secuencias de ejecucin de las operaciones de las transacciones se denominan planificaciones.

Control de Concurrencia
Protocolos basados en el Bloqueo (Locking methods)
Bloqueos Bloqueos de dos fases

Protocolos basados en Marcas Temporales (Timestamp methods) Protocolos basados en Validacin (Optimistic methods)

Bloqueos
1. Compartido
solo se puede leer el elemento de datos

2. Exclusivo
se puede leer como escribir el elemento de datos

C C X

T1:bloquear-X(A) leer (A) A = A 10,000 escribir (A) desbloquear (A) bloquear-X(B) leer (B) B = B + 10,000 escribir (B) desbloquear (B)

T2:bloquear-C(B) leer (B) desbloquear (B) bloquear-C (A) leer (A) desbloquear (A) visualizar (A+B)

Planificacin con el Protocolo de Bloqueo


T1
to t1 t2 t3 t4 t5 t6 t7 t8 t9 bloquear-X(A) leer (A) A = A 10,000 escribir (A) desbloquear (A) bloquear-X(B) leer (B) B = B + 10,000 escribir (B) desbloquear (B)

T2
bloquear-C(B) leer (B) desbloquear (B)

...espera...
bloquear-C (A) leer (A) desbloquear (A) visualizar (A+B)

Interbloqueo
T3 Bloquear-X (B) Leer (B) B = B 10,000 Escribir (B) T4

Bloquear-C (A) Leer (A) Bloquear-C (B) Bloquear-X(A)

Deteccin y Recuperacin de Interbloqueos


Grafo de espera Es un grafo dirigido que describe el estado de un sistema de bd, en el que se puede encontrar si hay interbloqueos. Ti Tj implica que la transaccin Ti est esperando a que la transaccin Tj libere un elemento de datos.

Existe un interbloqueo en el sistema si y slo si el grafo de espera contiene un ciclo. T26 T25 T28

T28 T27 T27 T26 T28 T27 T26

Recuperacin de interbloqueos
1. Seleccin de una vctima, se deben retroceder aquellas transacciones que incurran en un coste mnimo. a. Operaciones a realizar b. # elementos usados c. # elementos a usar d. Prediccin con las dems transacciones Estado de inanicin

rea de Computacin e Informtica


Bases de Datos B

M.C. Sandra Edith Nava Muoz