Professional Documents
Culture Documents
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)
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 .
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.