Guı́a Resumen Transacciones. CC42A.* Auxiliar: Diego Dı́az-Espinoza. Profesor: Claudio Gutierrez 14 de junio de 2009 1. Resumen Materia 1. Operaciones en transacciones. a) leer elemento(X): Lee un elemento de la base de datos - de nombre X - y lo guarda en una variable de programa llamada X. Se nota generalmente como L(X) o también su forma inglesa: R(X). b) escribir elemento(X): Escribe el valor de la variable de programa X en el elemento de la base de datos de nombre X. Se nota generalmente como E(X) o también su forma inglesa: W(X). c) abortar() : Aborta la actual transacción; es decir, toda operación de escritura sobre la base de datos NO debe ser realizada. Se abrevia A(). d ) confirmar() : Confirma la transacción actual; es decir, todas las operaciones de leer y escribir se realizaron con éxito y por ende la transacción en su conjunto se asienta permanentemente en la base de datos. Se abrevia C(). 2. Transacción: Una transacción es un conjunto ordenado de operaciones de Lectura/Escritura. Cada operación de la transacción se subindica con un indicador de operación; esto, para diferenciarlas de los demás planes de transacciones. Por ejemplo, sea T1 y T2 dos planes de transacciones tales que: T1 = R1 (X), R1 (Y ), W1 (X), W1 (Y ), C1 (), T2 = W2 (X), W2 (Y ), A2 () 3. Problemas posibles en transacciones: a) Actualización perdida: El sistema manejador de bases de datos ejecuta las transacciones con operaciones intercaladas de ambas transacciones de modo tal que las actualizaciones de una se pierden o son ignoradas por la otra. b) Lectura sucia: Una de las transacciones aborta habiendo otra transacción leı́do luego de que la primera haya modificado valores que ésta lee, ası́, una de las transacciones está leyendo valores “falsos” de la base de datos. * No reemplaza la lectura del texto ni el estudio de las cátedras 1 c) Resumen incorrecto: Se produce cuando una transacción está ejecutando funciones agregadas sobre la base de datos, al mismo tiempo que otra transacción está modificando campos que la anterior está usando. 4. Propiedades “deseables” en las transacciones (ACID): a) Atomicity (Atomicidad): Una transacción debe ser considerada como indivisble 1 b) Consistency (consistencia): Una transacción debe partir de un estado consistente de la base de datos y terminar en otro estado consistente de la misma. c) Isolation (Aislamiento): Una transacción no debe dejar que otras transacciones lean sus cambios antes de que esta se confirme o aborte. d ) durability (durabilidad o persistencia): Luego de una confirmación, los datos modificados deben persistir sin importar un fallo posterior. 5. Plan de transacciones P : Un plan de transacciones es un conjunto ordenado de operaciones de dos o más transacciones. Notar que las operaciones pueden o no estar intercaladas. 6. Operaciones en conflicto: Se dice que hay conflicto entre dos operaciones si y sólo si: a) Si ambas operaciones pertenecen a distintas transacciones. b) Si una de las operaciones es W (X) (o equivalentemente E(X)). 7. Plan completo: Un plan P compuesto por las transacciones T1 , T2 , ..., Tn es completo si y sólo si cumple con todas las siguientes caracterı́sticas: a) Todas las operaciones de cada transacción Ti , i = 1...n están presentes en P, inclusive las operaciones ai () ó ci (). b) El orden de todo par de operaciones de Ti , i = 1...n se respeta (se conserva) en P. c) Para cualquier par de operaciones en conflicto una de ellas debe ocurrir antes que la otra. 8. Lectura de una transacción T sobre transacción T 0 en un plan P : Si y sólo si T 0 escribe un elemento y luego T lee el mismo elemento. 9. Plan recuperable: Un plan P es recuperable si ninguna transacción T de P se confirma antes de haberse confirmado todas las transacciones T 0 que han escrito un elemento que T lee. Es decir, si existe al menos una transacción T en P que lee de una transacción T 0 y que se confirma antes de haberse confirmado la transacción T 0 . 10. Plan estricto: Un plan es estricto si todas las transacciones que leen o escriben un elemento X lo hacen luego de que se haya confirmado o abortado la última transacción que escribió X. Un plan estricto es recuperable. 1 notar que la palabra atómica está sobrecargada puesto que los atomos sı́ pueden dividirse...o no? 2 11. Plan en serie: Un plan es en serie si para toda transacción que participan en él, sus operaciones se ejecutan de forma consecutiva. 12. Planes equivalentes por resultados: dos planes son equivalentes por resultados si ambos producen el mismo estado final en la base de datos. 13. Planes equivalentes por conflicto: dos planes son equivalentes por conflicto, si el orden de todas las operaciones en conflicto es el mismo en ambos planes. 14. Planes equivalentes por vistas: Dos planes son equivalentes por vistas, si se cumplen las siguientes condiciones: a) Ambos tienen las mismas transacciones y por ende las mismas operaciones de esas transacciones. b) Si existen operaciones Ri (X) en P y se ejecutó previamente una operación Wj (X) entonces debe cumplirse la misma condición para la operación Ri (X) en P 0 . c) Si la última operación sobre Y de una transacción Tk es Wk (Y ) en el plan P entonces también debe ser la última operación sobre Y en P 0. 15. Plan seriable por conflicto: Un plan P es seriable si es equivalente a algún plan en serie P 0 de las misma transacciones de P . 3