You are on page 1of 124

EXMEN SGBD FEBRERO 2000 PRIMERA SEMANA

Pregunta 1. Tiempo estimado 50 minutos (4.5 puntos)



Dadas las siguientes tres transacciones T1, T2 y T3 con los valores iniciales A = 100, B = 50 y C = 0:



a) Existe una planificacin concurrente que sea secuenciable en cuanto a vistas y no a conflictos? Si
no es as, explicar por qu, y si es, presentarla y demostrar que se cumplen los dos tipos de
secuencialidad (no es necesario usar los grafos de precedencia). (1 punto)

b) Producir una planificacin concurrente para estas transacciones que sea secuenciable en cuanto a
conflictos y a vistas y demostrarlo usando los grafos de precedencia. (1 punto)

c) Para qu sirve la paginacin en la sombra?, cules son sus ventajas e inconvenientes? y qu
solucin hay para esta tcnica? (1 punto)

d) Aplicar la solucin producida en el apartado (c) anterior a la planificacin producida en (b), e
ilustrar el estado de la base de datos en estos tres casos (especificar todas las suposiciones tomadas
en cuenta) (1,5 puntos):
I. Las tres transacciones terminan con xito.
II. Se cae el ordenador durante la ejecucin de la transaccin T2 en punto 1.
III. Se cae el ordenador durante la ejecucin de la transaccin T3 en punto 2.

Solucin

a) si hay:
T1 T2 T3
leer(A)
C := A
escribir(C)
leer(B)
A := A + B

leer(C)
A := B
escribir(A)
B := B + C
escribir(B)

escribir(A)



leer(B)
A = B
escribir(A)

Secuencialidad en cuanto a conflictos: no se puede intercambiar la instruccin escribir(A) en las
transacciones T1 y T2, como es conflictiva, por lo tanto, la planificacin no es secuenciable en cuanto a
conflictos.

Una planificacin (P1) ser secuenciable en cuanto a vistas (con respeto a la planificacin secuencial,
P) si se cumplen tres condiciones, para todo elemento de datos Q:

(a) Si la transaccin Ti lee el valor inicial de Q en P, debera hacerlo en P1.
(b) Si la transaccin Tj ejecutar leer(Q) y el valor lo ha producido en P la transaccin Tj (si hay),
debera pasar lo mismo en P1.
(c) La transaccin (si hay) que realice la ltima operacin escribir(Q) en P debera hacerlo en P1.

Por lo tanto:

(a) T1 lee el valor inicial de A y B, como en la planificacin secuencial.
(b) T2 lee el valor de C que ha escrito T1 y T3 lee el valor de B que ha escrito T2, como en la
planificacin secuencial.
(C) T2 realiza la ltima escritura de B y T3 la de A, como en la planificacin secuencial.

la planificacin en secuenciable en cuanto a vistas.

b)
T1 T2 T3
leer(A)
C := A
escribir(C)

leer(C)
A := B

leer(B)
A := A + B
escribir(A)

escribir(A)
B := B + C
escribir(B)

leer(B)
A = B
escribir(A)

Para la secuencialidad en cuanto a conflictos:

T1 ejecutar leer(A) antes de que T2 ejecute escribir(A): T1 T2
T1 ejecutar leer(B) antes de que T2 ejecute escribir(B): T1 T2
T1 ejecutar escribir(A) antes de que T2 ejecute escribir(A): T1 T2
T1 ejecutar escribir(A) antes de que T3 ejecute escribir(A): T1 T3
T2 ejecutar escribir(A) antes de que T3 ejecute escribir(A): T2 T3

Por lo tanto:




T1
T2
T3


No hay ciclos...

Para la secuencialidad en cuanto a vistas:

T1 T2 T3
leer(A)
escribir(C)

leer(C)
leer(B)
escribir(A)

escribir(A)
escribir(B)

leer(B)
escribir(A)

Considerando la transaccin anterior a la planificacin Tc:
- T1 lee el valor inicial de A y B escrito por Tc: Tc
0
T1

Considerando la transaccin posterior a la planificacin Tf:
- Tf lee el valor de A escrito por T3: T3
0
Tf

Adems, en la planificacin:
T2 lee el valor de C que ha escrito T1: T1
0
T2
T3 lee el valor de B que ha escrito T2: T2
0
T3

Y adems:

Ti (escribir) Tj (leer) Tk (escribir) Regla
Tc (escribir a) T1 (leer a) T2 (escribir a)
3a (Ti = Tc, Tj Tf)
aadir Tj
0
Tk
Tc (escribir a) T1 (leer a) T3 (escribir a)
3a (Ti = Tc, Tj Tf)
aadir Tj
0
Tk
Tc (escribir b) T1 (leer b) T2 (escribir b)
3a (Ti = Tc, Tj Tf)
aadir Tj
0
Tk
T3 (escribir a) Tf (leer a) T1 (escribir a)
3b (Ti Tc, Tj = Tf)
aadir Tk
0
Ti
T3 (escribir a) Tf (leer a) T2 (escribir a)
3b (Ti Tc, Tj = Tf)
aadir Tk
0
Ti
- - -
3c (Ti Tc, Tj Tf)
aadir Tk
1
Ti y Tj
1
Tk

Por lo cual: T1
0
T2, T1
0
T3, T1
0
T2, T1
0
T3, T2
0
T3




Tf
T1
T2
T3
Tc
No hay ciclos...

c) La paginacin en la sombra es una tcnica de recuperacin alternativa a las basadas en registro
histrico.
+ Bajo ciertas circunstancias puede requerir menos accesos al disco que los mtodos basados en r.h.
- Es difcil extender la pag. en la sombra para permitir que varias transacciones puedan ejecutarse
concurrentemente.
- Sobrecarga en el compromiso (comprometer una sola transaccin que utilice paginacin en la sombra
precisa la escritura de muchos bloques, los esquemas basados en r.h.).
- Fragmentacin de datos.
- Recogida de basura.

La solucin para est tcnica sera usar una estrategia basado en registro histrico.

d)

Punto T1 T2 T3 Registro Historico
(mod. inmed.)
Registro Historico
(mod. difir.)
leer(A)
C := A
escribir(C)

C = A
leer(C)
A := B

leer(B)
A := A + B
escribir(A)

A = A + B C =A
A = + B
II
escribir(A)
B := B + C
escribir(B)

A = B
B = B + C
A = B
B = B + C
leer(B)
A = B
escribir(A)

A = B A = B
I y III

Para los puntos I y III el resultado es igual para mod. inmediata y diferida, es decir:

A = B
B = B + C
C = A

Para el punto II la estructura de la base de datos depender de la mod. usada:




Registro Historico
(mod. inmed.)
Registro Historico
(mod. difir.)
C = A
A = A + B
C =A
A = + B



PREGUNTA 2. Tiempo estimado: 10 minutos (1 punto)

Define qu significa RAID, ACID, ODBC. Explicar para qu sirven y a qu aspectos de los SGBD se
refieren.

Solucin

RAID: disposicin redundante de discos independientes (Redundant Array of Independent Disks) una
tcnica para mejorar la fiabilidad de los SGBD a travs de la redundancia ante problemas con los datos
almacenados en el disco duro. Es decir, se duplican los datos en varios discos y si se cae alguno, el
sistema puede acceder a una copia y seguir funcionando mientras se cambia el disco daado.

ACID: las cuatro propiedades fundamentales de un SGBD:

Es necesario que las transacciones tengan las propiedades ACID (en ingls):

Atomicidad (asegura que o bien todos los efectos de la transaccin se reflejan en la base de datos,
o bien ninguno de ellos lo hace),
Consistencia (asegura que si la base de datos es consistente inicialmente, la ejecucin de la
transaccin deja la base de datos en un estado consistente),
Aislamiento (asegura que en la ejecucin concurrente de transacciones, stas estn aisladas unas de
otras, de tal manera que cada una tiene la impresin de que ninguna otra transaccin se ejecuta
concurrentemente con ella),
Durabilidad (asegura que una vez que la transaccin se ha comprometido, las actualizaciones
hechas por la transaccin no se pierden).

ODBC: Conectividad abierta de bases de datos (Open Database Connectivity) un protocolo
desarrollado para la interaccin entre clientes y servidores.


PREGUNTA 3. Tiempo estimado 60 minutos (4.5 puntos)

Se dispone de un Sistema de Gestin de Bases de Datos (SGBD) que controla y gestiona tanto al
personal del hospital (mdicos, enfermeras y personal de administracin) como la gestin de enfermos
(altas, bajas, administracin de medicamentos y visitas). Este sistema realiza las siguientes funciones:
Se almacena el historial de cada paciente, con sus datos personales, la fecha de entrada en la
clnica, la fecha de salida (cuando se vaya de la clnica), habitacin que ocupa, el tipo de
enfermedad, el historial del paciente y la lista de medicamentos que le tienen que ser administrados.
La administracin de medicamentos es realizada por las enfermeras de la clnica.
- Las enfermeras trabajan por turnos, de forma que los pacientes estn atendidos durante las
veinticuatro horas del da. Dentro de un turno de trabajo, cada dos horas, una enfermera consulta a
qu pacientes tiene que administrar medicamentos en esas dos horas, las cantidades y el horario
exacto.
- Cuando ya ha administrado el medicamento al paciente, actualiza el historial personal del paciente
en la hora y da, indicando la cantidad de producto administrado. Si una enfermera lo considera
necesario, puede pedir orden de que un mdico visite a un paciente fuera del horario habitual de
visitas. Esta orden tambin es se registra en la base de datos.
Los mdicos se agrupan en tres actividades: visitar a los enfermos (los que no se pueden mover de
sus habitaciones), operar, o consultar (para aquellos enfermos que s pueden acercarse a las salas de
consulta).
- Estos mdicos nunca atienden a enfermos que no estn ingresados en el hospital.
- Cuando un mdico empieza su jornada de trabajo recibe una lista con la lista de pacientes que
tiene que visitar, consultar u operar.
Por ltimo, cuando el personal administrativo del hospital recibe la baja de un paciente, elabora
una factura que, despus de ser pagada genera una "orden de salida" tras al cual el paciente puede
abandonar el hospital.
Cada trabajador, cuando completa su jornada (o durante sta, si tiene un rato libre) actualiza en un
terminal la informacin necesaria que indique las tareas pendientes que ya ha completado y para
que, caso de que sea necesario, el resultado de esas tareas se haga llegar al siguiente trabajador del
hospital.

El modo de operacin de este hospital en mediante flujos de trabajo, de forma que en cada
lugar que se precisa hay un terminal donde para cada trabajador del hospital se indica el tipo de
actividades que tiene que hacer en cada turno de trabajo (dependiendo de su funcin en el hospital).

Dado este escenario de trabajo se pide:
1) Proponer y justificar una arquitectura adecuada para este SGBD. Realizar un esquema de la
estructura general del sistema. (Se pide la arquitectura y no el diseo de las tablas de la Base de
Datos) (1 punto)
2) Representar la especificacin completa de flujo de trabajo para este hospital. (2 puntos)
3) Utilizando la representacin anterior, explicar como funcional el SGBD para la siguiente situacin
Un enfermo A que entra en el hospital un jueves con apendicitis, es atendido
en la habitacin H200 el mdico B ese da por la noche quien ordena que se
le receten dos medicamentos distintos M1 y M2. En enfermo A entra en
quirfano el viernes por la maana y es operado por el mdico C, pasa un
postoperatorio de 3 das en el que lo medican con un tercer medicamento, M3,
que le administran cada 4 horas y que abandona el hospital el martes de la
semana siguiente, habiendo pagado previamente el coste de la operacin y de
estancia en el hospital, en la seccin administrativa del hospital. (1
punto)
4) Cmo se asegura la atomicidad y la consistencia en este SGBD? (0,5 puntos)

Solucin

1) La arquitectura ms adecuada para esta situacin sera un servidor de transacciones, porque:
Proporciona una arquitectura servidor-cliente para el tratamiento de muchas peticiones para
pequeas cantidades de datos.
Proporcionan una interfaz para las peticiones y admiten varios protocolos para facilitar el
intercambio de informacin (p. ej.: ODBC, JDBC, RPC, etc.), en este caso, los accesos
desde los terminales dentro de la empresa y fuera a travs del servidor Web.
Ventajas sobre un sistema centralizado:
o una mejor funcionalidad respecto al coste,
o una mayor flexibilidad para localizar recursos,
o facilidad de expansin,
o mejores interfaces de usuarios,
o un mantenimiento ms sencillo

Que resultara en la siguiente arquitectura:














2)





















3)

Servidor de
transacciones
red local
Motor SQL
interfaz de
usuario SQL
interfaz de
formularios
interfaz
grfica
diseador de
informes
Cliente Cliente Cliente Cliente Cliente Cliente
consulta a qu
pacientes tienen
que dar medicamentos
(cada dos horas)
y actualizar la lista
de trabajo pendiente
Enfermeras
Mdicos
Personal
administrativo
Pacientes
servidor de transacciones
dar medicamentos
actualizar datos de paciente, pedir
orden de que un mdico visite a un
paciente
pedir orden de
que un mdico
visite a un paciente
visite a un paciente
Quirfano
Consultorio
ver al mdico
ser operado
hacer

consultas
realizar
operaciones
recibir lista de pacientes que tienen
que visitar, consultar u operar
y actualizar la informacin sobre el
trabajo pendiente
dar de alta los pacientes: almacenar los datos
personales, fecha de entrada, habitacin,
enfermidad, historial, medicamentos

dar de baja los pacientes: elabora la factura y
genera el orden de salida despus de su pago
entregar datos al principio del
estancia y pagar la factura al final
ordenar la baja de los pacientes
Etapa de la historia Funcionamiento del hospital mediante flujos de trabajo
Un enfermo A que entra en el hospital un jueves con
apendicitis, es atendido en la habitacin H200
El paciente entrega sus datos al personal administrativo del
hospital y est asignada la habitacin H200. Sus datos estn
almacenados en el servidor de transacciones (a partir de
ahora, SdeT)
el mdico B ese da por la noche quien ordena que se le
receten dos medicamentos distintos M1 y M2.
A empezar a trabajar, el mdico B, recibe los datos del
paciente A en la lista de pacientes que hay que visita, y
despus de su visita, recete M1 y M2 que se almacena en el
SdeT
En enfermo A entra en quirfano el viernes por la maana y
es operado por el mdico C,
A empezar a trabajar, el viernes por la maana, un enermero
ver que se va a operar el paciente A y le llevar al
quirfano. El mdico B, recibir los datos del paciente A en
la lista de pacientes que hay operar, y despus de su
operacin, recetar M3 que se almacena en el SdeT
pasa un postoperatorio de 3 das en el que lo medican con un
tercer medicamento, M3, que le administran cada 4 horas
Los enfermeros tratar el paciente A con M3 durante los 3
das y un mdico tendr de darle de baja el martes por la
maana
y que abandona el hospital el martes de la semana siguiente,
habiendo pagado previamente el coste de la operacin y de
estancia en el hospital, en la seccin administrativa del
hospital.
El personal administrativo har la factora para la paciente, y
despus de pagarlo, el paciente A puede salir del hospital


4) La atomicidad y consistencia estarn controladas por el SGBD que tiene el servidor de
transacciones.








EXMEN SGBD FEBRERO 2000 SEGUNDA SEMANA

Pregunta 1. Tiempo estimado 50 minutos (4.5 puntos)

Una empresa de venta directa de msica (cuyo motivo de xito es la posibilidad que tiene el cliente de
seleccionar su propia mezcla de msica de artistas distintos para un mismo CDROM) ha aguantado
varios aos con una sola base de datos, centralizada, que contena datos sobre productos, ventas,
cuentas de clientes, etc. Con el xito de la empresa que ha venido principalmente con su lanzamiento
en Internet y la expansin y los cambios que tienen previstos, sus responsables se vieron obligados a
actualizar sus sistemas informticos y su base de datos. Por lo tanto, se ha preparado el siguiente diseo
para sus nuevos sistemas de bases de datos:

Red corporativa
Dpto. de Ventas
Base de datos paralela
Dpto. de Pedidos
Servidor de transacciones
Dpto. de Administracin
y Marketing
Base de datos actual
Dpto. de Servicios
y Produccin
Servidor de datos
Servidor Web
Sistema de control de acceso

El servidor de transacciones en el Departamento de Pedidos tendr los pedidos actuales de los
clientes. Habr acceso desde muchas terminales dentro del departamento (gente entrando y
procesando las peticiones), adems de peticiones va el sistema de control de acceso que se originen
en la Web. Se prevn muchos accesos de pequeas cantidades de datos y que el tamao de los datos
en el servidor no aumente significativamente en los prximos aos.
La base de datos paralela en el Departamento de Ventas tendr toda la informacin sobre las
cuentas de los clientes. Se prevn muchos accesos de cantidades variables de datos y que tanto el
tamao de la base de datos como el nmero de accesos aumente en los prximos aos.
El servidor de datos en el Departamento de Servicios y Produccin (adems de tener todos los
datos usados en la construccin y control de las pginas Web enviadas al servidor Web)
principalmente tendr versiones digitales de la msica que vende la empresa y que se usa en el
departamento para copiar desde el servidor a una mquina de preparacin de los CDROM.
La base de datos actual de la empresa en el Departamento de Administracin y Marketing est
siendo utilizada para recopilar y guardar datos de las otras bases de datos con el fin de facilitar la
gestin de la empresa.

1. Justifique la eleccin y uso de las bases de datos y los servidores de transacciones y datos en su
papel previsto en la empresa. Qu problemas podran ocurrir con el sistema? (1 punto)
2. Es imprescindible que el Departamento de Administracin pueda seguir el rendimiento de los
sistemas. Cules son las dos medidas principales para medir el rendimiento de los sistemas de
bases de datos? (1 punto)
3. Se ha previsto que la base de datos paralela en el Departamento de Ventas aumente su tamao en el
futuro. Para que su rendimiento siga igual en el futuro, la ganancia de ampliabilidad es ms
importante (como medida) que la ganancia de velocidad, segn qu criterio(s)? Qu tipo de
ampliabilidad es el ms relevante? (1 punto)
4. El sistema de la base de datos actual puede tratar (con la adicin del software adecuado) a los otros
tres sistemas (el servidor de transacciones, la base de datos paralela y el servidor de datos) como si
fuera una base de datos distribuida, donde el sistema de la base de datos actual funcionar como el
coordinador. Explicar en la hoja adjunta el funcionamiento de este sistema distribuido siguiendo un
protocolo de compromiso en dos fases (y suponiendo que todos los emplazamientos terminan con
xito) cuando el coordinador hace las siguientes peticiones a cada emplazamiento:

Dpto. de Pedidos
Servidor de transacciones
Dpto. de Ventas
Base de datos paralela
Dpto. de Servicios y Produccin
Servidor de datos
Devuelva la seleccin de msica
en la peticin activa del cliente X
(se supone que slo hay una
peticin).
Devuelva el estado actual de
la cuenta del cliente X.
Devuelva el tamao del conjunto de la
msica elegido por el cliente X en su
peticin actual.

Solucin

1. Justificacin de la eleccin y uso de los sistemas de bases de datos en la empresa:

Servidor de transacciones:
Proporcionan una interfaz para las peticiones y admiten varios protocolos para facilitar el
intercambio de informacin (p. ej.: ODBC, JDBC, RPC, etc.), en este caso, los accesos desde los
terminales dentro de la empresa y fuera a travs del servidor Web.
Ventajas sobre un sistema centralizado:
o una mejor funcionalidad respecto al coste,
o una mayor flexibilidad para localizar recursos,
o facilidad de expansin,
o mejores interfaces de usuarios,
o un mantenimiento ms sencillo.

Base de datos paralela:
Alta velocidad de procesamiento y de E/S de datos, en este caso, el tratamiento de muchos accesos
de cantidades variables de datos.
Facilidad de amplificacin de la base de datos, en este caso, necesario para responder al aumento de
accesos en los prximos aos.

Servidor de datos:
Permite interacciones flexibles entres los usuarios y los datos, para grandes datos, en este caso,
accesos a las versiones digitales de la msica dentro del departamento (para la produccin de los
CDROM) y de los datos enviados al servidor Web para incorporar en las pginas Web de la
empresa.
Se utilizan servidores de este tipo en redes locales de alta velocidad para poder tratar con la
transferencia de grandes cantidades de datos.
Se puede usar cache de varios tipos (p. ej. datos, bloqueos) para incrementar su velocidad.

Base de datos actual:
No tiene ningn rasgo especial para la recopilacin y almacenamiento de informacin de los otras
sistemas, solamente el hecho de que ya tena la empresa este sistema...

El mayor problema que podra tener una empresa que est usando tal combinacin de sistemas de base
de datos distintos es el mantenimiento. Es decir, que hay cuatro bases de datos distintos, cada una
requerir un conocimiento distinto.

2. Ganancia de velocidad y ampliabilidad.

3. La ganancia de ampliabilidad est relacionada con la capacidad del sistema para procesar tareas ms
largas en el mismo tiempo mediante el incremento de los recursos del sistema.

Hay dos tipos de ampliabilidad: por lotes y por transacciones. En este caso la ampliabilidad por lotes es
lo ms importante porque aumenta el tamao de la base de datos.

4.
Servidor de transacciones
Dpto. Pedidos (D.P.)
Base de datos paralela
Dpto. Ventas (D.V.)
Servidor de Datos, Dpto. de Servicios y
Prod. (S.P.)
Base de datos actual, Dpto. de Admin. y
Marketing (A.M.)
Reg. Hist. Mensaje Reg. Hist. Mensaje Reg. Hist. Mensaje Reg. Hist. Mensaje
Co
m.
Fase
E DP <preparar>
E DV <preparar>
E SP <preparar>

