You are on page 1of 9

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.

Considrese cualquier transaccin. El punto de la planificacin en el cual la transaccin obtiene
su blo-queo final (el final de la fase de crecimiento) se deno-mina punto de bloqueo de la
transaccin. Ahora se pueden ordenar las transacciones en base a sus puntos de bloqueo;
(diciendo, esta ordenacin es un orden de secuencialidad para las transacciones.

El protocolo de bloqueo de dos fases no asegura la ausencia de interbloqueos.

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?

Las bases de datos generalmente realizan tareas cruciales, cuyos efectos necesitan ser
atomicos, duraderos y cuyos resultados afectan al mundo real de forma permanente. Ejemplos
de tales tareas son las transacciondes menetarias, reservas de plazas, etc. Por lo tanto, han de
asegurarse las propuedades ACID. En constraste, la mayoria de los usuarios de los sistemas
de ficheros no estarian dispuestos a pagar el precio (en recursos, espacio en disco, tiempo) de
soportar las propiedades ACID.

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.

Las secuencias de estados posibles son:

a) Activa parcialmente comprometida. Esta es la secuencia normal que segura una transaccion
con exito. Despues de ejecutar todas sus instrucciones accede al estado parcialmente
comprometida. Despues de que se ha grabado en disco suficiente informacion de recuperacion,
la transaccion finalmente accede al estado comprometida.

b) Activa parcialmente comprometida abotada. Despues de ejecutar la ultima instruccion de la
transaccion, accede al estado parcialmente comprimetida. Pero antes de grabar en disco
suficiente informacion de recuperacion, puede tener lugar un fallo en el hardware destruyendo
el contenido de la memoria. En ese caso, los cambios realizados en la base de datos se
deshacen y la transaccion accede al estado "abortada".

c) activa fallida abortada. Despues de iniciarse la transaccion, si se descubre en algun
momento que no puede continuar la ejecucion normal (debido a errores de programacion o a
errores externos), entra en el estado fallido. entonces la transaccion es retrocedida, despues de
lo cual entra en el estado "abortada".


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.

Si una transaccin dura mucho o extrae datos desde undisco lento, lleva mucho tiempo
completarla. En ausencia de concurrencia, otras transacciones tendrnque esperar por un
largo perodo detiempo. El tiempo de respuesta medi se incrementar.

Tambin,cuando la transaccin est leyendo datos deldisco, la CPU pierde el tiempo.

As, los recursos no se empleancorrectamente. Por lo tanto, la ejecucinconcurrente se
hace importante en este caso. Sin embargo, cuando lastransacciones son cortas o los
datosestn disponibles en memoria, estos problemas no suceden.

5. Considere las dos transacciones siguientes:

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?






Instrucciones de bloqueo y desbloqueo:

T31: bloquear-S(A)
leer(A)
bloquear-X(B)
leer(B)
si A = 0
entonces B := B + 1
escribir(B)
desbloquear(A)
desbloquear(B)

T32: bloquear-S(B)
leer(B)
bloquear-X(A)
leer(A)
si B = 0
entonces A := A + 1
escribir(A)
desbloquear(B)
desbloquear(A)




La ejecucin de estas transacciones puede dar lugar a interbloqueos. Por ejemplo,
considrese la siguiente planificacin parcial:
















6. Qu beneficios proporciona el bloqueo estricto de dos fases? Qu inconvenientes
tiene?

Dado que slo produce planificaciones sin cascada, la recuperacin es muy fcil. Pero el
conjunto de planificaciones que se puede obtener es un subconjunto de los que se obtiene
desde el bloqueo sencillo de dos fases, con lo que se reduce la concurrencia.

7. Qu beneficio proporciona el bloqueo riguroso de dos fases? comprese con otras
formas de bloqueo de dos fases.

El bloqueo riguroso de dos fase tiene las ventajas del bloqueo estricto de dos fases. Adems
tiene las propiedades de que para dos transacciones conflictivas, su orden de compromiso es
su orden de secuencialidad. En algunos sistemas lo usuarios pueden esperar este
comportamiento.

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.

a) Asegura la secuencialidad
b) Evita retrocesos en cascada.
c) Es relativamente sencillo de implementar.

9. Explquese el fenmeno fantasma. Por qu produce este fenmeno?

El fenmeno fantasma surge cuando, debido a una insercin o borrado, dos transacciones
entran en conflicto lgico a pesar de no bloquearse ninguno de los elementos de los datos en
comn.

El borrado tambin puede conducir a este fenmeno. Supngase que Ti borra
una tupla de una relacin mientras Tj rastrea la relacin. Si Ti borra la tupla y despus Tj lee la
relacin, Ti debera secuencializarse antes que Tj . An no hay ninguna tupla sobre la que Ti y
Tj estn en conflicto.

Una interpretacin del bloqueo de dos fases, como simplemente el bloqueo de las tuplas
accedidas en una relacin, es incorrecta. Hay tambin un ndice o un dato de relacin que tiene
informacin sobre las tuplas en la relacin. Esta informacin es leda por cualquier transaccin
que rastrea la relacin y modificada por transacciones que actualizan, insertan o borran en o
desde relacin. Por lo tanto, el bloqueo tambin debe realizarse sobre el ndice o el dato de
relacin, evitando el fenmeno fantasma.




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 define como la
marca temporal de la transaccin ms reciente que haya ejecutado escribir(Q) con xito.
Hay alguna diferencia al cambiar esta definicin? Razne su respuesta.

No habra ninguna diferencia. El protocolo de escritura es tal que la ltima transaccin para
escribir un elemento es, tambin, la que se ha hecho con mayor marca temporal.


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?

Una transaccin es retrocedida porque una transaccin ms nueva ha ledo o escrito el dato
que, se supone, iba a escribir. Si la transaccin retrocedida se reintrodujera con igual marca
temporal, la misma razn para el retroceso sera todava vlida y la transaccin habra de
retrocederse de nuevo. Esto continuara indefinidamente.

12.En el protocolo de granularidad mltiple, qu diferencia hay entre bloqueo
implcito y explcito?

Cuando una transaccin bloquea explcitamente un nodo en modo exclusivo o compartido,
bloquea implcitamente, en el mismo modo, a todos los descendientes de ese nodo. La
transaccin no tiene necesidad de bloquear explcitamente los nodos descendientes. No hay
diferencia en las funcionalidades de estos bloqueos, la nica diferencia est en la forma en que
se adquieren y en lo probado de su presencia.

13.Considere el grafo de la siguiente figura.



Es secuenciable en cuanto a conflictos la planificacin correspondiente? Razone su
respuesta.

Hay una planificacin secuenciable correspondiente al grafo de precedencia siguiente, dado
que el grafo es acclico. Una posible planificacin se obtiene haciendo una ordenacin
topolgica, es decir, T1, T2,T3, T4, T5.



























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.














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: