Вы находитесь на странице: 1из 17

Transacciones

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Outline

Transacciones Ejecuciones Concurrentes Secuencialidad en Cuanto a Conictos Secuencialidad en Cuanto a Vistas Recuperabilidad Transacciones en SQL

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Transaccin o

Denicin o Una Transaccin es un conjunto de operaciones que forman una o unica unidad lgica de trabajo. Aunque se realicen varias o operaciones (actualizaciones, consultas, eliminaciones, etc) desde el punto de vista del usuario la operacin es unica. o Ejemplos: Transferencia de fondos, Registrar un pago, matricularse, etc. La transaccin consiste en todas las operaciones que se ejecutan o entre las instrucciones Inicio de Transaccin y Fin de Transaccin o o

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Propiedades ACID
Las transacciones deben de cumplir con las siguientes propiedades (ACID) para garantizar la integridad de los datos: Atomicidad: Todas las operaciones se realizan o ninguna Consistencia: Los invariantes de la BD se conservan antes y despus de la ejecucin de la transaccin e o o Aislamiento: No importa que se ejecuten transacciones concurrentemente, desde el punto de vista del usuario lucen secuenciales (unas no afectan la ejecucin de las otras) o Durabilidad: Los cambios comprometidos perduran en el tiempo Por que es importante garantizar estas propiedades? Quien garantiza su cumplimiento?

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Estados de una Transaccin o

Es posible retroceder una transaccin comprometida? o

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Ejecuciones Concurrentes

Por qu no permitir solo ejecuciones secuenciales?: e Se hace mejor uso de los recursos de computo Aumento de la productividad (transacciones / u.tiempo) Reduccin de los tiempos de respuesta o Por qu se deben controlar las ejecuciones concurrentes? e Quin se encarga de esta tarea? e

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Conceptos

Planicacin: Representan el orden cronolgico en el que se o o ejecutan las instrucciones de diferentes transacciones concurrentes. Ej:

Ti Leer(A) Escribir(B)

Tj Leer(B) Escribir(C)

Leer(C)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Planicacin Secuencial o
Una planicacin es secuencial si las instrucciones de cada o transaccin estn juntas y solo inician cuando terminan las de la o a transaccin anterior. Ej o Ti Leer(A) Escribir(B) Leer(C) Tj Ti Tj Leer(B) Escribir(C)

Leer(B) Escribir(C)

Leer(A) Escribir(B) Leer(C)

Cuantas posibles planicaciones secuenciales se pueden generar a partir de P? Todas las P. secuenciales que se obtienen mantienen la consistencia?
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Transacciones

Secuencialidad en Cuanto Conictos


Se dice que dos instruccin Ii Ti e Ij Tj estn en conicto o a si estn asociadas al mismo recurso y alguna de ellas es a escribir Si una planicacin P se puede transformar en P por medio o de cambios no conictivos, se dice que P y P son Equivalentes en Cuanto Conictos Ej, son P y P equivalente en C.C? P Ti Tj L(A) E(A) E(B) E(C) L(C) P Ti L(A) E(B) Tj

E(A) E(C) L(C)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Secuencialidad en Cuanto Conictos

Se dice que la planicacin P es Secuenciable en Cuanto o o Conictos si existe una planicacin secuencial P tal que P y P son equivalentes en cuanto conictos Cuales de las siguientes Planicaciones son SECC? P1 Ti L(A) L(B) E(B) Tj E(A) L(A) L(B) Ti L(A) P2 Tj E(B) E(A) L(C) Ti E(A) P3 Tj E(B) E(C)

Tk

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Comprobacin de la secuencialidad en Cuanto Conictos o

Se puede vericar la secuencialidad en cuanto conictos de una planicacin por medio del siguiente algoritmo: o Construir el grafo de precedencias (G = V , A ) de P, donde V lo conforman el conjunto de transaccin y ai = ti , tj A o si existe un par de instrucciones conictivas entre ti y tj . Si existe un ciclo en el grafo, P no es secuenciable en cuanto conictos Si no hay ciclos, el orden de las transacciones lo determina el orden topolgico del grafo. o

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Equivalencia en Cuanto Vistas

La siguiente planicacin es equivalente en cuanto conictos? o P1 Ti E(A) E(A) En cuanto al resultado observable, aceptar que P fuera a equivalente a la planicacin secuencial Tj , Ti o Tj E(A)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Continuacin o

Se dice que P es Equivalente en Cuanto a Vistas a P si:


1

Para todo recurso Q si Ti lee el valor inicial de Q en P lo debe hacer en P Si Ti lee el valor producido por Tj en P, tambin lo debe e hacer en P Si Ti es la ultima transaccin en efectuar E (Q) para cualquier o Q en P, en P tambin la ultima escritura de Q la debe e efectuar Ti

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Secuencialidad en cuanto Vistas


La planicacin P es Secuenciable en Cuanto Vistas si existe una o planicacin secuencial P tal que P y P son equivalentes en o cuanto a vistas Cuales de las siguientes planicaciones son equivalentes en cuanto a vistas? P
3

P1 Ti L(Q) E(Q) E(Q) E(B) Tj E(Q) Ti L(Q)

P2 Tj L(B) E(Q)

Ti L(Q)

Tj L(M)

Tk

E(M) E(Q) E(M) L(Q) E(M)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Recuperabilidad
Denicin o Una planicacin es Recuperable si para todo par de transacciones o Ti y Tj tal que Tj lee el valor producido por Ti , la operacin de o compromiso de Ti debe ser anterior al compromiso de Tj . Por ejemplo P no es recuperable P Ti L(Q) E(Q) E(B) COMMIT Tj L(Q) COMMIT

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Planicaciones sin Cascada


Se dene Retroceso en Cascada cuando el fallo de un transaccin o provoca retrocesos en otras transacciones Denicin o P es una Planicacin sin Cascada si para toda Ti , Tj tal que Tj o lee el valor producido por Ti , la lectura de Tj es posterior al compromiso de Ti Por ejemplo, P es recuperable pero no es una PSC: P Ti E(A) E(B) COMMIT Tj L(A) E(A) L(A) COMMIT COMMIT
Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Transacciones

Tk

Transacciones en SQL

Las transacciones se comprometen mediante la sentencia COMMIT Las transacciones se retroceden mediante la sentencia ROLLBACK

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Transacciones

Вам также может понравиться