*1
R AM <preparar> R AM <preparar> R AM <preparar>
<DP lista> <DV lista> <SP lista>
E AM <DP lista> E AM <DV lista> E AM <SP lista>
R <DP lista>
R <DV lista>
R <SP lista>

*2
DP <preparado>
DV <preparado>
SP <preparado>







1
E DP <peticin1>
E DV <peticin2>
E SP <peticin3>

*3
R AM <peticin1> R AM <peticin2> R AM <peticin3>
<peticin1> <peticin2> <peticin3>
E AM <DP
comprometida>
E AM <DV
comprometida>
E AM <SP
comprometida>

R DP <comprometida>
R DV <comprometida>
R SP <comprometida>

*4
<BD
comprometida>








2

Notas:

*1: La base de datos actual en Admin. y Marketing enva un mensaje de preparacin a cada localidad.
Cada localidad aade una nota en su registro histrico que est preparado y contesta.
*2: Al recibir un mensaje de cada localidad, la base de datos en Amin. puede aadir sus estatus a su
registro histrico. Esto finaliza la fase 1.
*3: La base de datos actual en Admin. y Marketing enva un mensaje de peticin de datos (distinto) a
cada localidad. Al recibir la peticin, cada localidad va a aadir una entrada en su registro histrico,
procesarla, y devolver los resultados junto con un mensaje mostrando su estatus como comprometido.
*4: Al recibir el mensaje, la base de datos de Admin. puede aadir una entrada a su registro histrico
mostrando que la base de datos se ha comprometido. Es el final de fase 2.








Pregunta 2. Tiempo estimado 50 minutos (3.5 puntos)

Dada la siguiente planificacin concurrente:
T1 T2 T3 T4
leer(X)
leer(Y)
leer(Z)
X := X Y
Y := Y X
Z := Z + X + Y

leer(V)
leer(W)
leer(X)
X := X * (V+W)
W := 0

leer(U)
leer(V)
X := U + V
escribir(X)
Z := U V

escribir(X)
escribir(X)
escribir(W)

escribir(Z)
leer(W)
leer(X)
leer(Z)
W := X * Z
Z = 0
escribir(Y)
escribir(Z)



escribir(W)
escribir(Z)

a) Explicar los pasos necesarios para que el protocolo de ordenacin por marcas temporales detecte
que la planificacin no es equivalente a una planificacin secuencial. Cul sera el resultado de la
aplicacin de dicho protocolo en este caso? Cmo se podra mejorar este resultado usando la regla
de escritura de Thomas? (1 punto)
b) Para intentar evitar los problemas de bloqueo se invent el protocolo de bloqueo de dos fases.
Aunque este protocolo asegura la secuencialidad de las transacciones, tiene un problema, cul es,
y cmo se ha solucionado? (1 punto)
Qu diferencia hay entre el protocolo de bloqueo de dos fases refinado y las versiones del bloqueo de
dos fases presentadas en el apartado (b)? Realizar una planificacin concurrente equivalente a la
planificacin secuencial usando este protocolo. (1,5 puntos)

Solucin

Puntos conflictivos T1 T2 T3 T4
leer(X)
leer(Y)
leer(Z)
X := X Y
Y := Y X
Z := Z + X + Y

leer(V)
leer(W)
leer(X)
X := X * (V+W)
W := 0

leer(U)
leer(V)
X := U + V
escribir(X)
Z := U V

*1 escribir(X)
*2 escribir(X)
escribir(W)

escribir(Z)
leer(W)
leer(X)
leer(Z)
W := X * Z
Z = 0
*3 escribir(Y)
escribir(Z)



escribir(W)
escribir(Z)

A) Cada elemento de datos tendr una marca temporal de escritora y de lectura. A toda transaccin Ti
del sistema se le asocia una nica marca temporal fijada. Cada vez que hay que realizar una accin de
escritura o lectura, el sistema consultar la marca temporal de la transaccin y del elemento de datos.

Las instrucciones conflictivas estn indicadas en la tabla en gris:

*1: Cuando T1 intenta escribir(X) el sistema va a notar que su marca temporal es menor que la del
elemento X (debido al hecho que T3 lo ha cambiado). Por lo tanto, segn el protocolo, no est
permitido escribir(X) y se retrocede T1.
*2: Pasa lo mismo con T2. Por lo tanto, se retrocede T2.
*3: Pasara lo mismo con T1 con respeto a Z si no fuera por el hecho que se lo ha retrocedido
anteriormente.

La regla de Thomas evita la necesidad de retroceder las transacciones T1 y T2 (porque es correcto que
la base de datos queda con lo que ha escrito T3), y simplemente se ignoran las instrucciones escribir(X)
de T1 y T2 y escribir(Z) de T1.

B) No evita los problemas de interbloqueo. Se ha producido dos versiones con extensiones para evitar
este problema: el protocolo de bloqueo estricto de dos fases y el protocolo de bloqueo riguroso de dos
fases.

C) La posibilidad de subir y bajar los bloqueos entre bloqueos compartidos y exclusivos.

T1 T2 T3 T4
Fase Fase Fase Fase
bloquear_C(X)
bloquear_C(Y)
bloquear_C(Z)
leer(X)
leer(Y)
leer(Z)
X := X Y
Y := Y X
Z := Z + X + Y

bloquear_C(V)
bloquear_C(W)
bloquear_C(X)
leer(V)
leer(W)
leer(X)
X := X * (V+W)
W := 0

1

1
1 bloquear_C(U)
bloquear_C(V)
leer(U)
leer(V)
X := U + V

subir(X)
escribir(X)

subir(Y)
escribir(Y)
subir(Z)
escribir(Z)

2 desbloquear(X)
desbloquear(W)
desbloquear(Z)

bloquear_C(W)
bloquear_C(X)
bloquear_C(Z)
leer(W)
leer(X)
leer(Z)
W := X * Z
Z = 0


subir(X)
escribir(X)
subir(W)
escribir(W)

2 desbloquear(X)
desbloquear(W)



bloquear_X(X)
escribir(X)
Z := U V
subir(Z)
escribir(Z)

2 desbloquear(U)
desbloquear(V)
desbloquear(X)


1
subir(W)
escribir(W)
subir(Z)
escribir(Z)


2 desbloquear(W)
desbloquear(X)
desbloquear(Z)


Pegunta 3. Tiempo estimado 50 minutos (2 puntos)

Los temas de rboles B+ y indexacin ya no entra en esta asignatura y por lo tanto, la pregunta 3 que tratan estos temas no
est incluida aqu.
EXMEN SGBD SEPTIEMBRE 2000

Pregunta 1. Tiempo estimado 30 minutos (3 puntos)

1. Por qu es necesario que una base de datos controle la interaccin de las transacciones concurrentes? Cules son las
otras propiedades que se pueden destacar sobre el control de las transacciones?
2. Cules son los dos tipos de secuencialidad y en qu se diferencian? Cules son los pasos necesarios para poder
comprobar cada tipo de secuencialidad?
3. Dada la siguiente planificacin:

T
1
T
2
T
3

leer(A)
leer(B)
escribir(A)
leer(B)

leer(A)
escribir(A)
escribir(B)
escribir(A)

escribir(B)
escribir(B)

Aplicar los pasos redactados en el apartado dos para comprobar que esta planificacin es (o no es) secuenciable.

Solucin:

1. Para conseguir la propiedad de aislamiento, destacado entre las cuatro propiedades importantes del control de las
transacciones:

Atomicidad (asegura que o bien todos los efectos de la transaccin se reflejan en la base de datos, o bien ninguno de
ellos lo hace),
Consistencia (asegura que si la base de datos es consistente inicialmente, la ejecucin de la transaccin deja la base de
datos en un estado consistente),
Aislamiento (asegura que en la ejecucin concurrente de transacciones, stas estn aisladas unas de otras, de tal manera
que cada una tiene la impresin de que ninguna otra transaccin se ejecuta concurrentemente con ella),
Durabilidad (asegura que una vez que la transaccin se ha comprometido, las actualizaciones hechas por la transaccin
no se pierden).

2. Se puede destacar dos tipos de secuencialidad, secuencialidad en cuanto a conflictos y secuencialidad en cuanto a vistas.
Se puede comprobar la secuencialidad en cuanto a conflictos en un tiempo del orden de n
2
, siendo n el nmero de
transacciones, construyendo un grafo de precedencia para dicha planificacin y viendo que no hay ciclos en el grafo. Y se
puede comprobar la secuencialidad en cuanto a vistas en un tiempo del orden de 2
n
, construyendo un grafo de precedencia
etiquetado y viendo que no hay ciclos en el grafo. Se construye el grafo de precedencia etiquetado para la planificacin P
segn el algoritmo:

Sea S una transaccin concurrente sobre un dato Q ( si la transaccin accede a ms de un dato se aplica el algoritmo para
cada dato)
1. Aadir la transaccin T
c
al principio de la planificacin S, con una nica sentencia escribir(Q)
2. Aadir la transaccin T
f
al final de la planificacin S con una nica sentencia leer(Q)

CONSTRUIR EL GRAFO DE PRECEDENCIA
3. Cada transaccin T
i
de la planificacin S pasa a ser un nodo del grafo de precedencia
3.1. Para cada transaccin T
j
que lee un dato que fue escrito por la transaccin T
i
se aade un arco T
i
T
j
etiquetado
con 0
3.2. Se eliminan todos nodo intiles: aquellos nodos desde los que, siguiendo los arcos que salen de l, los que no se
puede llegar al nodo T
f

3.3. Se identifican las transacciones que tienen leer(Q) y para esas transacciones
se busca el T
j
que escribi el dato Q (es decir, la transaccin que tiene escribir(Q) ms cerca, antes), y
se busca cualquier transaccin T
k
que ejecuta escribir(Q) antes o despus de T
i
y de T
j
,

tal que T
k
T
b

3.4. Para cada T
i
, T
j
y T
k
identificados en el punto 3.3 se inicializa un contador p=1 aaden arcos al grafo de
precedencia considerando lo siguiente:
3.4.1. Si T
i
=T
c
y T
j
T
f
, entonces se hace un arco T
j
T
k
etiquetado con 0
3.4.2. Si T
i
T
c
y T
j
=T
f
entonces se hace un arco T
k
T
i
etiquetado con 0
3.4.3. Si T
i
T
f
y T
j
T
f
entonces se hacen dos arcos T
k
T
i
y T
j
T
k
etiquetados con el valor que tiene p. Se
hace P = p +1

ESTUDIAR EL GRAFO DE PRECEDENCIA

4. Mientras no se encuentre un grafo acclico hacer el siguiente proceso. Sin considerar T
c
y T
f

4.1. Para cada arco que se gener en el caso 3.4.3 se hace un grafo.
4.2. Ver si el grafo es acclio o no. Si es acclico ya se ha demostrado que la planificacin es serializable en vistas.


3.

La secuencialidad en cuanto a conflictos: de los arcos que se puede construir por est planificacin, se pueden identificar los
siguientes:

T1 leer(A) T3 escribir(A)
T3 leer(A) T2 escribir(A)
T2 escribir(A) T1 leer(A)

Por lo tanto, se puede ver que hay un ciclo
y que la planificacin no es secuenciable en
cuanto a conflictos.

La secuencialidad en cuanto a vistas: hay que analizar la planificacin para cada variable, es decir, como se fueran dos
planificaciones, una para A y otra para B:

T1 T2 T3 T1 T2 T3
leer(A)
leer(B)
escribir(A) leer(B)
leer(A)
escribir(A)
escribir(A) escribir(B)
escribir(B)
escribir(B)

Hay que considerar cada planificacin aparte. Para la primera (la variable A):
Ti Tj Tk Regla
Tc
Tc
T3
T3
T2
T1
3a (Tj
0
Tk)
T1
T1
Tf
Tf
T3
T2
3b (Tk
0
Ti)
T2 T1 T3 3c (Tk
1
Ti y Tj
1
Tk)

Para la cual, se puede producir el siguiente grafo:







T1
T2 T3
1
T1
T2
T3
Tc Tf
1
0
0
0
0
0
Para cada arco de precedencia 1 hay que ver si existe un ciclo:

Arco T1
1
T3, hay ciclo: T1 T3 T2 T1

Arco T3
1
T2, no hay ciclo, por lo tanto se puede concluir que como existe una planificacin donde no hay un ciclo, la
planificacin es secuenciable en cuanto a vistas.



Problema 2. Tiempo estimado 45 minutos (3 puntos)

1. Cules son las ventajas y desventajas de la paginacin en la sombra y el registro histrico?
2. De qu manera se pueden usar los puntos de revisin para reducir el efecto de uno de los problemas principales del
registro histrico?
3. En el registro histrico hay dos esquemas de modificacin, cules son y en qu se diferencian?
4. Dada la siguiente planificacin (donde inicialmente A = 100; B = 200; C = 300):

T
1
T
2
T
3

leer(C)
A = 0.5 * C
leer(B)
B = B + 10

A = 10
escribir(A)
leer(B)

escribir(A)
leer(A)
escribir(B)
B = A * B
escribir(B)

leer(B)
B = B / C
escribir(B)

1. Mostrar el estado del registro histrico para esta planificacin para los dos tipos de esquemas de modificacin.
2. Si se cae el sistema (en los puntos *1 y *2), qu estado tendr la base de datos en cada caso y cmo se recupera el
sistema?
3. Qu efecto tendra el punto de revisin p1 en el registro histrico y el estado de la base de datos?

Solucin:

1.
la paginacin en la sombra el registro histrico
ventajas es ms fcil recuperar ocupa poco espacio
con los puntos de revisin, se puede reducir el consumo de tiempo
desventajas ocupa ms espacio ms lento y difcil a la hora de recuperar


2. Se puede usar los puntos de revisin para ahorrar espacio y tiempo a la hora de recuperar la informacin porque, cuando
se escribe un punto de revisin en el registro histrico, toda la informacin referenciado antes de este punto pasar al
almacenamiento estable, y se puede borrar el registro histrico antes de este punto. Por lo tanto, a recuperar el sistema y
encontrar un punto de revisin, se sabe que no hay que seguir ms.

3. Los dos esquemas de modificacin son el inmediata y el diferida. La diferencia es:

el esquema de modificacin inmediata: se producen los cambios en la base de datos despus de cada operacin de
escritura.
*2
*1
Punto de revisin, p1
el esquema de modificacin diferida: se producen los cambios en la base de datos cuando se ha comprometida la
transaccin.

4.
A = 100; B = 200; C = 300
T
1
T
2
T
3
Puntos Modificacin Inmediata Modificacin Diferida
R. Histrico Base de datos R. Histrico Base de datos
leer(C)
A = 0.5 * C
<T1 iniciado>
<T2 iniciado>
<T3 iniciado>
<T1 iniciado>
<T2 iniciado>
<T3 iniciado>

leer(B)
B = B + 10

A = 10
escribir(A)
leer(B)
<T2, A, 100, 10> <T2, A, 10>
A = 10
*1
escribir(A) <T3, A, 100, 150> <T3, A, 150>
A = 150
leer(A)
p1
escribir(B) <T1, B, 200, 210>
<T1 comprometida>
<T1, B, 210>
<T1 comprometida>

B = 210 B = 210
B = A * B
escribir(B)
<T2, B, 200, 30000>
<T2 comprometida>
<T2, B, 2000>
<T2 comprometida>

B = 30000 A = 10
B = 2000
*2
leer(B)
B = B / C

escribir(B) <T3, B, 30000, 100>
<T3 comprometida>
<T3, B, 6.67>
<T3 comprometida>

B = 100 A = 150
B = 6.67




Punto de cada del sistema Modificacin Inmediata Modificacin Diferida
1 A = 10, B = 200, C = 300 A = 100, B = 200, C = 300
2 A = 150, B = 210, C = 300 A = 10, B = 2000, C = 300

El punto de registro p1 significa que todos los cambios que han tenido lugar sobre la base de datos antes de este punto
estarn copiado al almacenamiento estable y el registro histrico estar borrado. En el caso de la modificacin diferida,
como no se ha producido ningn cambio, no habr que hacer nada.



Problema 3. Tiempo estimado 45 minutos (4 puntos)

Dado la siguiente arquitectura de sistema de base de datos distribuido entre cuatro nodos:





Mquina
A
Mquina
B
red local
Mquina
C
Mquina
D
red local
Internet
1. Si se quiere almacenar una relacin r en la base de datos distribuida que hay en la figura, qu estrategias hay
disponibles? Cules son las ventajas y problemas de cada una?
2. Para una arquitectura de este tipo lo imprescindible es su transparencia al usuario a la hora de intenta acceda a la
relacin r. Un factor importante en esta es la denominacin de los elementos de datos, es decir, que cada relacin
debera tener un nombre nico. Por qu es un problema y cules son dos soluciones?
3. Dado que la base de datos en la mquina A est intentando transferir datos a la mquina D, que seran el efecto de:
a. D falla,
b. la conexin por Internet falla,
c. la conexin por Internet es intermitente,
d. la red local entre C y D est sobrecargado.
Podra la mquina A distinguir entre los casos a - d?


Solucin

1. Las estrategias disponibles son:

Replicacin de los datos en todas las mquinas:
o Ventajas: mayor disponibilidad de datos y aumento del paralelismo (solo lectura)
o Desventaja: aumento de la sobrecarga en las actualizaciones
Fragmentacin de los datos entre las mquinas (horizontal, vertical, o horizontal y vertical):
o Ventaja: no sufra el problema de sobrecarga en las actualizaciones
o Desventajas: da lugar a fragmentos donde la informacin aparece en varios sitios o donde un tupla est
sesgado entre varios lugares
Replicacin y fragmentacin, una combinacin de las dos estrategias anteriores, donde el sistema conserve varios
replicas de cada fragmento

2. Es importante que cada relacin tenga un nombre nico para evitar problemas de acceso y modificacin. Los dos
soluciones a este problema son:

Registrar todos los nombres en un servidor de nombres, as, se puede asegurarse que no se utilice el mismo nombre
en ms que un sitio. Se puede utilizar este servidor para ubicar un elemento de datos. Hay dos problemas:
o puede convertirse en un cuello de botella si demasiados peticiones
o si se cae el servidor, no se puede acceder a los datos
Cada emplazamiento puede aadir como prefijo un indentificador de emplazamiento para que no haya dos nombres
idnticos en la red:
o Ventaja: no necesita ningn control central
o Desventaja: no logre conseguir la transparencia de la red dado que los indentificadores de los
emplazamientos estn ligados a los emplazamientos.
3.
a. S D falle puntualmente, se recupere de su registro histrico
b. Se de cuenta y aborte
c. Idntico a la respuesta anterior
d. Como b, depende de tiempo

Demonstration copy of activePDF Toolkit (http://www.active4.com)






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
PREGUNTA 1. Tiempo estimado 40 minutos 3,5 puntos
Una empresa de tamao medio dispone de una base de datos que comprende las siguientes relaciones: Cliente
(idCliente, nombre, apellidos, actividad, moroso), ProductosCompradoCliente(idFactura,
idProducto, idCliente, cantidad), Factura(idFactura, bolean pagada, Fecha de expedicin),
donde los atributos subrayados forman clave primaria. Debido a su amplia implantacin, la empresa se ha decido a
implantar un sistema cliente/servidor. Las transacciones que se efectan con ms frecuencia son:
tipo 1: Listado de clientes morosos.
tipo 2: Cantidad de productos que consume un cliente determinado c.
tipo 3: Emisin de una factura para un producto p.
1 Qu opciones de diseo son posibles para el servidor? Explcalas brevemente y seala en qu se diferencian. (0,5
puntos)
2 Se dispone de un servidor da altas prestaciones.
i. Propn dos opciones diferentes para implementar el servidor que se beneficien de este hecho, explicando en qu
consiste cada una. (0,5 puntos).
ii. Explica cmo se implementan las transacciones para cada una de estas opciones. Puedes ayudarte de sentencias
SQL u operadores relacionales. (0,5 puntos)
3 Se ha observado que se realizan con mayor frecuencia consultas de tipo 1 y de tipo 2.
i. Explica y justifica cul sera el servidor ptimo en este caso y enumera sus caractersticas ms importantes (0,5
puntos).
ii. Explica y justifica cmo tiene lugar una transaccin de tipo 3 si anteriormente otro cliente distinto ha efectuado
el mismo tipo de transaccin (0,5 puntos)
4 Debido al creciente uso de tcnicas de anlisis de datos, el departamento de Marketing ha adquirido un paquete
estadstico de anlisis de datos, que es instalado en su nodo. En la fase de pruebas, se observa que una consulta tarda
80 segundos en completarse, inaceptable a juicio del responsable del departamento. Debido a esto, a la mquina del
departamento que inicialmente tiene 1 procesador se le aaden 3 procesadores ms. Teniendo en cuenta que la
consulta tiene un cdigo secuencial que invariablemente tarda 10 s. qu porcentaje del cdigo deber paralelizarse
para obtener una ganancia en velocidad lineal? (1 punto)
Solucin
1.- La nica restriccin impuesta en el enunciado es que se trata de un sistema cliente/servidor, luego las posiblidades son
un servidor de transacciones o un servidor de datos. Los servidores de transacciones (o de consultas) ofrecen al programa
cliente un interfaz a travs del cul pueden enviar sus consultas. Los servidores de datos permiten a los clientes que stos
enven sus peticiones de lectura o modificacin de datos. (pg 401)

2.-
i) Si disponemos de un servidor de altas prestaciones es preferible implementar un serividor de transacciones,
precisamente para aprovechar la capacidad de procesamiento del servidor. Para ello podemos utilizar un interfaz como
JDBC u ODBC, que ofrecen un interfaz de acceso a Bases de Datos y permite enviar las consultas/actualizaciones al
servidor, o bien un interfaz de llamadas a procedimientos remotos de transacciones, donde las transacciones ya estn en el
servidor. (pg 402)

