Lístense las propiedades ACID. Explíquese la utilidad de cada una. a) Atomicity: Todas o ninguna de las operaciones de la transacción se realicen. b) Consistency: No permitir que otra transacción que se ejecute concurrentemente. c) Isolation: Trata que para cada transacción ti o tj se termine el proceso de ti o tj sin que se solapen las transacciones. d) Durability: Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, sin importar si hay fallos en el sistema.
Supóngase que existe un sistema de base de datos que nunca falla. ¿Se necesita un gestor de recuperaciones para este sistema? Se necesita para realizar roll-back de transacciones abortadas.
Considérese un sistema de archivos como el de su sistema operativo preferido. a) ¿Cuáles son los pasos involucrados en la creación y borrado de archivos, y en la escritura de datos a archivos? b) Explíquese por qué son relevantes los aspectos de atomicidad y durabilidad en la creación y borrado de archivos, y en la escritura de datos a archivos
Los implementadores de sistemas de bases de datos prestan mucha más atención a las propiedades ACID que los implementadores de sistemas de archivos. ¿Por qué tiene sentido esto? Porque los sistemas de bases de datos realizan tareas muy importantes y cruciales cuyo resultado afectaría mucho en la confiabilidad de los datos que arroje y esto sería de manera permanente.
Durante su ejecución, una transacción pasa a través de varios estados hasta que se compromete o aborta. Lístense todas las secuencias posibles de estados por los que puede pasar una transacción. Explíquese por qué puede ocurrir cada una de las transiciones de estados.
Activa parcialmente comprometida comprometida: Es cuando la transacción no tiene ningún problema en ejecutarse y finaliza correctamente. Activa parcialmente comprometida hardware al momento de la grabación.
abortada: Puede ocurrir algún fallo de
Activa Fallida abortada: Descubre que mientras se hace la comprobación de todas las transacciones de ocurre algún fallo en las instrucciones.
Justifíquese lo siguiente. La ejecución concurrente de transacciones es más 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. Si una transacción dura mucho o extrae datos desde un disco lento, lleva mucho tiempo completarla. En ausencia de concurrencia, otras transacciones tendrán que esperar por un largo período de tiempo. Cuando las transacciones son cortas o los datos están disponibles en memoria, estos problemas no suceden.
Explíquese la diferencia entre los términos planificación secuencial y planificación secuenciable. Una planificación en la que todas las instrucciones que pertenecen a una única transacción aparecen juntas, se denomina planificación secuencial. Una planificación secuenciable tiene una restricción más débil que la que debería ser equivalente para alguna planificación secuencial.
Considérense las dos transacciones siguientes:
Sea el requisito de consistencia A= 0 ∨ B= 0, siendo los valores iniciales A= B= 0. a) Demuéstrese que toda ejecución secuencial en la que aparezcan estas transacciones conserva la consistencia de la base de datos.
b) Muéstrese una ejecución concurrente de T1 y T2 que produzca una planificación no secuenciable.
c)
¿Existe una ejecución concurrente de T1 y T2que produzca una planificación secuenciable?
Puesto que toda planificación secuenciable en cuanto a conflictos es secuenciable en cuanto a vistas, ¿por qué se hace hincapié en la secuencialidad en cuanto a conflictos en vez de en la secuencialidad en cuanto a vistas?
Considérese el grafo de precedencia de la Figura 15.18. ¿Es secuenciable en cuanto a conflictos la planificación correspondiente? Razónese la respuesta.
Hay una planificación secuenciable correspondiente al grafo de precedencia siguiente, dado que el grafo es acíclico. Una posible planificación, es decir, T1, T2, T3, T4, T5.
¿Qué es una planificación recuperable? ¿Por qué es conveniente la recuperabilidad de las planificaciones? ¿Hay circunstancias bajo las cuales puede ser conveniente permitir planificaciones no recuperables? Razónese la respuesta. Una planificación recuperable es aquella en la que para todo par de transacciones Ti y Tj tales que Tj lee elementos de datos que ha escrito previamente Ti , la operación comprometer de Ti aparece antes que la de Tj. Las planificaciones no recuperables pueden necesitarse, algunas veces, cuando las actualizaciones se deben hacer visibles pronto.
.
¿Qué es una planificación sin cascada? ¿Por qué es conveniente la planificación sin cascada? ¿Hay circunstancias bajo las cuales puede ser conveniente permitir planificaciones que no sean sin cascada? Razónese la respuesta. Una planificación sin cascada es aquella para la que todo par de transacciones Ti y Tj tales que Tj lee un elemento de datos que ha escrito previamente Ti, la operación comprometer de Ti aparece antes que la operación de lectura de Tj. Las planificaciones sin cascada son convenientes porque el fallo de una transacción no conduce al aborto de ninguna otra transacción. Si los fallos suceden raramente, de tal manera que se pueda pagar el precio de abortos en cascada por el incremento de concurrencia, podrían ser convenientes planificaciones que no sean sin cascada.