You are on page 1of 3

Ingeniera en Sistemas Administracin de Bases de Datos Prof.

Ronald Prez
Gua de Ejercicios Transacciones, Control de Concurrencia, Recuperacin

1. Demuestre que el protocolo de bloqueo de dos fases asegura la secuencialidad en cuanto a conflictos y que se pueden secuenciar las transacciones a travs de sus puntos de bloqueos. 2. Los implementadores de sistemas de bases de datos prestan mucha ms atencin a las propiedades ACID que los implementadores de sistemas de archivos. Por qu tiene sentido esto? 3. Durante su ejecucin, una transaccin pasa a travs de varios estados hasta que se compromete o aborta. Lstense todas las secuencias posibles de estados por los que puede pasar una transaccin. Explquese por qu puede ocurrir cada una de las transiciones de estados. 4. Justifquese lo siguiente. La ejecucin concurrente de transacciones es ms importante cuando los datos se deben extraer de disco (lento) o cuando las transacciones duran mucho, y es menos importante cuando hay pocos datos en memoria y las transacciones son muy cortas. 5. Considere las dos transacciones siguientes: T31 Leer(A) Leer(B) Si A = 0 entonces B:= B+1; Escribir(B) Leer(B) Leer(A) Si B=0 entonces A:=A+1; Ecribir(A); T32

Agregue a las transacciones T31 y T32 las instrucciones de bloqueo y desbloqueo para que sigan el protocolo de dos fases. Pueden producir la ejecucin de estas transacciones un interbloqueo? 6. Qu beneficios proporciona el bloqueo estricto de dos fases? Qu inconvenientes tiene? 7. Qu beneficio proporciona el bloqueo riguroso de dos fases? comprese con otras formas de bloqueo de dos fases. 8. Muchas implementaciones de sistemas de bases de datos utilizan el bloqueo estricto de dos fases. Indquese tres razones que expliquen la popularidad de este protocolo. 9. Explquese el fenmeno fantasma. Por qu produce este fenmeno

Ingeniera en Sistemas Administracin de Bases de Datos Prof. Ronald Prez


10. En la ordenacin por marcas temporales, marca_temporal-E(Q) indica la mayor marca temporal de todas las transacciones que hayan ejecutado escribir(Q) con xito. Supngase que en lugar de ello, marca_temporal-E(Q) se dene como la marca temporal de la transaccin ms reciente que haya ejecutado escribir(Q) con xito. Hay alguna diferencia al cambiar esta denicin? Raznese su respuesta. 11. Cuando se retrocede una transaccin en el protocolo de ordenacin por marcas temporales se le asigna una nueva marca temporal. Por qu no puede conservar simplemente su antigua marca temporal? 12. En el protocolo de granularidad mltiple, qu diferencia hay entre bloqueo implcito y explcito?

13. Considere el grafo de la siguiente figura.

Es secuenciable en cuanto a conflictos la planificacin correspondiente? Razone su respuesta. 14. En una instalacin existe una copia de seguridad del da 23 de abril a las 21 horas. Durante el da 24 abril ocurre un incidente que implica la rotura del disco donde se encuentra la base de datos y que, tal y como debe ocurrir, no es el mismo disco donde se almacena el diario. El diario contiene la secuencia descrita a continuacin. Indicar el procedimiento de recuperacin y los valores finales para los grnulos implicados.

<T1, start> <T1, Write, A , 20> <T1, Write, B , 40> <T1, commit> <chekpoint> <T2, start> <T3, start > <T2, Write, B, 50> <T3, Write, B, 60> <T2, commit> <T4, start> <T4, Write, A, 15> INCIDENTE

Ingeniera en Sistemas Administracin de Bases de Datos Prof. Ronald Prez


15. En una base de datos en la que se parte de los siguientes valores para tres grnulos de datos: A=25, B=5, D=10, y los registros del diario que se acompaan. Se pide: a) Describir el proceso de recuperacin indicando qu transacciones deben rehacerse y cules deshacerse, as como los retrocesos en cascada que se puedan producir. Indicar tambin con que valor quedaran A, B y C. b) Describir el proceso de recuperacin si se pierde la BD, sabiendo que existen copias de seguridad de la base de datos y de los diarios realizada el da anterior.

Diario: <T1, start> <Read, T1, A > <Read, T1, D > < Write,T1,D,10,20> <T1, commit> <chekpoint> <T2, start> <Read, T2,B > < Write,T2,B,5,12> <T4, start> <Read, T4, B > < Write, T4,B, 12,15> <T3, start> < Write, T3,A, 25,30> <Read, T4,A > < Write, T4,A, 30,20> <T4, commit> <Read, T2,D > < Write, T2,D, 20,25> --Cada del Sistema --

You might also like