ii) Para el primer caso (ODBC, JDBC), bastara con definir las sentencias en la conexin a la base de datos.:
tipo1: sera una consulta tipo select sobre cliente, comprobando si es moroso
tipo 2: join de Cliente y productoComprado
tipo 3: insercin de una tupla en la relacin Factura.
En el caso de RPC (llamadas a procedimientos remotos) o procedimientos almacenados, se deberan definir las
transacciones anteriores en procedimientos con los parmetros adecuados, para luego ser llamados por el programa
cliente.

3.-
i) Las transacciones tipo1 y tipo2 correspoden a transacciones de slo lectura. Por ello, sera beneficioso utilizar un
servidor de datos, ya que aprovecharamos el escaso impacto de las actualizaciones. Un servidor de datos est
caracterizado por :
Envo de pginas o de elementos,
Bloqueos,
Cach de datos y
Cach de bloqueos.

Primera semana






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
ii) Si un cliente (cliente 1) ha realizado una insercin y despus otro cliente (cliente 2) realiza otra insercin sobre Factura:
1) Cliente 1 obtiene un bloqueo sobre Factura y el servidor de datos notifica a los clientes para que modifiquen su
cach de bloqueos
2 ) Ciente1 realiza efectivamente la insercin en Factura y el servidor de datos notifica a los clientes de la insercin
para que modifiquen su cache de datos.
3) cliente 2 encuentra que en su cach de bloqueos no tiene un bloqueo actualizado y solicita uno.
4) servidor da un bloqueo
5) cliente 2 encuentra que en su cach de datos no estn lo ltimos datos y los solicita.
6) el servidor enva (p.e. en pginas) los datos.
Cliente 2 tiene guardados su bloqueo y sus datos en sus cachs respectivas.

4) Hemos aadido 3 proc., luego tenemos 4 y N=4. Para que tengamos ganancia en velocidad lineal,

tiempo pequeo/ tiempo grande = N,

es decir, 80 / (10 + tparalelo) = 4

tparalelo = 10 segundos.

ttotal = tsec + tparalelo = 10 + 10 = 20 segundos

luego se deber paralizar el 50 % de la ejecucin.

PROBLEMA 2. Tiempo 40 minutos 3.5 puntos
1. Qu es un SGBDOO y cules son las ventajas que aporta frente a un SGBD relacional estndar? Cmo se usara
junto con un programa realizado en un lenguaje de programacin orientada a objetos? (1 punto)
2. Un SGBDOO incorpora tanto los puntos fuertes de un SGBD como los de cualquier sistema orientado a objetos: se
pueden caracterizar unas ocho caractersticas de este tipo de sistema, cules son al menos cuatro de ellas? (0,5
puntos)
3. Qu papel tienen los IDO (identificadores de objeto) en los SGBDOO y cmo se construyen? (1 punto)
4. Hay que desarrollar un SGBDOO para almacenar informacin de una empresa de alquiler de vehculos. Destaque
claramente los objetos que hay que almacenar en la base de datos mostrando las cuatro caractersticas descritas en el
apartado 2. (1 puntos)
Solucin:
1.
- Un SGBDOO es un sistema de objetos y un sistema de bases de datos. Soporta identidad, encapsulamiento,
clases, herencia, etc., as como persistencia, recuperacin, concurrencia, etc. (0,5)
- Las aplicaciones realizados en un lenguaje de programacin orientada a objetos pueden tratar directamente con
objetos, no teniendo que hacer la traduccin a tablas o registros (como se hace para base de datos relacionales)
(0,5).

2. Abstraccin, encapsulamiento, modularidad, jerarqua, tipos, concurrencia, persistencia y genericidad. (0,5 para cuatro)

3.
- Los IDO (identificador de objeto) permiten la identificacin de los objetos dentro de la base de datos de una
forma de que dos objetos sern diferentes si tienen IDO diferentes. (0,5)
- Los IDO pueden ser fsicos o lgicos. Los IDO fsicos contienen la direccin real del objeto, mientras que los
lgicos son un ndice a partir del cual se obtiene la direccin real. (0,5)

4. Hay muchas manera de destacar los objetos que habr que almacenar, pero el siguiente diseo los hace de una forma
clara, indicando las caractersticas de abstraccin, jerarqua, modularidad y tipo:






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003

Vehculo
marca, matrcula,
nmero de identificacin,
nmero de kilmetros
DatosMotor
estado actual del depsito,
tipo de motor (gasolina / gasoil)
DatosChasis
nmero de puertas
nmero de asientos
Moto
estado actual del
depsito de gasolina
Furgonetas
estado actual del
depsito de gasoil,
capacidad de carga,
altura
Coches (turismos)
nmero de puertas
tipo (normal / familiar)
Coches (4x4)
nmero de asientos
Coches (deportivos)
estado actual del
depsito de gasolina,
capacidad de motor,
turbo o no
Monovolumenes
puertas laterales,
capacidad de carga
Relaciones de herencia, una
jerarqua de objetos
Cada clase de objeto es
una abstraccin de
datos. Y representa un
tipo de datos.
Se puede ver la modularidad del sistema
en trminos de la separacin de la
informacin pertinente en cada clase.
Empresa de alquilers
Conjunto de clientes
Relacin de uso.


Problema 3. Tiempo estimado 40 minutos 3 puntos
Considere la siguiente planificacin S de transacciones concurrentes:

T1 T2 T3 T4
leer(B)
escribir(B)
leer(A)
leer(B)
escribir(A)
escribir(C)
leer(B)
leer(C)
leer(B)
1. Estudie la secuencialidad en cuanto a conflictos y, en caso de que
fuera secuenciable, muestre la planificacin secuencial equivalente
(1 punto).
2. Utilizando el protocolo de rbol, segn el grafo:
haga una planificacin secuenciable utilizando este protocolo (1
punto).
3. Dado que el tiempo inicial t=0, aplica el algoritmo de marcas
temporales a esta planificacin para establecer su concurrencia,
incluyendo los marcas temporales en la solucin (1 punto).



1. Se puede ver en la planificacin que:

T1 ejecuta escribir(B) antes de que T2, T3 y T4 lo lee, por lo tanto hay arcos T1 T2, T1 T3 y T1 T4
T3 ejecuta escribir(C) antes de que T2 lo lee, por lo tanto hay un arco T3 T2
T2 ejecuta leer(A) antes de que T4 lo escribe, por lo tanto hay un arco T2 T4

Por lo tanto, la secuencialidad de la planificacin en cuanto a conflictos es:


T1 T2
T3 T4
Es decir, que no hay ciclos y por lo tanto es una planificacin secuencial en cuanto a conflictos (0,5).

A

B

C






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
Y la planificacin secuencial equivalente tendra el siguiente orden: T1, T3, T2 y T4 (0,5).

2. Utilizando el protocolo de rbol tendremos la siguient planificacin:

T1 T2 T3 T4
bloquear_X(B)
leer(B)
escribir(B)
desbloquear(B)
bloquear_X(A)
leer(A)
bloquear_X(B)
leer(B)
bloquear_X(C)
escribir(C)
desbloquear(B)
desbloquear(C)
bloquear_X(B)
desbloquear(A)
bloquear_X(A)
escribir(A)
bloquear_X(C)
leer(B)
leer(C)
desbloquear(B)
desbloquear(C)
bloquear_X(B)
leer(B)
desbloquear(A)
desbloquear(B)

3. Utilizando el algoritmo de marcas temporales tenemos la siguiente planificacin:

Utilizando el valor del reloj como marca temporal, cada transaccin est dado una marca temporal segn el orden en que
lleguen.
Suponemos que:
- MT(T1) = 0, MT(T2) = 1, MT(T3) = 2 y MT(T4) = 3
- Cada variable una de lectura (L-MT) y otra de escritura (E-MT)
- Inicialmente L-MT(A,B,C) y E-MT(A,B,C) no tienen valor
Tendremos la siguiente planificacin (basado en las reglas en la pgina 355 del libro):

T1 T2 T3 T4 A B C Explicacin
MT(T1=0) MT(T1=1) MT(T1=2) MT(T1=3) Em Lm Em Lm Em Lm
Leer(B) - - - 0 - - E_marca(B) sin valor por tanto
L_marca(B)=Max(L_marca(B),MT(T1)=0)=0
Escribir(B) - - 0 0 - - MT(T1) igual que L_marca(B) y como
E _marca(B) no tienen valor por tanto
E_marca(B)= MT(T1)=0
Leer(A) - 1 0 0 - - E_marca(A) sin valor por tanto
L_marca(A)=Max(L_marca(A),MT(T2)=1)=1
Leer(B) - 1 0 2 - - E_marca(B)=0<MT(T3)=2 por tanto
L_marca(B)=Max(L_marca(B)=0,MT(T3)=2)=2
Escribir(A) 3 1 0 2 - - L_marca(A)=1<MT(T4)=3 por tanto
E_marca(A)= MT(T4)=3
Escribir(C) 3 1 0 2 2 - L_marca(C)<MT(T3)=2 por tanto
E_marca(C)= MT(T3)=2
Leer(B) 3 1 0 2 2 - E_marca(B)=0<MT(T2)=1 por tanto
L_marca(B)=Max(L_marca(B)=2,MT(T1)=1)=2
Leer(C) 3 1 0 2 2 - E_marca(C)=2 > MT(T2)=1 por tanto
Se rechaza la operacin Leer(C) y se retrocede,
asignndosele una nueva marca temporal.
Leer(B) 3 1 0 3 2 - E_marca(B)=0 < MT(T4)=3 por tanto
L_marca(B)=Max(L_marca(B)=2,MT(T4)=3)=3






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
1. PROBLEMA 1. Tiempo estimado 50 minutos 4 puntos
En una empresa de telecomunicaciones se tiene la siguiente relacin
Llamada(numAbonado, numLlamado, duracin, tipoTarifa, importe,fecha)
que es procesada en una mquina paralela de 5 discos y 5 procesadores.
Se pide:
a) El departamento de Atencin al Cliente suele responder a consultas de importe de un cliente determinado.Qu
tipo de divisin es ms conveniente para este caso? Justifica la respuesta. (0.5 puntos).
b) Supn que se tiene la siguiente tabla de frecuencias para el atributo NumAbonado

NumAbonado Frecuencia
9100001 9100005 6
9100006 9100010 3
9100011 9100015 2
9100016 9100020 7
9100021 9100025 7


1. Da una funcin de asociacin uniforme para el atributo NumAbonado. (0.5 puntos)
2. Da un vector de divisin para el atributo NumAbonado. (0.5 puntos)
3. Cmo se suelen obtener estas frecuencias minimizando la sobrecarga de E/S? (0.5 puntos)

c) En la base de datos tambin se tiene la siguiente relacin
Abonado(numAbonado, nombre, apellidos, cuentaBancaria)

Explica a nivel de paralelismo en operaciones cmo se realizara la siguiente consulta paralela, sealando la divisin
de los datos y las operaciones.
1. Listado de las llamadas que se hicieron el 22 deNoviembre de 2002 para el nmero de abonado 9100001
(0.5 puntos)
2. Listado de los abonados que llamaron entre el M y X de esta semana. (0.5 puntos)
d) Otra de las formas de aplicar paralelismo es a travs de optimizadores de consultas. Explica al menos cuatro
aspectos a tener en cuenta para implementar un optimizador de este tipo. (1 punto)
Solucin:

a) Para consultas especfcas del tipo saldo de un cliente de nombre =xxx es preferible utilizar divisin por asociacin
basadas en el atributo sobre el que se va a hacer la consulta, en este caso numAbonado. De esta forma, empleando una
buena funcin de asociacin la consulta ira a un solo disco, en lugar de tener que iniciarse en varios, y dejara los dems
discos para poder ejecutar otras consultas. (pg 418)

b)
1. Una funcin de asociacin uniforme h vendra dada por :
h(9100001)=h(9100004)=0
h(9100005)=h(9100011)=1
h(9100012)=h(9100017)=2
h(9100018)=h(9100021)=3
h(9100022)=h(9100025)=4

2.- Los valores del vector de divisin podran ser obtenidos en base a la funcin de asociacin anterior:
[v0=9100005, v1=9100012 , v2=9100018, v3=9100022]

3.- Pg 427: Muestreando relaciones, utilizando slo un subconjunto de los bloques de disco.

c) 1) Listado de las llamadas que se hicieron el 22 deNoviembre de 2002 para el nmero de abonado 9100001
Se puede emplear el algoritmo de ordenacin y reunin externas paralelas o el de ordenacin por divisin en rangos
dependiendo si ya se ha realizado una divisin previamente. Vamos a suponer que los datos no estn distribuidos por el
numAbonado:

1 .- Dividimos por rangos los datos segn el nmero de abonado
2.- No es necesario ordenarlos
3.- Se concatenan los que se refieren al nmero de abonado.
Si el resultado fuera muy grande se volvera a repetir, pero esta vez dividiendo por rangos por fecha. En este caso se recibe
la peticin en el nodo en el que se lanz la peticin y se ordena localmente all mismo.

2) Listado de los abonados que llamaron entre el M y X de esta semana
Segunda semana






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003

Una posibilidad sera emplear el algoritmo de reunin con fragmentos y rplicas asimtricos. Debido a que la relacin
Llamada es bastante mayor que la relacin Abonado:
1 se divide la relacin llamada
2 se replica Abonado
3 Pi realiza la reunin localmente
4 Se concatenan todos las tuplas correspondientes a llamadas entre el M y X de aquella semana.


d) (Pg 428. 429) A la hora de implementar un optimizador de consultas se han de considerar los siguientes aspectos:
(explicar 4 de estas 5)
Determinar los recursos (procesador, memoria) que se deben asignar a cada operacin,
Agrupar operaciones pequeas,
Evitar cauces largos,
Utilizar heursticas,
Organizacin del espacio fsico.

PROBLEMA 2. Tiempo estimado 40 minutos 3.5 puntos
1. Cules son los problemas de almacenar datos etiquetados en XML en una base de datos relacional? y por qu
importa si se trata de estructuras XML centradas-en-los-datos o centradas-en-los-documentos? (1 punto)
2. Qu es una base de datos XML nativa y cules son sus ventajas y desventajas? (1 punto)
3. Se llevan a cabo las consultas en las bases de datos relacionales utilizando SQL. Cmo se hara en una base de datos
XML nativa? Qu papel tiene la indexacin del contenido en este tipo de base de datos y la calidad de las consultas?
Cules son los problemas con la indexacin? (1,5 puntos)
Solucin:
1.
- Hay cuatro problemas (cualquier dos de estos cuatro 0,5):
1. Puede haber prdida de estructura si la jerarqua de los datos XML es compleja. Adems, la traduccin de
XML al formato de la BDR necesita un preprocesamiento adicional que resulta costoso en trminos de tiempo
y recursos.
2. Puede que se quieran hacer consultas sobre cualquier elemento o propiedad de XML, pero podra no ser
posible si el elemento no est incluido en el ndice de la base de datos.
3. Dependiendo de la manera en que los datos XML estn almacenados fsicamente, puede resultar ms rpido
recuperarlos de una base de datos XML nativa.
4. No se puede utilizar directamente alguna tecnologa relacionada con XML como, por ejemplo, las consultas
XPath, XSLT, XQL, XQuery, etc.
- Importa porque las estructuras XML centradas-en-los-datos utilizan XML como transporte para la informacin
(por ejemplo, peticiones de ventas, datos mdicos, datos cientficos), no tanto para su representacin. En este
caso, como se trata de datos estructurados, el orden literal de los elementos no tiene importancia y se podran
almacenar las estructuras en una BDR). Y las estructuras XML centradas-en-el-documento utilizan XML por sus
caractersticas de tipo SGML para representar texto, grficos, etc. (por ejemplo, artculos, libros, pginas Web).
En este caso, como se trata de datos semi-estructurados (con una estructura jerrquica muy compleja) donde el
orden literal de los elementos tiene importancia, una BDX parece ser la mejor opcin.

2.
- Se podra definir una base de datos XML nativa como un sistema de gestin de informacin (cualquier dos
para 0,5):
1. Define un modelo lgico para un documento XML (y no para los datos que contiene el documento) y
almacena y recupera los documentos segn este modelo.
2. Tiene una relacin transparente con el mecanismo subyacente de almacenamiento, que debe incorporar
las caractersticas ACID de cualquier SGBD.
3. Incluye un nmero arbitrario de niveles de datos y complejidad.
4. Permite el uso de contenido mixto y datos semi-estructurados.
5. Permite las tecnologas de consulta y transformacin propias de XML, XQuery, XSLT, etc., como
vehculo principal de acceso y tratamiento.
- Sus ventajas y desventajas son (cualquier dos ventajas y dos desventajas 0,5)






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
+ Ofrecen un acceso y almacenamiento de informacin ya en formato XML, sin necesidad de incorporar
cdigo adicional.
+ La mayora incorpora un motor de bsqueda de alto rendimiento.
+ Es muy sencillo aadir nuevos documentos XML al repositorio.
+ Se pueden almacenar datos heterogneos.
- Puede resultar difcil indexar documentos para realizar bsquedas.
- No suelen ofrecer funciones para la agregacin
- Se suele almacenar la informacin en XML como un documento o como un conjunto de nodos

3.
- El lenguaje de consulta en las bases de datos XML nativos propuesto oficialmente por la W3C es XQuery.
Pero como an no se ha acabado su proceso de diseo, y aunque hay varios motores XQuery disponibles,
existen otras alternativas como XPath y XSLT que se han usado para este fin. (0,5)
- La indexacin del contenido de una base de datos de XML nativo reduce el tiempo medio necesario para
encontrar ciertos elementos clave. (0,5)
- Dos problemas de la indexacin son (0,5):
1. La sobrecarga necesaria para mantener los ndices conducira a actualizaciones muy lentas
2. El hecho de que no se sabe qu etiquetas y atributos va a tener un documento XML antes de introducirlo
en la base de datos.


PROBLEMA 3. Tiempo estimado 30 minutos 2,5 puntos
Considere un sistema con transacciones concurrentes con un sistema de recuperacin basado en el registro histrico en el
que el contenido, referido a las 6 transacciones que analizaremos, es el siguiente:
Reg Contenido Reg Contenido Reg Contenido Reg Contenido Reg Contenido
1 <T1 iniciada> 5 <T3 iniciada> 9 <revisin S > 13 <T4 iniciada> 17 <T1 comprometida>
2 <T1; A; 11; 22 > 6 <T2; D; 99; 33 > 10 <T3; F; 30; 22 > 14 <T4; H; 22;27 > 18 <T5 iniciada>
3 <T2 iniciada> 7 <T3; E; 9; 30 > 11 <T3 comprometida> 15 <T4 comprometida> 19 <T5; C; 88; 44 >
4 <T2; C; 77; 88 > 8 <T2 comprometida> 12 <T1; G; 75; 55 > 16 <T1; B; 55;14 > 20 <T5 abortada>
1. Suponga que despus del registro n 9 hay una cada del sistema. Qu valores tendrn los datos de la Base despus de
su recuperacin (0,5 puntos)?
2. Qu valores tendrn los datos de la Base despus del registro 20 (0,5 puntos)?
3. Qu Ventajas e inconvenientes tiene la paginacin en la sombra respecto a la tcnica del registro histrico (0,5
puntos)?
4. Ilustrar la evolucin de la paginacin en la sombra para el procesamiento de las transacciones mostradas en el registro
histrico aqu (1 punto).
Solucin:

1) La nica transaccin comprometida es 2:
Hay que deshacer T1 y T3 y rehacer T2 como se trata de modificacin inmediata.

A B C D E F G H
11 55 88 33 9 30 75 22

2) A B C D E F G H
22 14 88 33 30 22 55 27

3) Ventajas:
1. Eliminacin de sobrecarga de escrituras del R H
2. Mayor velocidad en las recuperaciones ( no se precisa rehacer ni deshacer)
Desventajas:
1. Sobrecarga en el compromiso debido a que para cada transaccin comprometida se deben escribir varios bloques
(la de los datos reales, la de la tabla acual y las direcciones fsicas de la tabla actual) mientras que en pequeas
transacciones el RH solo precisa escribir los registros que pueden caber en un solo bloque.
2. Fragmentacin de datos: Cada vez que se modifican las PS cambian de localizacin fisica. Esto fuerza a
esquemas de gestin con la sobrecarga consiguiente.






EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
3. Recogida de basura: Al comprometer una transaccin se convierten en inaccesibles las pginas de versiones
anteriores modificadas por la transaccin, pginas basura (o debido a cadas) y necesita un sistema para gestionar
con la consiguiente sobrecarga.
4. Presentan dificultades aadidas en la ejecucin de transacciones concurrentes.

4) La evolucin de la paginacin en la sombra sera:

Estado inicial:

A A = 11 A
B B = 55 B
C C = 77 C
D D = 99 D
E E = 9 E
F F = 30 F
G G = 75 G
H H = 22 H
Tabla de pginas sombra Pginas en
el disco
Tabla actual
de pginas

Una vez comprometido T2:

A A = 11 A
B B = 55 B
C C = 77 C
D D = 99 D
E E = 9 E
F F = 30 F
G G = 75 G
H H = 22 H
A = 22
Tabla de
pginas sombra
C = 88
Tabla actual
de pginas
D = 33
E = 30

Pginas en el disco


Una vez comprometido T3:

