Sunteți pe pagina 1din 25

Base de Datos II Ing. Olga Zalamea P.

Una coleccin de operaciones que forman una nica unidad lgica de trabajo. Unidad de ejecucin en un programa que accede y posiblemente actualiza varios elementos de datos. Ejm: Transferencia Bancaria

Ejm: Transferencia Bancaria


Inicio Transaccin
Cuenta A = A 10 Cuenta B = B + 10

Fin Transaccin

Asegurar Integridad de los datos:


ACID Atomicidad (Atomicity) Consistencia (Consistency) Aislamiento (Isolation) Durabilidad (Durability)

Atomicidad:
Todo o nada. (Gestor de transacciones).

Consistencia:
Ejecucin aislada de la transaccin conserva la consistencia de la Bases de Datos. (programador)

Aislamiento:

Ejecuten concurrente para cada par de transacciones Ti y Tj, se ejecutarn en diferentes tiempos. (componente de control de concurrencia)

Durabilidad:
En una transaccin exitosa los cambios realizados a la base de datos permanecen, incluso si hay fallos en el sistema. (componente de gestin de recuperaciones)

Leer(X): Transfiere el dato X de la base de datos a una memoria intermedia local perteneciente a la transaccin que ejecuta la operacin leer.
Escribir(X): Transfiere el dato X de la memoria intermedia local a la base de la transaccin que ejecuta la operacin Escribir.

Transferencia bancaria de la cuenta A a la cuenta B: Ti:


Leer (A) A:=A 50; Escribir (A) Leer (B) B:=B + 50; Escribir (B)

Consistencia:
A = 1000, B = 2000 A + B = 3000

A=950, B=2050 A + B = 3000

Durabilidad: Terminada la transferencia los saldos se mantienen.

Ti:
Leer (A) A:=A 50; Escribir (A) Leer (B) B:=B + 50; Escribir (B)

Atomicidad:
A = 1000, B = 2000 A + B = 3000

A=950, B=2000 A + B = 2950

Aislamiento: Tj:
Leer (A) A:=A 50; Escribir (A) Leer (B) B:=B + 50; Escribir (B) A=1000 A=950 A:= 950 B=2000 B= 2050 B:=2050 Leer (A) A:=A 50; Escribir (A) A=1000 A=950 A:= 950

Ti:

Leer (B) B:=B + 50; Escribir (B) A+B = 3050

B=2050 B=2100 B:=2100

Activa:

Parcialmente comprometida:

Estado Inicial y durante su ejecucin. Una vez ejecutada ultima instruccin. Error, no puede continuar.

Fallida:

Abortada:

Comprometida:

Retrocede y vuelve al estado original.


Transaccin exitosa, cambios efectuados.

Abortada:

Reiniciar: Error HW, SW. Cancelar: Error lgico.

Escrituras externas observables. Solo cuando esta comprometida Transacciones Compensadoras. Retiro de dinero en el cajero; restaurar el saldo. Transacciones de larga duracin

El encargado de esto es el componente de gestin de recuperaciones.


Asume que una transaccin est activa en cada momento y para esto hace copias sombra de la base de datos. Asume que la base de datos es un archivo en disco direccionado por un puntero llamado (puntero_bd).

Puntero_ BD Copia anterior de la base de datos


Copia anterior de la base de datos (que ser borrada)

Puntero_ BD Nueva copia de la base de datos

a) Antes de la Actualizacin

b) Despus de la Actualizacin

Ejecuciones concurrentes provocan conflictos


Ms sencillo exigir que las transacciones se ejecuten secuencialmente.

Razones para la concurrencia :


Productividad y utilizacin de recursos mejoradas
E/S y uso del CPU en paralelo.

Tiempo de espera reducido

Esquemas de control de concurrencia


Planificacin: Orden de Ejecucin de las transacciones.

A=1000 A=950 B=2000 B=2050 A=950 temp=95 A=855 B=2050 B=2145

A + B = 855+2145 3000

A=1000 temp=100 A=900 B=2000 B=2100 A=900 A=950 B=2100 B=2150

A + B = 950+2150 3000

A=1000 A=950 A=950 temp=95 A=855 B=2000 B=2050 B=2050 B=2145

A + B = 855+2145 3000

A=1000 A=950 A=1000 temp = 100 A=900 B=2000 A=900 A=950 B=2000 B=2050

B=2100

A + B = 950+2100 3050

Ejemplo de transaccin

Estados de la transaccin

Explicar Atomicidad y Durabilidad Reglas de consistencia Ejemplo de Error de Aislamiento Explicar cuando esta en cada uno de los estados Ejemplo de Escrituras externas observables. Ejemplo de Transaccin Compensadora

Planificacin

Ejemplo de planificacin secuencial. Ejemplo de planificacin concurrente equivalente. Ejemplo de planificacin concurrente inconsistente.

N transacciones, n! planificaciones validas.


Mucho mas de n! planificaciones posibles.

No interesa todo tipo de operacin, solo las de lectura y escritura.


Secuencialidad en cuanto a conflictos Secuencialidad en cuanto a vistas

Dado que tenemos la Planificacin P, con transacciones Ti y Tj.


Dos instrucciones Ii, Ij pertenecientes a Ti y Tj. Si Ii e Ij se refieren a diferentes elementos de datos entonces se pueden intercambiar.

Si Ii e Ij se refieren al mismo elemento de datos entonces el orden de aparicin se debe tener en cuenta para la planificacin.

Leer (Q), Leer (Q).

No importa, leen el mismo valor

Leer (Q), Escribir(Q). Escribir(Q), Leer (Q).


Si importa

Escribir(Q), Escribir(Q). No importa para Ti y Tj, pero si para la siguiente lectura Ii e Ij estn en conflicto si alguna de ella es escribir.

S-ar putea să vă placă și