A A = 11 A
B B = 55 B
C C = 77 C
D D = 99 D
E E = 9 E
F F = 30 F
G G = 75 G
H H = 22 H
A = 22
Tabla de
pginas sombra
C = 88
Tabla actual
de pginas
D = 33
E = 30
F = 22

Pginas en el disco












EXAMEN DE SISTEMAS DE GESTIN DE BASES DE DATOS
FEBRERO 2003
Una vez comprometido T4:

A A = 11 A
B B = 55 B
C C = 77 C
D D = 99 D
E E = 9 E
F F = 30 F
G G = 75 G
H H = 22 H
A = 22
Tabla de
pginas sombra
C = 88
Tabla actual
de pginas
D = 33
E = 30
F = 22
G = 55
H = 27

Pginas en el disco


Una vez terminado:

A A = 11 A
B B = 55 B
C C = 77 C
D D = 99 D
E E = 9 E
F F = 30 F
G G = 75 G
H H = 22 H
A = 22
Tabla de
pginas sombra
C = 88
Tabla actual
de pginas
D = 33
E = 30
F = 22
G = 55
H = 27

Pginas en el disco





Demonstration copy of activePDF Toolkit (http://www.active4.com)
Demonstration copy of activePDF Toolkit (http://www.active4.com)
Demonstration copy of activePDF Toolkit (http://www.active4.com)









UNIVLRSIDAD NACIONAL DL LDUCACIN A DI STANCIA
LSCULLA 1LCNICA SUPLRIOR DL INlORM1ICA
LXAMLN DL SISTLMAS DL GLSTIN DL BASLS DL DATOS
LNLRO / ILBRLRO 2004
NO ESTA PERMITIDO EL USO DE NINGUN MATERIAL ADICIONAL

PREGUNTA 1. 3,5 puntos
Dadas las siguientes transacciones, se pide:
1. Una planiIicacion concurrente se considera de grano Iino cuando
en cada raIaga de ejecucion se realizan unas pocas operaciones.
Realizar una planiIicacion concurrente de grano fino que deje la
Bases de Datos en un estado consistente y que al menos sea
secuenciable en cuanto a vistas. (1.5 puntos).
2. 'Las unicas planificaciones que mantienen la base de datos
consistente son aquellas que son secuenciables en cuanto a vistas
o en cuanto a conflictos. Es cierta esta aIirmacion? Razona la
respuesta y poner un ejemplo o un contraejemplo segun sea el
caso (1 punto).
3. En que consiste el Svstem Change Number de Oracle? Explicar como soporta Oracle la consistencia de los datos y
que tipo de protocolo utiliza para gestionar la concurrencia. (1 punto).

$4:.O3

1. Para realizar la planiIicacion debemos establecer una ordenacion entre las transacciones. Para ello, debemos Iijarnos en
los accesos a los datos y las dependencias que pudieran haber entre ellas. Por ejemplo, la planiIicacion T2 es la que accede
a mas elementos de datos, por lo que podemos colocarla en primer lugar. A continuacion podriamos ejecutar T1, ya que
lee dos elementos de datos escritos por T2 (A y B) Irente a uno que lee T3 (A). De este modo, realizando intercambios no
conIlictivos en la planiIicacion secuencial T2T1T3 obtenemos la siguiente planiIicacion concurrente secuenciable en
cuanto a conIlictos de grano Iino, en la que se ejecutan dos instrucciones en cada raIaga de ejecucion.

% % %
A:100
Escribir (A)
C:7
Leer(A) ? C:5
Leer(A)
B:10
Escribir(B)
Leer(B) @
B:B10*C
A:AC
Escribir(A)
C:AB
Escribir(C)
B:A10
Escribir(B)
B:BA*0.1
Escribir(B)

Notar que la instruccion leer(A) de T1 (sealada con ?) se ha adelantado dos posiciones respecto a dos instrucciones de
la misma transaccion ya que no presenta conIlicto con esas dos instrucciones, consiguiendo de esta Iorma retrasar la
lectura de B (@).

Ya que la planiIicacion mostrada es secuenciable en cuanto a conIlictos, lo es en cuanto a vistas.



T
1
T
2
T
3

C:7;
leer(B);
B:B10*C;
leer(A);
B:A10;
escribir(B);
A:100;
escribir(A);
B:10;
escribir(B);
C:AB;
escribir(C)
C:5
leer(A);
A:AC;
escribir(A);
B:BA*0.1;
escribir(B);
Segunda semana









UNIVLRSIDAD NACIONAL DL LDUCACIN A DI STANCIA
LSCULLA 1LCNICA SUPLRIOR DL INlORM1ICA
LXAMLN DL SISTLMAS DL GLSTIN DL BASLS DL DATOS
LNLRO / ILBRLRO 2004
NO ESTA PERMITIDO EL USO DE NINGUN MATERIAL ADICIONAL

2. Esta aIirmacion no es cierta en general, ya que es posible encontrar planiIicaciones no secuenciables que produzcan el
mismo resultado que la secuencial (pag. 376). La siguiente planiIicacion no es secuenciable en cuanto a conIlictos, ya que
existen varios conIlictos relativos al elemento de datos B. No obstante, deja la BBDD en un estado consiste, ya que los
valores de los elementos de datos A y B se conservan, tanto en esta planiIicacion como en la secuencial T1T2.

% %
Leer(A)
A:A-50
Escribir(A)
Leer(B)
B:B-10
Escribir(B)
Leer(B)
B:B50
Escribir(B)
Leer(A)
A:A10
Escribir(A)

Pueden darse otras respuestas en la linea argumentada por los niveles bajos de consistencia (pag. 403), o tambien, en el
otro sentido, mostrando planiIicaciones secuenciables que no dejan la BBDD en un estado consistente.

3.
Se trata de un tipo de marca temporal, medida en terminos de compromiso (pag 623). Oracle utiliza una variante del
protocolo de marcas temporales multiversion para el control de concurrencia. Se utilizan instantaneas para las
transacciones de solo lectura, y se emplea FlashBack Query entre otros aspectos relacionados con el matenimiento de la
consistencia y la concurrencia.

PREGUNTA 2. 3,5 puntos
Con la enorme cantidad de inIormacion que hay disponible en la Web hoy en dia hay muchisimo interes en la aplicacion
de sistemas de recuperacion de inIormacion a la busqueda de datos en la Web.
1. Cuales son las diIerencias principales entre un sistema de base de datos y un sistema de recuperacion de
inIormacion? (0,5 puntos)
2. A la hora de buscar paginas Web utilizando palabras claves, historicamente se han clasiIicado las paginas en terminos
de lo que se llama su 'importancia.
a. Que quiere decir 'importancia en este contexto? (0,5 puntos)
b. Que tecnicas se han utilizado para calcular la importancia? (0,5 puntos)
c. Que problemas existian con estas tecnicas? (0,5 puntos)
3. Que papel juegan los hipervinculos y el concepto de semejanza en el calculo de la importancia de las paginas Web?
(0,5 puntos)
4. A la hora de desarrollar el sistema de recuperacion de inIormacion que hara Ialta para un buscador como Google, que
otros problemas hay que abarcar ademas de los relacionados con la importancia? (1 punto)

$4:.O3

1. Los sistemas de Bases de Batos (BBDD) aseguran las propiedades ACID, a diIerencia de los sistemas de Recuperacion
de InIormacion (RdI). En cuanto a los modelos de datos que tratan, los sistemas de BBDD tratan con inIormacion
estructurada organizada con modelos de datos relativamente complejos, mientras que los sistemas de RdI han empleado
tradicionalmente un modelo mucho mas sencillo, en el que la inIormacion se organiza como un conjunto de documentos
sin estructurar. Los sistemas de RdI tratan los problemas de la gestion de documentos sin estructurar, como la busqueda









UNIVLRSIDAD NACIONAL DL LDUCACIN A DI STANCIA
LSCULLA 1LCNICA SUPLRIOR DL INlORM1ICA
LXAMLN DL SISTLMAS DL GLSTIN DL BASLS DL DATOS
LNLRO / ILBRLRO 2004
NO ESTA PERMITIDO EL USO DE NINGUN MATERIAL ADICIONAL
aproximada mediante palabras clave y la ordenacion de documentos por su grado estimado de importancia para la
consulta.

2.a. La importancia de un documento respecto a una consulta Iormulada mediante palabras clave es la relevancia de ese
documento para esa consulta. Un sistema de RdI devolvera una coleccion de documentos ordenados segun su importancia.

Cuantitativamente podemos expresar la importancia de un documento d respecto un termino t mediante
i(d,t) log ( 1 n(d,t)/n(d)),

siendo n(d) el numero de terminos del documento y n(d,t) el numero de apariciones del termino t en el documento d.

2.b. Podemos calcular la importancia (pag. 557-558) segun la frecuencia del termino i(d,t) con independencia de la
Iormula concreta utilizada. La importancia de un documento con respecto a una consulta Q se estima sumando las medidas
de importancia del documento para cada palabra clave. El problema que presenta esta aproximacion es que puede que no
todos los terminos utilizados en la consulta sean iguales. Para solventar este problema se utiliza la frecuencia inversa de
los documentos, deIinida como 1/n(t), donde n(t) denota el numero de documentos que contienen el termino t. De esta
Iorma, la importancia de un documento d para una consulta Q se deIine como
i(d,Q) $ i(d,t) / n(t).
Ademas, esta medida puede reIinarse ponderando la importancia de cada termino mediante pesos 59

2.c. Ademas del inconveniente comentado en el apartado anterior, existen varios problemas a los que se enIrenta un
sistema de RdI. Palabras como 'y, 'o, 'un, etc. son muy Irecuentes y resultan inutiles para propositos de consulta (pag.
558). Por ello, los sistemas de RdI deIinen un conjunto de palabras, llamado palabras de parada, que especiIica un
conjunto de palabras que son eliminadas de las consultas. Otro Iactor a tener en cuenta es la proximidad de los terminos
en el documento. Si los terminos aparecen cercanos entre si en el documento, el documento se clasiIicara en una posicion
mas elevada que si aparecen muy separados. Dado que un sistema de RdI puede devolver un gran numero de documentos
que carezcan de importancia, suelen devolver unicamente los primeros documentos con el grado mas elevado de
importancia y permiten a los usuarios solicitar de manera interactiva los documentos

3. Los hipervinculos son enlaces a paginas Web, asi que se puede usar su ocurrencia como una indicacion de su
importancia, es decir, cuando mas veces se encuentra un hipervinculo a una pagina Web dada, mas importante es la
pagina. Asi se pueden ordenar las paginas Web segun el numero de hipervinculos que se encuentra enlazados a cada
pagina. La semejanza entre unas paginas Web y una dada tambien se puede usar para distinguir entre la importancia de
cada una.

4. Hay muchos Iactores a tener en cuenta, ademas del calculo de la importancia de las paginas: como indexar las paginas
Web (el diseo y utilizacion de los batidores Web), como elegir la estructura de la jerarquia de clasiIicacion que se va a
usar para maximizar la Ilexibilidad de la inIormacion que se va almacenar, el problema de la enorme cantidad de
inIormacion que hay que procesar y almacenar, y como tratar los miles de accesos que puede haber a la vez.

PREGUNTA 3. 3 puntos
1. Por que importa XML como Iormato para la representacion y tratamiento de datos e inIormacion? (0,5 puntos)
2. Cuales son las opciones para el almacenamiento de datos e inIormacion en XML y cuales son los problemas
relacionados con cada uno? (1 punto)
3. Una compaia discograIica quiere sustituir su sistema de base de datos relacional por uno que utilice XML. Desarrolle
las representaciones necesarias para los datos de la empresa y demuestre como se podria utilizar dicho sistema para
producir una interIaz Web que los clientes podrian usar para conseguir inIormacion sobre los discos, hacer pedidos,
etc. (1,5 puntos)













UNIVLRSIDAD NACIONAL DL LDUCACIN A DI STANCIA
LSCULLA 1LCNICA SUPLRIOR DL INlORM1ICA
LXAMLN DL SISTLMAS DL GLSTIN DL BASLS DL DATOS
LNLRO / ILBRLRO 2004
NO ESTA PERMITIDO EL USO DE NINGUN MATERIAL ADICIONAL
Solucin

1. Aunque la representacion de datos en XML puede parecer poco eIiciente, es muy importante como Iormato por varias
razones: permite la representacion de datos semi-estructurados donde se puede agregar inIormacion adicional sin
perjudicar el Iormato; las etiquetas hacen que el Iormato sea autodocumentado, hay toda una Iamilia de tecnologias
relacionadas con XML que hace su procesamiento y transIormacion en otros Iormatos algo sencillo.

2. Hay distintas opciones para el almacenamiento de datos e inIormacion en XML:
a. Almacenamiento en archivos planos: tiene muchos de los problemas de los sistemas de almacenamientos que
existian antes del desarrollo de SGBD.
b. Almacenamiento en bases de datos relacionales: se puede almacenar XML de distintas Iormas dentro de una
base de datos relacional, en primer lugar, como cadenas de texto, donde se almacena cada elemento hijo del
elemento de mayor nivel como una cadena en una tupla separada de la base de datos. Aunque es una
representacion Iacil, el SGBD no conoce el esquema de los datos asi que es imposible consultar los datos
directamente. En segundo lugar, se pueden almacenar XML como un arbol a traves de las relaciones nodos e
hijos. Tiene la ventaja de que se pueden representar los datos directamente de Iorma relacional pero la desventaja
de que cada elemento se divide en muchas piezas y se requiere un gran numero de combinaciones para
reensamblar los elementos. En tercer lugar, se puede asignar almacenar XML a traves de su asignacion a
relaciones. Se asignan los elementos XML con un esquema conocido a relaciones y atributos y los elementos con
un esquema no conocido como cadenas o un arbol.
c. Almacenamiento en bases de datos XML: se pueden usar bases de datos cuyo modelo de datos es en si XML (y
no relacional).

3. Aunque hay distintas maneras en que se podrian separar y organizar los datos de esta empresa utilizando XML, uno
bastante sencillo seria distinguir entre tres estructuras de datos: datos de los discos y artistas, datos del almacen de discos y
por ultimo, datos de los clientes y sus pedidos. Se puede ver estas estructuras como:

almacen~
disco~
titulo~A Hard Days Night/titulo~
cantidad~500/cantidad~
localizacion~Fila 75, almacen 4localizacion~
disco~
etc...
/almacen~
discos~
disco~
titulo~A Hard Days Night/titulo~
grupo nombreThe Beatles~
artista~John Lennon/artista~
artista~Paul McCartney/artista~
artista~Ringo Star/artista~
artista~George Harrison/artista~
/grupo~
canciones numero8~
cancion~She Loves You/cancion~
etc.
/canciones~
/disco~
disco~
etc...
/disco~
/discos~
clientes~
cliente~
nombre~Sr. F. Gomez/nombre~
direccion~Avda XXX, Madrid/direccion~
pedidos~
pedido numero222~
disco tituloA Hard Days Night/~
cantidad1/~
estatus~pago pendiente/estatus~
/pedido~
etc..
/pedidos~
/cliente~
cliente~
etc...
/cliente~
/clientes~

Y una vez que se ha generado las bases de datos XML basado en estas estructuras de datos se puede construir una interIaz
Web a la base de datos tal como se indica en la siguiente Iigura. Inicialmente un cliente tendria que login al sitio Web (no
se incluye los detalles en la Iigura) y luego se podria consultar algo, como por ejemplo, los nuevos discos que han llegados
desde la ultima vez que estuvo el cliente conectado. Se enviaria la consulta en el Iormato XQuery a la base de datos y los
resultados saldrian como un Iragmento de XML. Se procesaria dicho Iragmento con una transIormacion XSLT para
producir HTML que se podria devolver al navegador del cliente.









UNIVLRSIDAD NACIONAL DL LDUCACIN A DI STANCIA
LSCULLA 1LCNICA SUPLRIOR DL INlORM1ICA
LXAMLN DL SISTLMAS DL GLSTIN DL BASLS DL DATOS
LNLRO / ILBRLRO 2004
NO ESTA PERMITIDO EL USO DE NINGUN MATERIAL ADICIONAL


Base de
datos
XML
Resultado
de la
consulta en
XML
Consulta en
XQuery
TransIormacion
XSLT








SISTEMAS DE GESTIN DE BASES DE DATOS [413023 / 54302-]
3 DE INGENIERA TCNICA EN INFORMTICA DE GESTIN MODELO B

NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL EL ENUNCIADO DEL EXAMEN HA DE ENTREGARSE

PREGUNTA 1: PUNTUACIN: 3 PUNTOS TIEMPO: 30 MIN.
EnsistemaWebcomogooglemapsutilizadatosgeogrficosalmacenadosenunabasededatosespacial.
1. Cmosesuelenclasificarlosdatosgeogrficos?Proporcioneunejemplodecadatipo(1punto).

Se suelen clasificar en dos tipos: datos por lneas y datos vectoriales.
Datos por lnea: consisten en mapas de bits o en mapas de pxeles en dos o
ms dimensiones. Un ejemplo tpico de imagen de lneas bidimensional son las
imgenes de satlite de cobertura nubosa, en las que cada pixel almacena la
visibilidad de nubes en un reea concreta. Las bases de datos de diseo no
suelen almacenar datos por lnea.
Datos vectoriales: estn formados a partir de objetos geomtricos bsicos
como los puntos, los segmentos rectilneos, los tringulos y otros polgonos
en dos dimensiones, y los cilindros, esferas, paraleleppedos y otros
poliedros en tres dimensiones. Los datos cartogrficos suelen representarse
en formato vectorial.

2. Por qu no se pueden indexar estos datos utilizando estructuras de ndices tradicionales?Cmo se hace
entonces?(1punto).

Las estructuras de ndices tradicionales, como los ndices de asociacin y
los rboles B, no resultan adecuadas, ya que nicamente trabajan con datos
unidimensionales, mientras que los datos espaciales suelen ser de dos o ms
dimensiones. Para solucionar este problema, se emplean otras estructuras, como
son los rboles k-d (que permite indexar datos de dos o ms dimensiones),
rboles cuadrticos, o rboles R (que resultan tiles para el indexado de
objetos como puntos, segmentos de lnea, rectngulos y otros polgonos).

3. Cules son los tipos de consultas que se quiere hacer con datos geogrficos? Proporcione un ejemplo de
cadauno(1punto).

Existen varios tipos de consultas con referencia a ubicaciones espaciales:
Las consultas de proximidad, que solicitan objetos que se hallen cerca de
una ubicacin especificada. Por ejemplo, la consulta para hallar todos los
restaurantes que se encuentran a menos de una distancia dada de un
determinado punto.
Las consultas regionales, que tratan sobre regiones espaciales. Estas
consultas pueden preguntar por objetos que se hallen parcial o totalmente en
el interior de la regin especificada. Un ejemplo es la consulta para hallar
todas las tiendas minoristas dentro de los lmites geogrficos de una ciudad
dada.
Intersecciones y uniones de regiones, como por ejemplo, dada la informacin
regional, cmo pueden ser la lluvia anual y la densidad de poblacin, una
consulta puede solicitar todas las regiones con una baja cantidad de lluvia
anual y una determinada densidad de poblacin.



Nacional y U.E.
Original
PREGUNTA 2: PUNTUACIN: 4 PUNTOS TIEMPO: 50 MIN.

ConsiderelasiguienteplanificacinSdetransaccionesconcurrentes:
T1 T2 T3 T4
Leer ( C) ;


l eer ( A) ;



l eer ( C) ;

escr i bi r ( C) ;


l eer ( B) ;



escr i bi r ( B) ;


escr i bi r ( A) ;


l eer ( C) ;



l eer ( C) ;


escr i bi r ( C) ;

escr i bi r ( B) ;



1. Estudie la secuencialidad en cuanto a conflictos y en cuanto a vistas, en caso de que fuera secuenciable,
muestrelaplanificacinsecuencialequivalente.(1punto)

Para comprobar la secuencialidad en cuanto a conflictos, basta con


comprobar las dependencias entre instrucciones que existen en la planificacin,
o lo que es lo mismo, ver las instrucciones que se encuentran en conflicto.
Para ello, se comprueba la existencia de instrucciones Escribir en combinacin
con otras instrucciones (Leer o Escribir), siempre considerando un mismo
elemento de dato.

T1 T2 T3 T4
Leer ( C) ;


l eer ( A) ;


l eer ( C) ;

escr i bi r ( C) ;


l eer ( B) ;


escr i bi r ( B) ;

escr i bi r ( A) ;


l eer ( C) ;


l eer ( C) ;

escr i bi r ( C) ;
escr i bi r ( B) ;



Por lo tanto, quedara un grafo de precedencia de la siguiente forma:










En el grafo aparecen ciclos, por lo que se puede concluir que la
planificacin P no es secuenciable en cuanto a conflictos.

Respecto a la planificacin en cuanto a vistas, por definicin, una
planificacin P1 es secuenciable un cuanto a vistas a la planificacin
secuenciable P, si:
Para todo elemento de datos Q, si la transaccin Ti lee el valor inicial de
Q en P, entonces Ti debe leer tambin el valor inicial de Q en P1.
Para todo elemento de datos Q, si la transaccin Ti ejecuta leer(Q) en P y
el valor lo ha producida la transaccin Tj (si existe dicha transaccin),
entonces en la planificacin P1 la transaccin Ti debe leer tambin el valor
que haya producido la transaccin Tj.
Para todo elemento de datos Q, la transaccin (si existe) que realice la
ltima operacin escribir(Q) en P debe realizar la ltima operacin
escribir(Q) en P1.

Analicemos cada uno de los elementos de datos (en nuestro caso, A, B y C).
Para el elemento A, se tiene que T2 es la nica que lee el valor inicial de A,
por lo tanto, debe ejecutarse antes que las otras (T1, T3 y T4). Slo se
escribe A en la transaccin T3, y adems es la ltima, con lo que en la posible
planificacin equivalente secuencia debera tambin escribir el ltimo valor de
A.
Respecto a B, T2 es la nica transaccin que lee el valor inicial, con lo
que debera ejecutarse antes que las otras (T1, T3 y T4), algo que es
consistente con lo anterior. Pero resulta que adems, la ltima operacin de
escritura de B la hace T2, con lo cual, debera ser la ltima en ejecutarse. Si
se ejecutase la ltima, entrara en conflicto con lo indicado en el prrafo
anterior sobre el elemento A, por lo que no podemos encontrar una planificacin
equivalente a la dada en el enunciado del ejercicio que cumpla con los tres
puntos mostrados, por lo que se tiene que la planificacin no es secuenciable
en cuanto a vistas.

2. Utilizando el protocolo de bloqueo en dos fases refinado, haga una planificacin secuenciable utilizando
esteprotocolo,casodeserposible.(1,5puntos)

Tal y como se proporcionan las transacciones en el enunciado, no es
posible aplicar el protocolo de bloqueo en dos fases, puesto que lo que se
proporciona es una planificacin como tal y se ha comprobado que no es
secuenciable. Para realizar este apartado, se considerar el conjunto de
instrucciones de cada una de las transacciones de la planificacin
proporcionada.

T1 T2 T3 T4
l eer ( C) ;
escr i bi r ( C) ;
l eer ( A) ;
l eer ( B) ;
l eer ( C) ;
escr i bi r ( B) ;
l eer ( C) ;
escr i bi r ( A) ;
escr i bi r ( C) ;
escr i bi r ( B) ;
l eer ( C) ;
T2 T1
T4 T3

El protocolo de bloqueo en dos fases refinado permite conversiones de
bloqueo, de manera que implementa las instrucciones Subir(Q) y Bajar(Q) para
convertir un bloqueo de compartido a exclusivo, en el primer caso, o de
exclusivo a compartido en el segundo caso.

Aplicando este protocolo de bloqueo, se podra obtener una planificacin
como la que se muestra a continuacin:

T1 T2 T3 T4
bl oquear _C( C)
l eer ( C)

bl oquear _C( A)
l eer ( A) ;
bl oquear _C( B)
l eer ( B) ;

subi r ( C)
escr i bi r ( C)
desbl oquear ( C)

bl oquear _C( C)
l eer ( C)

bl oquear _C( C)
l eer ( C)

subi r ( B)
escr i bi r ( B)
desbl oquear ( C)
desbl oquear ( B)
desbl oquear ( A)

bl oquear _X( A)
escr i bi r ( A)

bl oquear _X( B)
escr i bi r ( B)
bl oquear _X( C)
escr i bi r ( C)
desbl oquear ( C)
desbl oquear ( A)

bl oquear _C( C)
l eer ( C)
desbl oquear ( C)
desbl oquear ( B)

3. Suponiendo que el tiempo inicial t=0, aplicar el algoritmo de marcas temporales a esta planificacin para
establecersuconcurrencia,incluyendolosmarcastemporalesenlasolucin.(1,5puntos).

Utilizando el valor del reloj como marca temporal, cada transaccin est
dado una marca temporal segn el orden en que lleguen. Se supondr que:
- MT(T1) = 0, MT(T2) = 1, MT(T3) = 2 y MT(T4) = 3
- Cada variable una de lectura (L-MT) y otra de escritura (E-MT)
- Inicialmente L-MT(A,B,C) y E-MT(A,B,C) no tienen valor

Se tendr la siguiente planificacin:

T1 T2 T3 T4
A B C Explicacin
MT(T1)=0 MT(T1)=1 MT(T1)=2 MT(T1)=3 Em Lm Em Lm Em Lm
l eer ( C) - - - - - 0

Em( C) si n val or por t ant o
Lm( C) = Max( Lm( C) , MT( T1) ) =0

l eer ( A) - 1 - - - 0

Em( A) si n val or por t ant o
Lm( A) = Max( Lm( A) , MT( T2) ) =1

l eer ( C) - 1 - - - 2

Em( C) si n val or por t ant o
Lm( C) =Max( Lm( C) , MT( T3) ) =2

escr i bi r ( C) - 1 - - 0 2

Em( C) si n val or por t ant o
Em( C) =MT( T1) ) =0

l eer ( B) - 1 - 1 0 2

Em( B) si n val or por t ant o
Lm( B) = Max( Lm( B) , MT( T2) ) =1

escr i bi r ( B) - 1 3 1 0 2

Em( B) si n val or por t ant o
Em( B) =MT( T4) ) =3

escr i bi r ( A) 2 1 3 1 0 2

Em( A) si n val or por t ant o
Em( A) =MT( T3) ) =2

l eer ( C) 2 1 3 1 0 2

Em( C) =0<MT( T2) =1 por t ant o
Lm( C) =Max( Lm( C) , MT( T2) =2

l eer ( C) 2 1 3 1 0 3

Em( C) =0<MT( T4) =3 por t ant o
Lm( C) =Max( Lm( C) , MT( T4) =3

escr i bi r ( C) 2 1 3 1 2 3

Em( C) =0<MT( T3) =3 por t ant o
Em( C) =MT( T3) ) =2

escr i bi r ( B) 2 1 3 1 2 3
Em( B) =3>MT( T2) =1. Se r echaza l a
oper aci n escr i bi r ( B) y se
r et r ocede, asi gnndosel e una
nueva mar ca t empor al .

PREGUNTA 3: PUNTUACIN: 3 PUNTOS TIEMPO: 30 MIN.


1. QurelacinhayenXMLentreelconceptoconstructorfundamentaloelementoyelconceptodeatributo?
Todoelementoesunatributo?Todoatributoesunelemento?Razonelarespuesta.(0,5puntos).

Un elemento es sencillamente un par de etiquetas de inicio y finalizacin


coincidentes, y todo el texto que aparece entre ellas. Los atributos son
cadenas y no contienen marcas. Hacen referencia a los elementos, y aparecen
como pares nombre=valor antes del cierre del elemento en cuestin con el token
>. No todo elemento es atributo, aunque s un elemento puede contener
ninguno, uno o varios elementos. Y no todo atributo es elemento, sino que est
contenido dentro de uno.

2. Cul es el objetivo principal de un DTD? Por qu es opcional su existencia? En qu sentido representa


unarestriccindetipo?Razonelarespuesta.(0,5puntos).

El objetivo principal de un DTD es restringir el tipo de informacin


presente en el documento XML. En realidad no restringe los tipos en el sentido
de tipos bsicos como entero o cadena. En su lugar, solamente restringe el
aspecto de subelementos y atributos en un elemento. DTD es principalmente una
lista de reglas que indican el patrn de subelementos que aparecen en un
elemento.

3. CuleselobjetivoprincipaldeunXSL/XSLT?Utilidad?Esopcionalyobligatorio?Razonelarespuesta.
(0,5puntos).

XSL es un estndar de hojas de estilo especialmente creado para la
notacin XML. En realidad es una combinacin de varios estndares, entre ellos,
XSLT, que es un lenguaje de transformacin de documentos XML. Las siglas XSLT
significan XSL Transformations. Con l se pueden conseguir transformaciones que
incluyen:
Generar texto fijo
Suprimir parte del contenido - seleccionar partes
Cambiar el orden del contenido. Ordenar
Repetir partes
Generar informacin calculada
Etc.

XSLT se plantea como un lenguaje declarativo. Una hoja de transformacin
contiene una serie de plantillas que se aplican en funcin de un criterio de
seleccin sobre el nodo a procesar en cada momento. En principio, el orden de
las plantillas no es significativo. Cada plantilla describe una accin a
realizar a partir del nodo que se est procesando.

El uso de XSL/XSLT es opcional.

4. ProporcionelaDTDparaunarepresentacinXMLdelsiguienteesquemarelacionalanidado(1punto):
biblioteca=(datosPrivados,datosPublicos)
datosPrivados=(ConjEmpleadossetof(empleado),ConjSociossetof(socio)
datosPublicos=(bibliografiasetof(ejemplar))
ejemplar=(libro|revista|periodico)

<!DOCTYPE biblioteca [
<!ELEMENT biblioteca (datosPrivados datosPublicos)>
<!ELEMENT datosPrivados (ConjEmpleados ConjSocios)>
<!ELEMENT ConjEmpleados (empleado*)>
<!ELEMENT ConjSocios (socio*)>
<!ELEMENT datosPublicos (bibliografia)>
<!ELEMENT bibliografia (ejemplar*)>
<!ELEMENT ejemplar (libro | revista | periodico)>
<!ELEMENT empleado (#PCDATA)>
<!ELEMENT socio (#PCDATA)>
<!ELEMENT libro (#PCDATA)>
<!ELEMENT revista (#PCDATA)>
<!ELEMENT periodico (#PCDATA)>
]>

5. EscribalassiguientesconsultasenXQuery,asumiendolaDTDdelapartadoanterior:
a. Losnombresdetodoslosempleadosdelabiblioteca(0,25puntos).

for $x in \\biblioteca\datosPrivados\ConjEmpleados\empleado
return $x

b. Losejemplaresquenosonperidicos(0,25puntos).

for $x in \\biblioteca\datosPublicos\bibliografia\ejemplar\libro
for $y in \\biblioteca\datosPublicos\bibliografia\ejemplar\revista
return $x $y

EXAMEN 1 SEMANA 2009 TIPO A

PREGUNTA 1

1.1 Cules son las diferencias entre una DTD y un XML Schema?. Proporcione un
ejemplo de cada uno para ilustrar las diferencias.

Ventajas de XML Schema sobre DTD:

- Permite que el texto que aparece en los elementos est restringido a tipos
especficos, tales como tipos numricos en formatos especficos o tipos ms
complejos como secuencias de elementos de otros tipos.
- Permite crear tipos definidos por el usuario.
- Permite restricciones de unicidad y de clave externa.
- Est integrado con espacios de nombres para permitir a diferentes partes de un
documento adaptarse a esquemas diferentes.
- Permite restringir tipos para crear tipos especializados, por ejemplo
especificando valores mximos y mnimos.
- Permite extender los tipos complejos mediante el uso de una forma de herencia.

1.2 A la hora de llevar a cabo consultas sobre estructuras de datos etiquetados en XML
y su transformacin a otros formatos / otras formas, qu opciones hay?. De un
ejemplo de cada una.

Principalmente disponemos de 3:

- XPath, es un lenguaje para expresiones de rutas de acceso y es realmente el
fundamento de los dos lenguajes de consultas siguientes.

Ejemplo de sentencia: /banco-2/cliente/nombre _cliente.
Devuelve:
<nombre_cliente>AAAA</nombre_cliente>
<nombre_cliente>BBBB</nombre_cliente>
-----------------------------------------------------
<nombre_cliente>ZZZZ</nombre_cliente>


- XQuery es el lenguaje normalizado para la consulta de datos XML. Se ha
modelado a partir de SQL, pero es significativamente diferente, ya que tiene que
manejar datos XML anidados. Tambin incorpora expresiones Xpath.

Ejemplo de sentencia XQuery:
For $x in /banco-2/cuenta
Let $numcuenta :=$x/@numero_cuenta
Where $x/saldo >400
Return <numero_cuenta>{$numcuenta} </numero_cuenta>
Esta expresin devolver los nmeros de cuentas de las cuentas corrientes donde
su saldo es superior a 400.

- XSLT fue diseado como lenguaje de transformacin como parte del sistema de
hojas de estilo XSL, que se usa para controlar el formato de los datos XML en
HTML u otro lenguaje de impresin o visualizacin. Aunque diseado para el
formato, XSLT puede generar XML y expresar muchas consultas interesantes.
Actualmente es el lenguaje ms usado para la manipulacin de datos XML,
aunque XQuery es ms adecuado para el tratamiento de bases de datos.

Ejemplo de sentencia XSLT:
<xsl:template match=/banco-2/cliente>
<xsl:value-of select=nombre_cliente/>
</xsl:template>
<xsl:template match=*/>
Esta expresin busca las coincidencias de elementos cliente que aparecen como
hijos del elemnto raz banco-2. La expresin xsl:value-of encerrada en la
instruccin de coincidencia devuelve valores de los nodos en el resultado de la
expresin Xpath, la instruccin xsl:template match contiene una expresin
Xpath que selecciona uno o ms nodos.
La primera plantilla devuelve el valor del subelemento nombre_cliente; se puede
ver que el valor no contiene la etiqueta de elemento.

1.3 A la hora de almacenar XML hay varias opciones Cules son?, Cules son las
ventajas y desventajas de cada una?.

Se podran almacenar bsicamente de dos maneras;
- Sistemas de almacenamiento de datos no relacionales
- Almacenamiento en Bases de Datos Relacionales.

Si optamos por el sistema de almacenamiento de datos no relacionales, entonces
podemos optar por dos maneras de hacerlo;

- Almacenamiento en archivos planos;
o Desventajas/Carencias:
Aislamiento de datos
Comprobaciones de integridad
Atomicidad
Acceso concurrente
Seguridad
o Ventajas
Amplia disponibilidad de herramientas XML que funcionan sobre
estos archivos, hace sencillo el acceso y consulta de datos XML
almacenados en archivos.
- Creacin de bases de datos XML;
o Desventajas:
Dificultad inherente al diseo de un sistema gestor de bases de
datos desde cero.
o Ventajas:
Permite reusar gran parte de la infraestructura de bbdd orientada a
objetos mientras se usa una interfaz XML estndar.
La adicin de XQuery u otros lenguajes de consultas XML,
permite consultas declarativas.
Si nos decidimos por las BBDD relacionales tendremos varias opciones, pero en
resumen tendremos las siguientes ventajas/desventajas:
- Ventajas:
o Conversin normalmente sencilla (si se han generado desde un principio
en un esquema relacional)
o Las BBDD relacionales se usan ampliamente en aplicaciones existentes
- Desventajas:
o Si no se ha generado desde un principio con esquema relacional, la
traduccin de los datos de XML al esquema relacional puede ser
complicada, en particular los elementos anidados y elementos repetidos.

Las diversas alternativas seran las siguientes:
- Almacenamiento con cadenas.
- Representacin con rboles
- Representacin con relaciones
- Publicacin y fragmentacin de datos XML
- Almacenamiento nativo en BBDD relacionales.


PREGUNTA 2

Sean la siguiente planificacin P formada por las transacciones T1, T2 y T3:

T1 T2 T3
Leer (A)
Leer (A)
Leer (B)
Leer (C)
Escribir (C)
Escribir (A)
Leer (B)
Escribir (A)
Escribir (B)
Leer (A)


Se Pide:

a) Es esta planificacin secuenciable en cuento a conflictos? En caso afirmativo,
mostrar la posible planificacin secuencial, y en cualquier caso, justificar la
respuesta.

Para contestar a esta pregunta, primero vamos a recordar los cuatro casos que
importan para la secuencialidad en cuanto a conflictos:

- Ii=leer (Q), Ij=leer(Q). El orden de Ii e Ij no importa, puesto que Ti y Tj leen el
mismo valor de Q, independientemente del orden.
- Ii=leer (Q), Ij=escribir (Q). Si Ii est antes que Ij, entonces Ti no lee el valor de
Q que escribe la instruccin Ij de Tj. Si Ij est antes que Ii, entonces Ti lee el
valor de Q escrito por Tj. Por tanto, el orden de Ii e Ij es importante.
- Ii=escribir (Q), Ij=leer (Q). El orden es importante por el mismo motivo que el
caso anterior.
- Ii=escribir (Q), Ij=escribir (Q). Puesto que ambas operaciones son escribir el
orden de dichas operaciones no afecta ni a Ti ni a Tj. Sin embargo, el valor que
obtendr la siguiente instruccin leer (Q) de P s se ve afectado, ya que
nicamente se conserva en la base de datos la ltima de las dos instrucciones
escribir. Si no hay ninguna otra instruccin escribir (Q) despus de Ii e Ij en P,
entonces el orden de Ii e Ij afecta directamente al valor final de Q en el estado de
la base de datos que se obtiene con la planificacin P.

Decimos que Ii e Ij estn en conflicto si existen operaciones de diferentes
transacciones sobre el mismo elemento de datos, y al menos una de esas
instrucciones es una operacin escribir.

Para que una planificacin P, sea sea secuenciable en cuanto a conflictos, debe
existir una planificacin P, en la que si se intercambian instrucciones no
conflictivas en P, lleguemos a P.

Comenzamos intercambiando las sentencias de la planificacin T3, como las
operaciones Escribir C y Leer C no estn en conflicto con ninguna de las
instrucciones de T1 y T2, as que podemos intercambiarlas paso a paso hasta llegar a
la siguiente planificacin:


T1 T2 T3
Leer (A)
Leer (A)
Leer (B)
Escribir (A)
Leer (B)
Escribir (A)
Escribir (B)
Leer (C)
Escribir (C)
Leer (A)














Ahora pasamos a la transaccin T2, en la que la operacin Leer (B), no est en
conflicto con ninguna instruccin de T1, por lo que podemos moverla sin problemas
quedando as la planificacin:

T1 T2 T3
Leer (A)
Leer (A)
Escribir (A)
Leer (B)
Leer (B)
Escribir (A)
Escribir (B)
Leer (C)
Escribir (C)
Leer (A)

Pero ahora tenemos un conflicto entre T2 y T1, puesto que la operacin Leer (A) de
T2 est antes de la operacin Escribir (A) de T1 y no podemos intercambiarlas,
puesto que afectara a los valores que se leen y escriben, por lo que no es
secuenciable en cuanto a conflictos.

b) Es esta planificacin secuenciable en cuanto a vistas?. En caso afirmativo
mostrar la posible planificacin secuencial, y en cualquier caso, justificar la
respuesta.

Para que una planificacin sea secuenciable en cuanto a vistas debe cumplir las tres
condiciones siguientes:
- Para todo elemento de datos Q, si la transaccin Ti lee el valor inicial de Q en la
planificacin P, entonces Ti, debe leer tambin el valor inicial de Q en la
planificacin P.
- Para todo elemento de datos Q, si la transaccin Ti ejecuta leer (Q) en la
planificacin P y el valor lo ha producido la transaccin Tj (si existe) entonces,
en la planificacin P, la transaccin Ti debe leer tambin el valor de Q que haya
producido la transaccin Tj.
- Para todo elemento de datos Q, la transaccin (si existe) que realice la ltima
operacin escribir (Q) en la planificacin P, debe realizar la ltima operacin
escribir (Q) en la planificacin P.













Fcilmente llegamos al mismo punto en el que nos quedamos anteriormente la tabla:

T1 T2 T3
Leer (A)
Leer (A)
Escribir (A)
Leer (B)
Leer (B)
Escribir (A)
Escribir (B)
Leer (C)
Escribir (C)
Leer (A)

Ahora tenemos que ver que no infringimos ninguna de las 3 reglas anteriores si
cambiamos la posicin de Leer (A) de T2 con Escribir (A) y Leer (B) de T1.

Primera regla, T1 sigue leyendo el valor inicial de A, no hay problema.
Tercera regla, T2 sigue escribiendo el ltimo valor de A, no hay problema.
Segunda regla, aqu tenemos un problema, puesto que si intercambiamos Leer (A)
con Escribir (A), resulta que Leer (A) ya no lee el valor inicial de A, sino el que
escribe T1 al ejecutar Escribir (A), por lo tanto no podemos cambiar las
instrucciones y no es secuenciable en cuanto a vistas tampoco.

c) Realizar una planificacin concurrente secuenciable en cuanto a conflictos
utilizando el mtodo de protocolo de bloqueo de dos fases y justificar la
respuesta:

Recordemos el protocolo de bloqueo de dos fases:

Se compone de dos fases:
- Fase de crecimiento. Una transaccin puede obtener bloqueos pero no puede
liberarlos.
- Fase de decrecimiento. Una transaccin puede liberar bloqueos pero no puede
obtener ninguno nuevo.

Adems sabemos que el protocolo de bloqueo de dos fases asegura la
secuencialidad en cuanto a conflictos, por lo que cualquier planificacin
realizada con este protocolo, ser secuenciable en cuanto a conflictos.











Podemos crear la siguiente planificacin, que se puede comprobar es de dos
fases y por tanto secuenciable en cuanto a conflictos:

T1 T2 T3
Bloquear-X (A)
Bloquear-X (C)
Bloquear- C (B)
Leer (C)
Escribir (A)
Desbloquear-X (A)
Leer (B)
Desbloquear-C (B)
Bloquear-X (B)
Leer (B)
Escribir (C)
Bloquear- X (A)
Leer (A)
Escribir (A)
Desbloquear-X (A)
Bloquear-C (A)
Desbloquear-X (B)
Desbloquear-X (C)
Leer (A)
Desbloquear-C (A)

d) Utilizando el protocolo en rbol, con el grafo que se muestra junto a la
planificacin, realizar una planificacin secuenciable utilizando este protocolo.

Recordemos las normas del protocolo de bloqueo de rbol:
Slo se permite la instruccin Bloquear-X, cada transaccin puede bloquear un
elemento de datos al menos una vez y debe seguir las siguientes reglas:
- El primer bloqueo de Ti puede ser sobre cualquier elemento de datos.
- Posteriormente, Ti puede bloquear un elemento de datos Q slo si Ti est
bloqueando actualmente al padre de Q.
- Los elementos de datos bloqueados se pueden desbloquear en cualquier
momento.
- Ti no puede bloquear de nuevo un elemento de datos que ya haya bloqueado y
desbloqueado anteriormente.









Tras esto y con el grafo que nos dan: A->B->C, podramos hacer la siguiente
planificacin, con las transacciones T1, T2 y T3. Mostramos slo las instrucciones
bloquear-X, desbloquear-X

T1 T2 T3
Bloquear-X (A)
Bloquear-X (B)
Desbloquear-X (A)
Bloquear-X (A)
Desbloquear-X (B)
Bloquear-X (B)
Desbloquear-X (A)
Bloquear-X (A)
Desbloquear-X (B)
Bloquear-X (B)
Bloquear-X (C)
Desbloquear-X (A)
Desbloquear-X (B)
Desbloquear-X (C)




PREGUNTA 3

Sea la siguiente planificacin P:

T1 T2 T3 T4
Leer (A)
Leer (A)
Leer (B)
Leer (C)
Escribir (C)
Escribir (C)
Leer (B)
Leer (A)
Escribir (B)
Leer (A)

3.1 Dado que el tiempo inicial es t=0, aplicar el algoritmo de marcas temporales a esta
planificacin para establecer su concurrencia, incluyendo las marcas temporales en la
solucin (1.25 puntos)

Primero recordemos dos conceptos sobre las marcas temporales y cmo opera el
protocolo de ordenacin por marcas temporales:

- Marca-temporal-E (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito escribir (Q)
- Marca-temporal-L (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito leer (Q)

Forma de operar del protocolo:

1. Supngase que la transaccin Ti ejecuta leer (Q).
a. Si MT (Ti) <marca-temporal-E (Q) entonces Ti necesita leer un
valor de Q que ya se ha sobrescrito. Por tanto se rechaza la operacin
leer y Ti retrocede.
b. Si MT (Ti) > =marca-temporal-E (Q) entonces se ejecuta la
operacin leer y marca-temporal-L (Q) se asigna al mximo de
marca-temporal-L (Q) y de MT (Ti).

2. Supngase que la transaccin Ti ejecuta Escribir (Q).
a. Si MT (Ti) <marca-temporal-L (Q) entonces el valor de Q que
produce Ti se necesita previamente y el sistema asume que dicho
valor no se puede producir nunca. Por tanto se rechaza la operacin
escribir y Ti retrocede.
b. Si MT (Ti) <marca-temporal-E (Q) entonces Ti est intentando
escribir un valor de Q obsoleto. Por tanto se rechaza la operacin
escribir y Ti retrocede.
c. En otro caso se ejecuta la operacin escribir y MT (Ti) se asigna a
marca-temporal-E (Q).

Una vez recordados estos puntos, vemos cmo podramos responder a la
pregunta:
























T1 T2 T3 T4 A B C Explicacin
MT(T1)=0 MT(T2)=1 MT(T3)=2 MT(T4)=3 Em Lm Em Lm Em Lm
Leer A - 0 - - - - Em(A) sin valor Entonces
Lm (A) =
Max(Lm(A),MT(T1))=0
Leer (A) - 1 - - - - Em(A) sin valor Entonces
Lm (A) =
Max(Lm(A),MT(T2))=1
Leer (B) - 1 - 1 - - Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T2))=1
Leer (C) - 1 - 1 - 2 Em(C) sin valor Entonces
Lm (C) =
Max(Lm(C),MT(T3))=2
Escribir
(C)
- 1 - 1 2 2 Em(C) sin valor Entonces
Em (C) =MT(T3) =2
Escribir
(C)
- 1 - 1 3 2 Em (C)=2 <MT(T4)=3
entonces Em(C) =3
Leer (B) - 1 - 1 3 2 Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T1))=1
Leer (A) - 3 - 1 3 2 Em(A) sin valor Entonces
Lm (A) =
Max(Lm(A),MT(T4))=3
Escribir
(B)
- 3 0 1 3 2
Em(B) sin valor y Lm(B)=1
Entonces se rechaza la
Operacin escribir(B) y T1 se
retrocede
Leer (A) - 3 0 1 3 2 Em(A) sin valor Entonces
Lm (A) =
Max(Lm(A),MT(T3))=3

Con esta tabla queda aplicado el algoritmo de marcas temporales y se pueden
observar los valores en la tabla junto con una breve explicacin.

3.2 En el registro histrico hay dos esquemas de modificacin cules son y en
qu se diferencian?, Proporcionan siempre los mismos resultados? Cite
ejemplos de posibles situaciones en las que ambas den resultados diferentes,
caso de ser posible. (0.5 puntos)

Los dos esquemas de modificacin del registro histrico son:
1. Modificacin diferida de la base de datos.
2. Modificacin inmediata de la base de datos.

La diferencia fundamental es el momento en el que se realizan las operaciones
escribir en la base datos, la modificacin diferida retarda las operaciones escribir
de una transaccin hasta que la transaccin se compromete parcialmente, en la
modificacin inmediata se permite realizar la salida de las modificaciones de la
base de datos a la propia base de datos mientras que la transaccin est todava
en estado activo, por eso estas modificaciones se denominan modificaciones no
comprometidas.

Aunque la finalidad es la misma, no siempre producen las mismas ordenaciones
de los elementos.

Cmo ejemplo podemos usar dos transacciones T0 y T1, T0 resta 50 Euros de la
cuenta A y los aade a la cuenta B y T1 resta 100 euros a la cuenta C, siendo los
valores iniciales de las cuentas A =1000, B =2000 y C =700, ejecutando
secuencialmente ambas transacciones quedaran de la siguiente forma los RH si
usamos una u otra forma.

RH con Modificacin Diferida RH con Modificacin Inmediata
RH BBDD RH BBDD
<T0 iniciada> <T0 iniciada>
<T0, A, 950> <T0, A, 950>
<T0, B, 2050> <T0, B, 2050>
<T0 comprometida> A =950
A =950 B =2050
B =2050 <T0 comprometida>
<T1 iniciada> <T1 iniciada>
<T1, C, 600> <T1, C, 600>
<T1 comprometida> C =600
C =600 <T1 comprometida>

3.3 Mostrar el estado del registro histrico para esta planificacin para los dos
tipos de esquemas de modificacin. (1.25 puntos).

Tenemos la planificacin inicial, con un punto de revisin P justo antes de la
operacin leer (A) en la transaccin T4:

T1 T2 T3 T4
Leer (A)
Leer (A)
Leer (B)
Leer (C)
Escribir (C)
Escribir (C)
Leer (B)
Leer (A)
Escribir (B)
Leer (A)










Volvemos a poner en dos columnas, en cada una est el estado del RH segn el
esquema que usemos, donde se ve claramente las diferencias

RH con Modificacin Diferida RH con Modificacin Inmediata
RH BBDD RH BBDD
<T1 iniciada> <T1 iniciada>
<T2 iniciada> <T2 iniciada>
<T2 comprometida> <T2 comprometida>
<T3 iniciada> <T3 iniciada>
<T3, C, ---- > <T3, C, ---- >
<T4 iniciada> C =-----
<T4, C, ---- > <T4 iniciada>
<T4 comprometida> <T4, C, ---- >
C =----- C =-----
<T1, B, ----- > <T4 comprometida>
<T1 comprometida> <T1, B, ----- >
B =----- B =-----
<T3 comprometida> <T1 comprometida>
C =----- <T3 comprometida>

3.4 - qu efecto tendra el punto de revisin P en el Registro Histrico y en el
estado de la Base de Datos). (0.5 puntos).

Si se produjera un fallo

Si usamos el esquema de modificacin inmediata, al encontrarnos en la BBDD
las transacciones iniciadas, pero no comprometidas T1, T3 y T4 deben
deshacerse y no es necesario rehacer la transaccin T2 puesto que estaba
comprometida antes del punto de revisin. Si usamos la tcnica de modificacin
diferida no debemos deshacer las transacciones, puesto que todava no se ha
modificado la BBDD al no estar comprometidas las transacciones.
EXAMEN FEBRERO 2009, 2 SEMANA TIPO B

PREGUNTA 1

1.1 Por qu nos podra interesar almacenar partes de una base de datos en
computadores diferentes? Cules son las ventajes y desventajas de hacerlo?

Para comenzar recordaremos brevemente los dos enfoques de almacenamiento de
una relacin con un enfoque distribuido:

- Rplica: El sistema conserva varias rplicas (copias) idnticas de la relacin y
guarda cada rplica en un sitio diferente. La alternativa a las rplicas es
almacenar slo una copia de la relacin r.
- Fragmentacin: El sistema divide la relacin en varios fragmentos y guarda cada
fragmento en un sitio diferente.

Estas dos tcnicas pueden combinarse, dividiendo una relacin en varios fragmentos
y teniendo varias rplicas de cada fragmento.

Principalmente nos podra interesar por la disponibilidad, as nos aseguraramos que
si uno de los computadores falla, podremos seguir teniendo acceso a la base de datos
mientras se recupera el computador que fall, esto permite que podamos seguir
trabajando sin dejar todo el sistema parado por un fallo en el computador que
contiene la base de datos.

Las ventajas e inconvenientes principales son los siguientes:

Ventajas:
- Disponibilidad: Si alguno de los sitios que contiene a la relacin r falla, esa
relacin puede hallarse en otro sitio distinto. Por tanto, el sistema puede seguir
procesando las consultas que impliquen a r, pese al fallo del sitio.
- Paralelismo incrementado: En el caso en el que la mayora de los accesos a la
relacin r slo resultasen en lecturas, diferentes sitios podran procesar en
paralelo las lecturas que impliquen a r. Cuantas ms rplicas de r existan, mayor
ser la posibilidad de que los datos necesarios se encuentran en el sitio en que se
ejecuta la transaccin. Por tanto, la rplica de los datos minimiza la transmisin
entre los diferentes sitios.

Y los siguientes inconvenientes:
- Sobrecarga incrementada durante la actualizacin: El sistema debe asegurar que
todas las rplicas de la relacin r sean consistentes; en caso contrario pueden
producirse clculos errneos. Por tanto, siempre que se actualiza r, hay que propagar
la actualizacin a todos los sitios que contienen rplicas. El resultado es una
sobrecarga incrementada.


1.2 Unos grandes almacenes (a semejanza de El Corte Ingls) con tiendas en diferentes
ciudades quiere desarrollar un sistema distribuido de Bases de Datos:

1.2.1 Desarrolle la arquitectura del sistema explicando el papel de cada parte y los
protocolos necesarios (2 puntos).

En el sistema planteado, como en cualquier sistema distribuido, deberemos tener
en cuenta dos tipos de transacciones:
o Transacciones Locales.
o Transacciones Globales.
Para controlar cada tipo de transaccin nos hace falta un sistema, en el que cada
sitio contenga dos subsistemas:
o El gestor de transacciones: gestiona la ejecucin de las transacciones que
acceden a los datos almacenados en un sitio local.
o El coordinador de transacciones: coordina la ejecucin de las diferentes
transacciones (tanto locales como globales) iniciadas en ese sitio.
La arquitectura del sistema podra ser algo similar a la siguiente:



Necesitaramos de los siguientes protocolos:
o Protocolo de compromiso: Si hay que asegurar la atomicidad, todos los
sitios en los que se ejecute una transaccin T deben coincidir en el
resultado final de esa ejecucin. T debe comprometerse o abortarse en
todos los sitios. Para garantizar esta propiedad, el coordinador de
transacciones de T debe ejecutar un protocolo de compromiso.
o Protocolos de bloqueo: Para controlar la concurrencia de las
transacciones y evitar inconsistencias en la base de datos, hacen falta
protocolos de bloqueo, se pueden adaptar los protocolos de bloqueo
conocidos, teniendo en cuenta que hay que modificar el modo en el que
el gestor de bloqueos trata los datos replicados.

1.2.2 Cmo se puede garantizar la atomicidad de las transacciones en este sistema?
(1 punto).

CT1








GT1

CTn








GTn
Mediante el protocolo de compromiso, cmo se explico anteriormente, existen
diferentes protocolos de compromiso, con ventajas e inconvenientes, entre los
ms utilizados estn los siguientes
o Compromiso de dos fases.
o Compromiso de tres fases.
o Mensajes persistentes (alternativo a los otros dos protocolos).


PREGUNTA 2

Sea la siguiente planificacin P formada por las transacciones T1, T2 y T3:

T1 T2 T3
Leer (A)
Leer (A)
Leer (B)
Leer (C)
Escribir (C)
Escribir (A)
Leer (B)
Escribir (C)
Escribir (B)
Lee (A)

2.1 - Es esta planificacin secuenciable en cuanto a vistas?. En caso afirmativo,
mostrar la posible planificacin secuencial, y en cualquier caso, justificar la respuesta
(0.5 puntos).

Para que sea secuenciable en cuanto a vistas debemos cumplir las tres condiciones
siguientes:
- Para todo elemento de datos Q, si la transaccin Ti, lee el valor inicial de Q en la
planificacin P, entonces Ti debe leer el valor inicial de Q en la planificacin P.
- Para todo elemento de datos Q, si la transaccin Ti ejecuta leer (Q) en la
planificacin P y el valor lo ha producido la transaccin Tj (si existe), entonces
en la planificacin P, la transaccin Ti debe leer el valor de Q que haya
producido Tj.
- Para todo elemento de datos Q, la transaccin (si existe) que realice la ltima
operacin escribir (Q) en la planificacin P, debe realizar la ltima operacin
escribir (Q) en la planificacin P.










Teniendo en cuenta estas tres condiciones, si podemos encontrar una panificacin
secuencial que las cumpla ser secuenciable en cuanto a vistas, vemoslo por pasos:

T1 T2 T3
Leer (A)
Leer (B)
Leer (B)
Leer (A)
Leer (C)
Escribir (C)
Escribir (A)
Escribir (C)
Escribir (B)
Lee (A)

Podemos intercambiar sin problemas las posiciones de las instrucciones Leer (A) y Leer
(B) de T1 con las transacciones T2 y T3, pues no estn en conflicto, ni incumplen
ninguna de las condiciones, ahora veamos las dependencias entre T2 y T3:

T1 T2 T3
Leer (A)
Leer (B)
Leer (B)
Leer (C)
Escribir (C)
Escribir (B)
Leer (A)
Escribir (A)
Lee (A)
Escribir (C)

Aqu tenemos un problema, pues segn las condiciones, T3 debe leer el valor de A que
escribe T2, y T2 debe escribir en ltimo lugar C, por lo que no podemos pasar de la
planificacin anterior, por lo tanto no llegamos una planificacin secuencial y no es
secuenciable en cuanto a vistas.

2.2 Es esta planificacin secuenciable en cuanto a conflictos?. En caso afirmativo,
mostrar la posible planificacin secuencial, y en cualquier caso justificar la respuesta
(0.5 puntos).

Vamos a comprobar si es o no secuenciable en cuanto a conflictos generando un grafo
de precedencia, de esta manera podemos ver si es o no secuenciable en cuanto a
conflictos de una forma sencilla, si el grafo no tiene ciclos es secuenciable en cuanto a
conflictos, si tiene ciclos no lo es, las reglas para dibujar el grafo son las siguientes:

Sea un grafo de precedencia a generar. Se parte de la base de que se tiene un
conjunto V de vrtices, que son diferentes transacciones que participan en la
planificacin, y un conjunto de arcos A. Este conjunto de arcos A tiene todos los arcos
Ti ->Tj para los cuales se da una de las tres condiciones siguientes:
1 Ti ejecuta escribir (Q) antes de que Tj ejecute leer (Q)
2 Ti ejecuta leer (Q) antes de que Tj ejecute escribir (Q)
3 Ti ejecuta escribir (Q) antes de que Tj ejecute escribir (Q).

Siguiendo estas reglas, el grafo de precedencia que queda es el que se muestra a
continuacin:



Se puede observar que el grafo tiene un ciclo entre T2 y T3, puesto que T3 ejecuta
escribir (C) antes de que T2 ejecute escribir (C), y a su vez T2 ejecuta escribir (A) antes
de que T3 ejecute Leer (A), por tanto contiene arcos de T2 a T3 y de T3 a T2, formando
un ciclo. Y por tanto no es secuenciable en cuanto a conflictos,

2.3 Realizar una planificacin concurrente secuenciable en cuanto a conflictos
utilizando el mtodo de protocolo de bloqueo de dos fases refinado y justificar la
respuesta (1 punto).

El protocolo de bloqueo de dos fases refinado, aade la posibilidad de convertir
los bloqueos exclusivos en compartidos y viceversa, mediante las operaciones subir (Q),
que convierte un bloqueo compartido en exclusivo y bajar (Q) que convierte un bloqueo
exclusivo en compartido, teniendo en cuenta que la subida slo se puede dar en la fase
de crecimiento y la bajada en la fase de decrecimiento.

Cmo se ha comprobado no es posible aplicar el protocolo de bloqueo de dos
fases sobre la planificacin dada, puesto que la planificacin proporcionada no es
secuenciable, por lo que consideraremos el conjunto de instrucciones de cada una de las
transacciones.

T1 T2 T3
Leer (A)
Leer (B)
Leer (B)
Leer (A)
Escribir (A)
Escribir (C)
Leer (C)
Escribir (C)
Escribir (B)
Leer (A)





T1 T2
T3
Aplicando el protocolo podramos obtener una panificacin como la que
mostramos a continuacin:

T1 T2 T3
Bloquear-C (A)
Leer (A)

Bloquear-C (A)
Bloquear-C (C)
Leer (A)

Bloquear-C (A)
Leer (A)
Bloquear-C (B)
Leer (B)
Desbloquear-C (A)

Bloquear-C (C)
Bloquear-C (B)
Leer (C)
Subir (A)
Escribir (A)

Subir (C)
Escribir (C)
Leer (B)
Desbloquear-C (B)

Subir (B)
Escribir (B)
Desbloquear-X (C)
Desbloquear-X (B)
Desbloquear-X (A)
Subir (C)
Escribir (C)
Desbloquear-X (A)
Desbloquear-X (C)


2.4 Utilizando el protocolo en rbol, con el grafo: C ->B ->A, realizar una
planificacin secuenciable utilizando este protocolo (1 punto).

Recordemos las normas del protocolo de bloqueo de rbol:
Slo se permite la instruccin Bloquear-X, cada transaccin puede bloquear un
elemento de datos al menos una vez y debe seguir las siguientes reglas:
- El primer bloqueo de Ti puede ser sobre cualquier elemento de datos.
- Posteriormente, Ti puede bloquear un elemento de datos Q slo si Ti est
bloqueando actualmente al padre de Q.
- Los elementos de datos bloqueados se pueden desbloquear en cualquier
momento.
- Ti no puede bloquear de nuevo un elemento de datos que ya haya bloqueado y
desbloqueado anteriormente.









Tras esto y con el grafo que nos dan: C->B->A, podramos hacer la siguiente
planificacin, con las transacciones T1, T2 y T3.

T1 T2 T3
Bloquear-X (B)
Bloquear-X (A)
Leer (A)

Leer (B)
Desbloquear-X (A)

Bloquear-X (C)
Leer (B)
Desbloquear-X (B)

Bloquear-X (B)
Bloquear-X (A)
Leer (A)


Escribir (A)
Desbloquear-X (A)
Desbloquear-X (B)

Escribir (C)
Desbloquear-X (C)

Bloquear-X (C)
Leer (C)
Bloquear-X (B)
Escribir (B)
Bloquear-X (A)
Escribir (C)
Desbloquear-X (C)
Leer (A)
Desbloquear-X (A)
Desbloquear-X (B)
















PREGUNTA 3

Sea la siguiente planificacin P:

T1 T2 T3 T4
Escribir (A)
Leer (A)
Leer (B)
Leer (C)
Escribir (A)
Escribir (B)
Leer (B)
Leer (A) *
Escribir (B)
Leer (A)

3.1 Dato que el instante inicial es t=0, aplicar el algoritmo de marcas temporales a esta
planificacin para establecer su concurrencia, incluyendo las marcas temporales en la
solucin (1.25 puntos)

Primero recordemos dos conceptos sobre las marcas temporales y cmo opera el
protocolo de ordenacin por marcas temporales:
- Marca-temporal-E (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito escribir (Q)
- Marca-temporal-L (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito leer (Q)

Forma de operar del protocolo:

1. Supngase que la transaccin Ti ejecuta leer (Q).
a. Si MT (Ti) <marca-temporal-E (Q) entonces Ti necesita leer un
valor de Q que ya se ha sobrescrito. Por tanto se rechaza la operacin
leer y Ti retrocede.
b. Si MT (Ti) > =marca-temporal-E (Q) entonces se ejecuta la
operacin leer y marca-temporal-L (Q) se asigna al mximo de
marca-temporal-L (Q) y de MT (Ti).

2. Supngase que la transaccin Ti ejecuta Escribir (Q).
a. Si MT (Ti) <marca-temporal-L (Q) entonces el valor de Q que
produce Ti se necesita previamente y el sistema asume que dicho
valor no se puede producir nunca. Por tanto se rechaza la operacin
escribir y Ti retrocede.
b. Si MT (Ti) <marca-temporal-E (Q) entonces Ti est intentando
escribir un valor de Q obsoleto. Por tanto se rechaza la operacin
escribir y Ti retrocede.
c. En otro caso se ejecuta la operacin escribir y MT (Ti) se asigna a
marca-temporal-E (Q).

Una vez recordados estos puntos, vemos cmo podramos responder a la
pregunta:
T1 T2 T3 T4 A B C Explicacin
MT(T1)=0 MT(T2)=1 MT(T3)=2 MT(T4)=3 Em Lm Em Lm Em Lm
Escribir
(A)
1 - - - - - Em(A) sin valor Entonces
Em (A) =MT(T2) =1
Leer (A) 1 2 - - - - Em(A) =1 Entonces
Lm (A) =
Max(Lm(A),MT(T3))=2
Leer (B) 1 2 - 1 - - Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T2))=1
Leer (C) 1 2 - 1 - 2 Em(C) sin valor Entonces
Lm (C) =
Max(Lm(C),MT(T3))=2
Escribir
(A)
3 2 - 1 - 2 Em(A) =1 y Lm(A) =2
Entonces
Em (A) =MT(T4) =3
Escribir
(B)
3 2 0 1 - 2 Em(B) sin valor Entonces
Em (B) =MT(T1) =0
Leer (B) 3 2 0 1 - 2 Em(B) =0 Entonces
Lm (B) =
Max(Lm(B),MT(T2))=1
Leer (A) 3 3 0 1 - 2 Em(A) =3 Entonces
Lm (A) =
Max(Lm(A),MT(T4))=3
Escribir
(B)
3 3 0 1 - 2 Em(B) =0 Entonces
Em (B) =MT(T1) =0
Leer (A) 3 3 0 1 - 2 Em(A) =3 >que
MT(T2)=1, por tanto
Se necesita leer un valor
ya sobrescrito, se
rechaza la operacin y
retrocede

Con esta tabla queda aplicado el algoritmo de marcas temporales y se pueden
observar los valores en la tabla junto con una breve explicacin.

3.2 Mostrar el estado del Registro histrico para esta planificacin para los dos tipos de
esquemas de modificacin (1.25 puntos)


Los dos esquemas de modificacin del registro histrico son:

1. Modificacin diferida de la base de datos.
2. Modificacin inmediata de la base de datos.

La diferencia fundamental es el momento en el que se realizan las operaciones
escribir en la base datos, la modificacin diferida retarda las operaciones escribir de una
transaccin hasta que la transaccin se compromete parcialmente, en la modificacin
inmediata se permite realizar la salida de las modificaciones de la base de datos a la
propia base de datos mientras que la transaccin est todava en estado activo, por eso
estas modificaciones se denominan modificaciones no comprometidas.

Aunque la finalidad es la misma, no siempre producen las mismas ordenaciones de los
elemento.

RH con Modificacin Diferida RH con Modificacin Inmediata
RH BBDD RH BBDD
<T2 iniciada> <T2 iniciada>
<T3 iniciada> <T2, A, ---- >
<T3 comprometida> A =-----
<T4 iniciada> <T3 iniciada>
<T4, A, ---- > <T3 comprometida>
<T1 iniciada> <T4 iniciada>
<T1, B, ---- > <T4, A, ---- >
<T4, comprometida> A =-----
A =---- <T1 iniciada>
<T1, B, ---- > <T1, B, ---- >
<T1 comprometida> B =-----
B =----- <T4, comprometida>
B =----- <T1, B, ---- >
<T2 comprometida> B =-----
A =----- <T1 comprometida>
<T2 comprometida>

Ahora podemos observar las diferencias entre cada uno de los esquemas.

3.3 Suponga que se produce un fallo en el instante marcado como (*). Indicar como se
recuperara el estado de la base de datos en el caso de un registro histrico con
modificacin diferida de la base de datos (0.5 puntos).

Puesto que en el momento del fallo solo se ha comprometido T3, que no realiza
ninguna modificacin en la base de datos, realmente no habra que hacer nada, pero si
queremos ser estrictos al encontrar ene l registro histrico la transaccin T3
comprometida, deberamos hacer lo siguiente:
- Rehacer (T3)
Lo idea es recorrer el registro histrico hacia atrs, rehaciendo todas las
transacciones que estn comprometidas, y eliminando los registros de las transacciones
incompletas.
EXAMEN SEPTIEMBRE 2008, TIPO A

PREGUNTA 1

1.1 Una posible arquitectura de base de datos son los sistemas paralelos. Qu tipo
de sistemas son estos?, en qu se basan?, Qu ventajas aportan y qu
inconvenientes presentan? (1 punto).

Son sistemas que mejoran la velocidad de procesamiento y de E/S porque la CPU y
los discos funcionan en paralelo.

El procesamiento en paralelo se basa en realizar muchas operaciones
simultneamente mientras que en el procesamiento secuencial, los distintos pasos
computacionales han de ejecutarse en serie (uno detrs de otro). Consiguen esto
aumentando el nmero de procesadores del sistema, pudiendo tener unos pocos muy
potentes (paralelismo de grano grueso) o miles de procesadores ms pequeos
(paralelismo masivo o de grano fino).

Las ventajas e inconvenientes principales son los siguientes:

Ventajas:
- Ganancia de velocidad: Se refiere a la ejecucin en menos tiempo de una tarea
dada mediante el incremento de paralelismo. La ganancia de velocidad debida al
paralelismo se define como Tp/Tg.
- Ampliabilidad: Se refiere al manejo de transacciones ms largas mediante el
incremento de paralelismo.

Y los siguientes inconvenientes:
- Costes de inicio: El inicio de un nico proceso lleva asociado un coste. En una
operacin paralela compuesta por miles de procesos el tiempo de inicio del proceso
puede llegar a ser mucho mayor que el tiempo real de procesamiento, lo que influye
negativamente en la ganancia de velocidad.
- Interferencia: Como los procesos que se ejecutan en un sistema paralelo acceden
con frecuencia a recursos compartidos, pueden sufrir un cierto retardo como
consecuencia de la interferencia de cada nuevo proceso en la competencia por los
recursos existentes por el acceso a los recursos ms comunes, como el bus del
sistema, discos compartidos, etc...
- Sesgo: Al dividir cada tarea en un nmero de pasos paralelos se reduce el tamao
del paso medio. Es ms, el tiempo de servicio de la tarea completa vendr
determinado por el tiempo de servicio del paso ms lento.

1.2 Dentro de los sistemas paralelos, qu se entiende por redes de interconexin?,
Cules son los ms utilizados o los ms frecuentes?. Proporcione sus caractersticas
principales (1 punto).

Los sistemas paralelos estn constituidos por un conjunto de componentes
(procesadores, memoria y discos) que pueden comunicarse entre s a travs de una
red de interconexin. Entenderamos por red de interconexin al tipo que adopta
esta red, que principalmente son de tres tipos:

Bus: Todos los componentes del sistema pueden enviar o recibir datos de un
nico bus de comunicaciones, esta puede ser una red Ethernet o una
interconexin paralela. Este tipo de arquitectura trabaja bien para un pequeo
nmero de procesadores. Sin embargo, como el bus slo puede gestionar la
comunicacin de un nico componente en cada momento, las arquitecturas de
bus son menos apropiadas segn aumenta el paralelismo
Malla: Los componentes se organizan como los nodos de una retcula de modo
que cada componente est conectado con todos los nodos adyacentes, en una
malla bidimensional cada nodo est conectado con cuatro nodos adyacentes, en
una tridimensional lo estara con seis nodos adyacentes. Los nodos entre los que
no existe una conexin directa pueden comunicarse mediante el envo de
mensajes a travs de una secuencia de nodos intermedios que s dispongan de
conexin directa. A medida que aumenta el nmero de componentes tambin
aumenta el nmero de enlaces de comunicacin por lo que la capacidad de
comunicacin de una malla mejora cuanto mayor es el paralelismo.
Hipercubo: Se asigna a cada componente un nmero binario de modo que dos
componentes tienen una conexin directa si sus correspondientes
representaciones binaras difieren en un solo bit. As, cada uno de los n
componentes est conectado con otros log(n) componentes. En un Hipercubo un
mensaje de un componente puede llegar a cualquier otro componente de la red
atravesando a lo sumo log(n) enlaces. Por el contrario en una malla un
componente puede estar a 2(SQR(n)-1) enlaces de otros componentes o a
SQR(n) enlaces si la malla conecta entre s los bordes opuestos. De esta manera
el retardo de la comunicacin en un Hipercubo es efectivamente menor que en
una malla.

1.3 Dentro del conjunto de mquinas paralelas, podemos encontrar diferentes
arquitecturas. Cules son las principales arquitecturas paralelas de bases de datos?.
Proporcione las caractersticas principales y algn ejemplo (1 punto).

Las principales arquitecturas son:

- Memoria compartida: Todos los procesadores comparten una memoria.
o Beneficio:
Extremada eficiencia en cuanto a la comunicacin entre
procesadores.
o Inconvenientes:
No se puede ir ms all de 32 64 procesadores porque el bus o
la interconexin se convertira en un cuello de botella.
Aumento de la sobrecarga en el mantenimiento de la coherencia
de la cach cuando aumentan los procesadores.
- Disco compartido: Todos los procesadores comparten un conjunto de discos
comn. Algunas veces los sistemas de disco compartido se denominan
agrupaciones.
o Beneficios:
El bus de la memoria deja de ser un cuello de botella (respecto a
los sistemas con memoria compartida).
Es una forma barata de proporcionar una cierta tolerancia ante
fallos.
o Inconvenientes:
Principalmente la Ampliabilidad, ahora el cuello de botella es la
interconexin con el subsistema de discos.
- Sin compartimento: Los procesadores no comparten ni memoria ni disco.
o Beneficios:
Mas ampliables
Pueden soportar un nmero mayor de procesadores.
o Inconvenientes:
Mayor coste de comunicacin y acceso a discos remotos.
- J errquico: Este modelo es un hbrido de las arquitecturas anteriores.
o Beneficios:
Tiene las ventajas del resto, pues es una mezcla de las anteriores,
en distintos niveles.
o Inconvenientes:
Alta complejidad en su programacin, hay que tener en cuenta
todos los posibles problemas de las anteriores arquitecturas para
que resulte verdaderamente ms eficiente.
1.4 - Es lo mismo un sistema paralelo que uno distribuido? J ustifique la respuesta y
proporcione las principales similitudes y diferencias (1 punto).

No son lo mismo, mientras los sistemas paralelos consisten en ampliar los
procesadores y los discos de una mquina para que trabajen en paralelo, en un sistema
distribuido consiste en almacenar la base de datos en distintas computadoras que se
comunican mediante algn sistema (red local, internet..) Estas no comparten ni
memoria ni discos al contrario que en los sistemas paralelos.
Las principales diferencias entre los sistemas distribuidos y los sistemas
paralelos son las siguientes:
- Procesadores y discos no compartidos (sistemas distribuidos).
- Se encuentran en varios lugares geogrficos (sistemas distribuidos).
- Existen dos tipos de transacciones: Locales y Globales (Sistemas distribuidos).
Cmo similitudes, podramos contar que ambos sistemas buscan ganar velocidad en
la ejecucin de las tareas y una mayor Ampliabilidad, en un sistema mediante
transacciones ms largas incrementando el paralelismo y en el otro distribuyendo las
tareas a realizar entre los distintos sitios.

PREGUNTA 2

Sea la siguiente planificacin S de transacciones concurrentes:

T1 T2 T3 T4
Leer (A)
Leer (A)
Escribir (A)
Leer (B)
Escribir (B)
Escribir (A)
Leer (B)
Escribir (A)
Leer (C)
Escribir (A)
Escribir (C)

2.1 - Es esta planificacin secuenciable en cuanto a conflictos?. Y en caso de que fuera
secuenciable, muestre la planificacin secuencial equivalente (0.75 puntos).

Vamos a comprobar si es o no secuenciable en cuanto a conflictos generando un grafo
de precedencia, de esta manera podemos ver si es o no secuenciable en cuanto a
conflictos de una forma sencilla, si el grafo no tiene ciclos es secuenciable en cuanto a
conflictos, si tiene ciclos no lo es, las reglas para dibujar el grafo son las siguientes:

Sea un grafo de precedencia a generar. Se parte de la base de que se tiene un
conjunto V de vrtices, que son diferentes transacciones que participan en la
planificacin, y un conjunto de arcos A. Este conjunto de arcos A tiene todos los arcos
Ti ->Tj para los cuales se da una de las tres condiciones siguientes:
1 Ti ejecuta escribir (Q) antes de que Tj ejecute leer (Q)
2 Ti ejecuta leer (Q) antes de que Tj ejecute escribir (Q)
3 Ti ejecuta escribir (Q) antes de que Tj ejecute escribir (Q).

Siguiendo estas reglas, el grafo de precedencia que queda es el que se muestra a
continuacin:



Se puede observar que el grafo tiene dos ciclos, un ciclo entre T1 y T2, puesto que T1
ejecuta leer (A) antes de que T2 ejecute escribir (A), y a su vez T2 ejecuta escribir (A)
antes de que T1 ejecute escribir (A), y otro entre T1 y T3, puesto que T1 ejecuta escribir
(A) antes de que T4 ejecute escribir (A) y a su vez T3 ejecuta leer (B) antes de que T1
ejecute escribir (B), por tanto contiene arcos de T1 a T2 y de T2 a T1, de T1 a T3 y de
T3 a T1 formando dos ciclos, uno entre T1 y T3 y otro entre T1 y T2. Y por tanto no es
secuenciable en cuanto a conflictos,

2.2 Utilizando el protocolo de bloqueo en dos fases estricto, haga una planificacin
secuenciable utilizando este protocolo, caso de ser posible (1.25 puntos).

El protocolo de bloqueo estricto de dos fases, exige que adems de ser de dos fases, una
transaccin debe poseer todos los bloqueos en modo exclusivo que tome hasta que dicha
transaccin se complete.

Con este requisito y tendiendo en cuenta que la planificacin anterior no es secuenciable
en cuanto a conflictos y con conflictos entre las transacciones T1 T2 y T1 T3, con
esta panificacin no podemos hacerlo, pero si generamos otra planificacin que sea
T1 T2
T3
T4
equivalente, secuenciable en cuanto a vistas por ejemplo, para ello repasemos los
requisitos de la secuencialidad en cuanto a vistas:

Para que sea secuenciable en cuanto a vistas debemos cumplir las tres condiciones
siguientes:
- Para todo elemento de datos Q, si la transaccin Ti, lee el valor inicial de Q en la
planificacin P, entonces Ti debe leer el valor inicial de Q en la planificacin P.
- Para todo elemento de datos Q, si la transaccin Ti ejecuta leer (Q) en la
planificacin P y el valor lo ha producido la transaccin Tj (si existe), entonces
en la planificacin P, la transaccin Ti debe leer el valor de Q que haya
producido Tj.
- Para todo elemento de datos Q, la transaccin (si existe) que realice la ltima
operacin escribir (Q) en la planificacin P, debe realizar la ltima operacin
escribir (Q) en la planificacin P.
Con estas condiciones, la planificacin realicemos tiene que cumplir las siguientes
condiciones:
- T1 debe realizar la lectura del valor inicial de A
- T2 debe realizar la lectura del valor inicial de A
- T3 debe realizar la lectura del valor inicial de B
- T3 debe realizar la lectura del valor inicial de C
- T4 debe realizar la lectura de B que produce T1
- T3 debe realizar la ltima escritura de A
- T4 debe realizar la ltima escritura de B
- T1 debe realizar la ltima escritura de B

Con estas normas es imposible que generemos una planificacin que sea equivalente a
la proporcionada y que adems cumpla con el protocolo de bloqueo de dos fases
estricto, pero podemos realizar la siguiente planificacin, si slo tomamos en cuenta la
secuencialidad de las transacciones T1->T2->T3->T4:

T1 T2 T3 T4
Bloquear-X (A)
Bloquear-(X) (B)
Bloquear-X (C)
Leer (A)
Escribir (B)
Desbloquear-X(B)
Bloquear-X (B)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Leer (B)
Leer (A)
Escribir (A)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Desbloquear-X (B)
Bloquear-X(B)
Leer (C)
Leer (B)
Desbloquear-X (C)
Bloquear-X (C)
Escribir (A)
Escribir (C)
Desbloquear-X (A)
Desbloquear-X (C)


2.3 Suponiendo que el tiempo inicial t=0, aplicar el algoritmo de marcas temporales a
esta planificacin para establecer su concurrencia, incluyendo las marcas temporales en
la solucin (1.5 puntos).

Primero recordemos dos conceptos sobre las marcas temporales y cmo opera el
protocolo de ordenacin por marcas temporales:
- Marca-temporal-E (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito escribir (Q)
- Marca-temporal-L (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito leer (Q)

Forma de operar del protocolo:

1. Supngase que la transaccin Ti ejecuta leer (Q).
a. Si MT (Ti) <marca-temporal-E (Q) entonces Ti necesita leer un
valor de Q que ya se ha sobrescrito. Por tanto se rechaza la operacin
leer y Ti retrocede.
b. Si MT (Ti) > =marca-temporal-E (Q) entonces se ejecuta la
operacin leer y marca-temporal-L (Q) se asigna al mximo de
marca-temporal-L (Q) y de MT (Ti).

2. Supngase que la transaccin Ti ejecuta Escribir (Q).
a. Si MT (Ti) <marca-temporal-L (Q) entonces el valor de Q que
produce Ti se necesita previamente y el sistema asume que dicho
valor no se puede producir nunca. Por tanto se rechaza la operacin
escribir y Ti retrocede.
b. Si MT (Ti) <marca-temporal-E (Q) entonces Ti est intentando
escribir un valor de Q obsoleto. Por tanto se rechaza la operacin
escribir y Ti retrocede.
c. En otro caso se ejecuta la operacin escribir y MT (Ti) se asigna a
marca-temporal-E (Q).









T1 T2 T3 T4 A B C Explicacin
MT(T1)=0 MT(T2)=1 MT(T3)=2 MT(T4)=3 Em Lm Em Lm Em Lm
Leer (A) - 0 - - - - Em(A) sin valor Entonces
Lm (A) =
Max(Lm(A),MT(T2))=1
Leer (A)

- 1 - - - - Em(A) sin valor, entonces
Lm (A) =
Max(Lm(A),MT(T2))=1
Escribir
(A)
1 1 - - - - Em(A) sin valor,
Lm(A) =1, Entonces
Em (A) =MT(T2)
Leer (B) 1 1 - 2 - - Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T3))=2
Escribir
(B)
1 1 - 2 - - MT(T1)=0 <Lm(B)=2,
el sistema asume que el
valor de B que produce
T1 se necesita
previamente, y el
sistema asume que no se
puede producir nunca, se
rechaza y T1 retrocede.
Escribir
(A)
1 1 - 2 - - MT(T1)=0 <Lm(A)=1,
el sistema asume que el
valor de A que produce
T1 se necesita
previamente, y el
sistema asume que no se
puede producir nunca, se
rechaza y T1 retrocede.
Leer (B) 1 1 - 3 - - Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T4))=3
Escribir
(A)
1 1 - 3 - - Lm(A)=1,Em(A)=1
MT(T2)=1
Em (A) =MT(T1)=1
Leer (C) 1 1 - 3 - 2 Em(C) sin valor Entonces
Lm (C) =
Max(Lm(C),MT(T3))=2
Escribir
(A)
2 1 - 3 - 2 Lm(A)=1, Em(A)=1,
MT(T2)=2, entonces
Em(A)=MT(T3)=2
Escribir
(C)
2 1 - 3 3 2 Lm(C)=2,
Em(C) sin valor,
MT(T4)=3, entonces
Em(C)=MT(T4)=3




PREGUNTA 3

Sea el siguiente fichero XML:

<?xml versin=1.0?>
<biblioteca nombre=Benito Prez Galds>
<datospersonales>
<empleado cargo=director>
<nombre>J uan</nombre>
<apellidos>Pardo del Monte</apellidos>
</empleado>
<socio tipo=infantil>
<num>1</num>
<nombre>Miguel>/nombre>
<apellidos>Sez Prez</<apellidos>
</socio>
</datospersonales>
<datosbibliograficos>
<libro>
<titulo>Fundamentos de Bases de Datos</titulo>
<editorial>El Barco de Vapor</editorial>
</libro>
<libro>
<titulo>Vacas gordas, sanas y hermosas</titulo>
<editorial>De lo mas, lo mejor</editorial>
</libro>
<revista>
<titulo>Science</titulo>
<tematica>Naturaleza</tematica>
</revista>
</datosbibliograficos>
</biblioteca>

3.1 Proporcionar un DTD que valide la estructura mostrada en el enunciado y sea
coherente. (0.5 puntos).

<!ELEMENT biblioteca (datospersonales, datosbibliograficos)+>
<!ATTLIST biblioteca nombre CDATA #REQUIRED>
<!ELEMENT datospersonales (empleado, socio)+>
<!ELEMENT empleado (nombre, apellidos)>
<!ATTLIST empleado cargo CDATA #REQUIRED>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellidos (#PCDATA)>
<!ELEMENT socio (num, nombre, apellidos)>
<!ATTLIST socio tipo CDATA #REQUIRED>
<!ELEMENT num (#PCDATA)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellidos (#PCDATA)>
<!ELEMENT datosbibliograficos (libro | revista)+>
<!ELEMENT libro (titulo, editorial)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT editorial (#PCDATA)>
<!ELEMENT revista (titulo, revista)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT revista (#PCDATA)>

3.2 Hacer las siguientes consultas XQuery: una que permita recuperar todos los libros
que no son de la editorial El Barco de Vapor (0.25 puntos) y otra que recupere los
empleados con cargo Auxiliar de Biblioteca (0.25 puntos).


for $b in //libro
let $c :=for $a in //libro
where $a/nombre =El Barco de Vapor
return $a
where empty ($c)
return $b

for $b in //empleado
where $b/cargo=Auxiliar de Biblioteca
return $b

3.3 Elaborar una hoja de estilos XSL, que permita mostrar la siguiente informacin por
pantalla (1.5 puntos).

Biblioteca Benito Prez Galds
Libros
Ttulo: Fundamentos de Bases de Datos
Editorial: EL Barco de Vapor
Ttulo: Vacas gordas, sanas y hermosas
Editorial: De lo ms, lo mejor

<xsl:template match=biblioteca>
<html>
<body>
<ul>
<xsl:apply-templates select=libro/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match=libro>
<li>
<xsl:value-of-select=libro>
</xsl:template>

EXAMEN SEPTIEMBRE DE 2009

PREGUNTA 1 (3 puntos)

1.1.1- Por qu son populares las mquinas paralelas?
La fuerza que ha impulsado a los sistemas paralelos de bases de datos ha sido la
demanda de aplicaciones que han de manejar bases de datos extremadamente
grandes, o que tienen que procesar un nmero enorme de transacciones por
segundo.

1.1.2- Cules son los dos tipos de paralelismo que pueden tener?
Principalmente hay dos tipos de paralelismo en funcin del diseo del sistema
paralelo, que seran:
- Paralelismo de grano grueso, que consiste en un pequeo nmero de
procesadores muy potente.
- Paralelismo de grano fino, que usa miles de procesadores ms pequeos.

1.1.3- Qu son los dos aspectos importantes a la hora de estudiar el paralelismo?
Los dos aspectos importantes a la hora de estudiar los sistemas paralelos son:
- La ampliabilidad, que se refiere al manejo de transacciones ms largas
mediante el incremento del grado de paralelismo.
- La ganancia de velocidad, que se refiere a la ejecucin en menos tiempo de
una tarea dada mediante el incremento del grado de paralelismo.

1.2.1 - Qu son las medidas principales para evaluar el rendimiento de un SGBD?
Los dos aspectos importantes que evalan el rendimiento de un SGBD son:
- Productividad: Es el nmero de tareas que pueden completarse en un
intervalo de tiempo determinado.
- Tiempo de Respuesta: Es la cantidad de tiempo que necesita para completar
una nica tarea a partir del momento en que se enve.

1.2.2 - Cmo influye el paralelismo en cada caso?
- Un sistema que procesa un gran nmero de pequeas transacciones puede
mejorar la productividad realizando muchas transacciones en paralelo.
- Un sistema que procese transacciones largas puede mejorar el tiempo de
respuesta y la productividad realizando en paralelo las distintas subtareas de
cada transaccin.

1.3 A la hora de contemplar la utilizacin del paralelismo en un SGBD, qu factores
hay que tener en cuenta porque pueden trabajar en contra de su eficiencia?.
Los factores que pueden trabajar en contra de la eficiencia del paralelismo y que
hay que controlar son:
- Costes de inicio: El inicio de un nico proceso lleva asociado un coste. En
una operacin paralela compuesta por miles de procesos el tiempo de inicio
puede llegar a ser mucho mayor que el tiempo real de procesamiento, lo que
influye negativamente en a ganancia de velocidad.
- Interferencia: Como los procesos que se ejecutan en un sistema paralelo
acceden con frecuencia a recursos compartidos, pueden sufrir un cierto
retardo como consecuencia de la interferencia de cada nuevo proceso en la
competencia con los procesos existentes por el acceso a los recursos ms
comunes, como el bus del sistema, los discos compartidos o incluso los
bloqueos, este fenmeno afecta tanto a la ganancia de velocidad como a la
ampliabilidad.
- Sesgo: Al dividir cada tarea en un cierto nmero de pasos paralelos se reduce
el tamao del paso medio. Es ms, el tiempo de servicio de la tarea completa
vendr determinado por el tiempo de servicio del paso ms lento.
Normalmente es difcil dividir una tarea en partes exactamente iguales,
entonces se dice que la forma de la distribucin de los tamaos es segada.


PREGUNTA 2 (3.5 PUNTOS)

Sea la siguiente planificacin P formada por las transacciones T1, T2 y T3:

T1 T2 T3
Leer (B)
Escribir (A)
Leer (A)
Leer (B)
Leer (A)
Escribir (A)
Escribir (A)
Escribir (C)
Escribir (A)
Leer (C)

Se pide:

2.1 - Es esta planificacin secuenciable en cuanto a conflictos?. En caso afirmativo,
mostrar la posible planificacin secuencia, y en cualquier caso justificar la respuesta.

Vamos a comprobar si es o no secuenciable en cuanto a conflictos generando un grafo
de precedencia, de esta manera podemos ver si es o no secuenciable en cuanto a
conflictos de una forma sencilla, si el grafo no tiene ciclos es secuenciable en cuanto a
conflictos, si tiene ciclos no lo es, las reglas para dibujar el grafo son las siguientes:

Sea un grafo de precedencia a generar. Se parte de la base de que se tiene un
conjunto V de vrtices, que son diferentes transacciones que participan en la
planificacin, y un conjunto de arcos A. Este conjunto de arcos A tiene todos los arcos
Ti ->Tj para los cuales se da una de las tres condiciones siguientes:
1 Ti ejecuta escribir (Q) antes de que Tj ejecute leer (Q)
2 Ti ejecuta leer (Q) antes de que Tj ejecute escribir (Q)
3 Ti ejecuta escribir (Q) antes de que Tj ejecute escribir (Q).

Siguiendo estas reglas, el grafo de precedencia que queda es el que se muestra a
continuacin:



Se puede observar que el grafo tiene dos ciclos, un ciclo entre T1 y T3, puesto que T1
ejecuta Escribir (A) antes de que T3 ejecute escribir (A), y a su vez T3 ejecuta Leer (A)
antes de que T1 ejecute escribir (A). Y por tanto no es secuenciable en cuanto a
conflictos, no necesitando buscar ms ciclos, pues ya no es secuenciable en cuanto a
conflictos.

2.2 - Es esta planificacin secuenciable en cuanto a vistas?. En caso afirmativo,
mostrar la posible planificacin secuencial, y en cualquier caso, justificar la respuesta.

Para que sea secuenciable en cuanto a vistas debemos cumplir las tres condiciones
siguientes:
- Para todo elemento de datos Q, si la transaccin Ti, lee el valor inicial de Q en la
planificacin P, entonces Ti debe leer el valor inicial de Q en la planificacin P.
- Para todo elemento de datos Q, si la transaccin Ti ejecuta leer (Q) en la
planificacin P y el valor lo ha producido la transaccin Tj (si existe), entonces
en la planificacin P, la transaccin Ti debe leer el valor de Q que haya
producido Tj.
- Para todo elemento de datos Q, la transaccin (si existe) que realice la ltima
operacin escribir (Q) en la planificacin P, debe realizar la ltima operacin
escribir (Q) en la planificacin P.
Con estas condiciones, la planificacin realicemos tiene que cumplir las siguientes
condiciones:

- T3 debe leer el valor inicial de B
- T1 debe leer el valor inicial de B
- T2 debe leer el valor de A que produce T3
- T1 debe leer el valor de C que produce T2
- T2 debe realizar la ltima escritura de C
- T2 debe realizar la ltima escritura de A

Con estas condiciones no es posible que realicemos una planificacin secuencial en
cuanto a vistas, pues tenemos conflictos entre T1 y T2, con las operaciones Escribir (C)
y Leer (C), as como con la operacin de Leer (A)de T2 con la operacin Escribir (A) de
T1 y T3 pero podemos verlo paso a paso.

Marcamos en azul las posiciones que vamos intercambiando en cada paso.


T1 T2
T3
T1 T2 T3
Leer (B)
Escribir (A)
Leer (A)
Leer (B)
Leer (A)
Escribir (A)
Escribir (A)
Escribir (C)
Escribir (A)
Leer (C)
Posicin inicial.

Primer intercambio:

T1 T2 T3
Leer (B)
Escribir (A)
Leer (A)
Leer (A)
Leer (B)
Escribir (A)
Escribir (A)
Escribir (C)
Escribir (A)
Leer (C)

Como se ve no se altera ninguna de las condiciones, en este intercambio.

Segundo intercambio:

T1 T2 T3
Leer (B)
Escribir (A)
Leer (A)
Leer (A)
Leer (B)
Escribir (A)
Escribir (A)
Escribir (C)
Escribir (A)
Leer (C)

Con este intercambio seguimos sin alterar ninguna de las condiciones que nos marca la
secuencialidad en cuento a vistas.




Tercer intercambio:

T1 T2 T3
Leer (B)
Escribir (A)
Leer (A)
Leer (A)
Escribir (A)
Leer (B)
Escribir (A)
Escribir (C)
Leer (C)
Escribir (A)

Hasta aqu seguimos sin incumplir ninguna de las reglas, pero ya no podemos seguir,
pues tenemos conflictos entre las operaciones de Leer (A) de T2, que debe leer el valor
que produce T3, si subimos ms las operaciones de T1, T2 leera el valor de A que
produce T1, y T1 leera el valor inicial de C, en vez del valor que produce T2, por lo
tanto no podemos encontrar una planificacin que cumpla que T2 realice la ltima
escritura de A y lea el valor de A que produce T3, ejecutando secuencialmente T1 y T2,
si T1 se ejecuta antes de T2, T1 ya no lee el valor de C que produce T2 y si T2 se
ejecuta antes que T1, entonces T2 no escribe el ltimo valor de A.

Por ello no es secuenciable en cuanto a vistas.

2.3 Realizar una planificacin concurrente secuenciable en cuanto a conflictos
utilizando el mtodo de protocolo de bloqueo de dos fases estricto y justificar la
respuesta.

El protocolo de bloqueo estricto de dos fases, exige que adems de ser de dos fases (fase
de crecimiento y fase de decrecimiento), una transaccin debe poseer todos los bloqueos
en modo exclusivo que tome hasta que dicha transaccin se complete.

Con dicha condicin y las transacciones T1, T2 y T3 podemos realizar la siguiente
planificacin, concurrente secuenciable, cuya planificacin no es muy concurrente, pero
cumple todos los requisitos pedidos, es concurrente, secuenciable y usa el protocolo de
bloqueo de dos fases estricto:














T1 T2 T3
Bloquear-X (B)
Bloquear-X (A)
Bloquear-X (C)
Leer (B)
Desbloquear-X(B)
Bloquear-X (B)
Escribir (A)
Leer (B)
Desbloquear-X (A)
Bloquear-X (A)
Leer (A)
Leer (C)
Desbloquear-X (C)
Bloquear-X (C)
Escribir (C)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Escribir (A)
Desbloquear-X (C)
Leer (A)
Escribir (A)
Desbloquear-X (B)
Desbloquear-X (A)


2.4 Usando el protocolo en rbol, con el grafo que se muestra a continuacin, realizar
una planificacin secuenciable utilizando este protocolo.



Recordemos las normas del protocolo de bloqueo de rbol:
Slo se permite la instruccin Bloquear-X, cada transaccin puede bloquear un
elemento de datos al menos una vez y debe seguir las siguientes reglas:
- El primer bloqueo de Ti puede ser sobre cualquier elemento de datos.
- Posteriormente, Ti puede bloquear un elemento de datos Q slo si Ti est
bloqueando actualmente al padre de Q.
- Los elementos de datos bloqueados se pueden desbloquear en cualquier
momento.
A
B
C
- Ti no puede bloquear de nuevo un elemento de datos que ya haya bloqueado y
desbloqueado anteriormente.

Tras esto y con el grafo que nos dan, podramos hacer la siguiente planificacin, con
las transacciones T1, T2 y T3.

T1 T2 T3
Bloquear-X (A)
Bloquear-X (B)
Leer (B)
Escribir (A)
Leer (A)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Desbloquear-X (B)
Leer (A)
Bloquear-X (C)
Escribir (C)
Desbloquear-X (C)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Bloquear-X (B)
Leer (B)
Bloquear-X (C)
Desbloquear-X (B)
Escribir (A)
Desbloquear-X (A)
Leer (C)
Desbloquear-X (C)

Podemos ver que la planificacin generada con el protocolo del rbol no consigue
demasiada concurrencia, pero obtenemos una planificacin secuenciable usando las
transacciones T1, T2 y T3 usando el orden T3->T2->T1. Podramos conseguir una
mayor concurrencia, realmente no una grna concurrencia pero s algo ms de
concurrencia, si usramos el orden T1->T2->T3 cmo vemos a continuacin:













T1 T2 T3
Bloquear-X (A)
Bloquear-X (B)
Bloquear-X (C)
Leer (B)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Desbloquear-X (B)
Leer (A)
Leer (C)
Desbloquear-X (C)
Bloquear-X (C)
Escribir (C)
Escribir (A)
Desbloquear-X (A)
Bloquear-X (A)
Bloquear-X (B)
Leer (B)
Escribir (A)
Desbloquear-X (C)
Leer (A)
Escribir (A)
Desbloquear-X (A)
Desbloquear-X (B)

PREGUNTA 3 (3.5 PUNTOS)

Sea la siguiente planificacin P:

T1 T2 T3 T4
Leer (B)
Escribir (A)
Leer (A)
Leer (B)
Leer (A)
Escribir (C)
Escribir (A)
Leer (A) P(*)
Escribir (A)
Leer (C)







3.1 Dado que el tiempo inicial es t=0, aplicar el algoritmo de marcas temporales a esta
planificacin para establecer su concurrencia, incluyendo las marcas temporales en la
solucin.

Primero recordemos dos conceptos sobre las marcas temporales y cmo opera el
protocolo de ordenacin por marcas temporales:

- Marca-temporal-E (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito escribir (Q)
- Marca-temporal-L (Q) denota la mayor marca temporal de todas las
transacciones que ejecutan con xito leer (Q)

Forma de operar del protocolo:

1. Supngase que la transaccin Ti ejecuta leer (Q).
a. Si MT (Ti) <marca-temporal-E (Q) entonces Ti necesita leer un
valor de Q que ya se ha sobrescrito. Por tanto se rechaza la operacin
leer y Ti retrocede.
b. Si MT (Ti) > =marca-temporal-E (Q) entonces se ejecuta la
operacin leer y marca-temporal-L (Q) se asigna al mximo de
marca-temporal-L (Q) y de MT (Ti).

2. Supngase que la transaccin Ti ejecuta Escribir (Q).
a. Si MT (Ti) <marca-temporal-L (Q) entonces el valor de Q que
produce Ti se necesita previamente y el sistema asume que dicho
valor no se puede producir nunca. Por tanto se rechaza la operacin
escribir y Ti retrocede.
b. Si MT (Ti) <marca-temporal-E (Q) entonces Ti est intentando
escribir un valor de Q obsoleto. Por tanto se rechaza la operacin
escribir y Ti retrocede.
c. En otro caso se ejecuta la operacin escribir y MT (Ti) se asigna a
marca-temporal-E (Q).

Una vez recordados estos puntos, vemos cmo podramos responder a la
pregunta:















T1 T2 T3 T4 A B C Explicacin
MT(T1)=2 MT(T2)=1 MT(T3)=0 MT(T4)=3 Em Lm Em Lm Em Lm
Leer (B) - - - 0 - - Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T1))=0
Escribir
(A)
0 - - 0 - - Lm (A) y Em(A) sin valor
Entonces
Em (A) =MT(3)=0
Leer (A) 0 1 - 0 - - Em(A) =0 Entonces
Lm (A) =
Max(Lm(A),MT(T2))=1
Leer (B) 0 1 - 2 - - Em(B) sin valor Entonces
Lm (B) =
Max(Lm(B),MT(T1))=2
Leer (A) 0 1 - 2 - - Em(A)=0 Entonces
Lm(A) =
Max(Lm(A),MT(T3))=1
Escribir
(C)
0 1 - 2 3 - Em(C) y Lm (C) sin
valor, entonces
Em(C)=MT(4)=3
Escribir
(A)
0 1 - 2 3 - Lm(A)=1 >MT(3)=0, El
valor de A que produce
T3 se necesita
previamente, se asume
que no se puede
producir, se rechaza la
operacin escribir y se
retrocede T3
Leer (A) 0 3 - 2 3 - Em(A)=0 <MT(3)=3,
Entonces Lm (A) =
Max(Lm(A),MT(T4))=3
Escribir
(A)
0 3 - 2 3 - Lm(A)=3 >MT(2)=1,
El valor de A que produce
T3 se necesita
previamente, se asume
que no se puede producir,
rechaza la operacin
escribir y se retrocede T2
Leer (C) 0 3 - 2 3 - Em(C)=3 >MT(1)=2,
T1 necesita leer un valor
de C que ya se ha
sobrescrito, por tanto se
rechaza la operacin leer
y T1 retrocede.






3.2 En el registro histrico hay dos esquemas de modificacin, Cules son y en qu
se diferencian?, Proporcionan siempre los mismos resultados?. Cite ejemplos de
posibles situaciones en las que ambas den resultados diferentes de ser posible.

Los dos esquemas de modificacin del registro histrico son:
1. Modificacin diferida de la base de datos.
2. Modificacin inmediata de la base de datos.

La diferencia fundamental es el momento en el que se realizan las operaciones
escribir en la base datos, la modificacin diferida retarda las operaciones escribir
de una transaccin hasta que la transaccin se compromete parcialmente, en la
modificacin inmediata se permite realizar la salida de las modificaciones de la
base de datos a la propia base de datos mientras que la transaccin est todava
en estado activo, por eso estas modificaciones se denominan modificaciones no
comprometidas.

Aunque la finalidad es la misma, no siempre producen las mismas ordenaciones
de los elementos.

Cmo ejemplo podemos usar dos transacciones T0 y T1, T0 resta 50 Euros de la
cuenta A y los aade a la cuenta B y T1 resta 100 euros a la cuenta C, siendo los
valores iniciales de las cuentas A =1000, B =2000 y C =700, ejecutando
secuencialmente ambas transacciones quedaran de la siguiente forma los RH si
usamos una u otra forma.

RH con Modificacin Diferida RH con Modificacin Inmediata
RH BBDD RH BBDD
<T0 iniciada> <T0 iniciada>
<T0, A, 950> <T0, A, 950>
<T0, B, 2050> <T0, B, 2050>
<T0 comprometida> A =950
A =950 B =2050
B =2050 <T0 comprometida>
<T1 iniciada> <T1 iniciada>
<T1, C, 600> <T1, C, 600>
<T1 comprometida> C =600
C =600 <T1 comprometida>

3.3 Mostrar el estado del registro histrico para esta planificacin para los dos tipos de
esquemas de modificacin.

Volvemos a poner en dos columnas, en cada una est el estado del RH segn el
esquema que usemos, donde se ve claramente las diferencias







RH con Modificacin Diferida RH con Modificacin Inmediata
RH BBDD RH BBDD
<T3 iniciada> <T3 iniciada>
<T3, A, ---- > <T3, A, ----, xxxx >
<T2 iniciada> A =xxxx
<T1 iniciada> <T2 iniciada>
<T4 iniciada> <T1 iniciada>
<T4, C, ---- > <T4 iniciada>
<T3, A, ---- > <T4, C, ----, xxxx >
<T3 comprometida> C =xxxx
A =---- <T3, A, ----, xxxx >
A =---- A =xxxx
<T4 comprometida> <T3 comprometida>
C =---- <T4 comprometida>
<T2, A, ---- > <T2, A, ----, xxxx >
<T2 comprometida> A =xxxx
A =---- <T2 comprometida>
<T1 comprometida> <T1 comprometida>


3.4 Suponga que se produce un fallo en el instante indicado como (*). Indicar cmo se
recuperara el estado de la base de datos en el caso de un registro histrico con
modificacin inmediata.

Tenemos en cuenta dos operaciones fundamentales, en la recuperacin del registro
histrico con modificacin inmediata que son:

- Deshacer (T): restaura el valor de todos los elementos de datos actualizados por la
transaccin Ti a los valores anteriores.
- Rehacer (T): cambia el valor de todos los elementos de datos actualizados por la
transaccin Ti a los nuevos valores.

Tras un fallo el esquema de recuperacin consulta el registro histrico para determinar
las transacciones que deben rehacerse y las que deben deshacerse siguiendo el siguiente
protocolo:

- Una transaccin Ti debe deshacerse si el registro histrico contiene el registro <Ti
iniciada>, pero no contiene el registro <Ti comprometida>.
- Una transaccin Ti debe rehacerse si el registro histrico contiene los registros <Ti
iniciada>y <Ti comprometida>..

Como tenemos una planificacin concurrente debemos recorrer el registro histrico
hacia atrs, aadiendo a la lista rehacer, cada registro de la forma <Ti comprometida>y
aadiendo a la lista deshacer cada registro de la forma <Ti iniciada>que no est en la
lista rehacer.

Lista rehacer Lista deshacer
T3 T4
T1
T2
Con estas dos listas el proceso de recuperacin procede de la siguiente forma:
- Se recorre de nuevo hacia atrs comenzando por el ltimo registro y se realiza
una operacin deshacer por cada registro del registro histrico que pertenezca a
una transaccin de la lista deshacer.
- Se localiza el ltimo registro <revisin L>, si lo hay.
- Se recorre el registro histrico desde el ltimo registro <revisin L>, si lo hay, y
se realiza una operacin rehacer por cada registro del registro histrico que
pertenezca a una transaccin de la lista rehacer.


Por tanto con la lista y el proceso mencionado debera recuperarse de la siguiente forma:
1 Deshacer T4
2 Deshacer T1
3 Deshacer T2
4 Rehacer T3


3.5 - Qu efecto tendra el punto de revisin P en el Registro Histrico y en el estado
de la Base de Datos). (0.5 puntos).

Puesto que en el punto de revisin P, ya se ha comprometido la transaccin T3, slo
deberemos deshacer las transacciones T4, T1 y T2 en ese orden siempre y cuando
usemos el esquema de modificacin inmediata, en el caso de modificacin diferida
cmo no se ha llevado a cabo ninguna modificacin en la base de datos, no
necesitaramos hacer nada pues la base de datos estara en un estado consistente.

You might also like