FUNDAMENTOS DE BASES DE DATOS
SEGUNDO PARCIAL 1999
Presentar la resolución del parcial:
• Con las hojas adicionales numeradas y escritas de un solo lado.
• Con las hojas escritas a lápiz.
• Poner cédula de identidad y nombre en cada hoja (incluidas estas).
• Escrito en forma prolija.
• Las opciones elegidas se deben marcar poniendo claramente un círculo en torno al
identificador de la opción elegida.
• Poner la cantidad de hojas adicionales entregadas en la primer hoja.
• Se debe entregar esta letra junto con el resto de las hojas.
NOMBRE:________________
APELLIDO:____________________
CI:___________
Cantidad de Hojas Adicionales (Sin Contar las de la Letra):____
1
Parte A: DISEÑO RELACIONAL (30 ptos)
Ejercicio 1 (8 ptos)
Considere el siguiente esquema universal:
EMP_PROY (nro_emp, nom_emp, cargo, sueldo, nro_proy, nom_proy, dur_proy,
prov_participan, partes_participan)
y el siguiente conjunto de dependencias:
F = { nro_emp → nom_emp, cargo
nro_proy → nom_proy, dur_proy
cargo → sueldo
nro_emp, nro_proy ->> partes_participan | prov_participan }
siendo la última una dependencia multivaluada embebida. Esto significa que la mvd nro_emp,
nro_proy ->> partes_participan se cumple en la relación R (nro_emp, nro_proy,
partes_participan, prov_participan).
Indique cuál o cuales de las siguientes descomposiciones está en 4NF y tiene JSP.
a) R1 (nro_emp, nom_emp, cargo)
R2 (nro_proy, nom_proy, dur_proy)
R3 (nro_emp, sueldo)
R4 (nro_emp, nro_proy, partes_participan)
R5 (nro_emp, nro_proy, prov_participan)
b) R1 (nro_emp, nom_emp, cargo)
R2 (nro_proy, nom_proy, dur_proy)
R3 (nro_emp, sueldo)
R4 (nro_emp, nro_proy, partes_participan, prov_participan)
c) R1 (nro_emp, nom_emp, cargo, sueldo)
R2 (nro_proy, nom_proy, dur_proy)
R3 (nro_emp, nro_proy, partes_participan)
R4 (nro_emp, nro_proy, prov_participan)
d) R1 (nro_emp, nom_emp, cargo)
R2 (nro_proy, nom_proy, dur_proy)
R3 (cargo, sueldo)
R4 (nro_emp, nro_proy, partes_participan)
R5 (nro_emp, nro_proy, prov_participan)
Ejercicio 2 (8 ptos)
En un consultorio donde atienden varios médicos diferentes, se desea implementar una base
de datos con la información relativa a las consultas.
De los médicos interesa la cédula, el nombre, el teléfono, especialidad y los horarios de
consulta. De los pacientes se quiere guardar la cédula, el teléfono, la dirección y nro. de ficha
de la historia médica. Con respecto a una consulta entre un paciente y un médico es importante
saber la fecha, la hora y, en caso de que ya haya pasado esa fecha, un comentario del médico.
Nunca sucede que un paciente consulte a un mismo médico más de una vez en un mismo día.
Realizar un diseño relacional de esta realidad, tal que el esquema esté en 4NF. Justificar.
2
Ejercicio 3 (5 ptos)
Sea F = { AB → D, CD → G, E → A, A → C, BG → C, D → A }
1) Indicar cuales de las siguientes dependencias funcionales están en F+.
a) AD → G
b) D → AC
c) B→ G
d) BCE → A
2) Indicar cuales de los siguientes conjuntos de atributos son superclave.
a) AD
b) BCE
c) BE
d) ACD
3) Indicar cuales de los anteriores es clave.
a)
b)
c)
d)
Ejercicio 4 (5 ptos)
Sea el esquema relación R ( A B C D E G) y el conjunto de dependencias
F = { AB → CD, C → A, DE → G }
Dada la descomposición D = { R1(ABD), R2(ABCEG) }, decir si es verdadera o falsa (V o F)
cada una de las siguientes afirmaciones.
a) D es con Join Sin Pérdida
b) D no preserva las dependencias funcionales
c) D está en 1NF
d) D está en 2NF
e) D está en 3NF
f) D está en BCNF
Ejercicio 5 (4 ptos)
Dado el conjunto F = { A → BC, AD → E, B → C, E → B } de dependencias funcionales, decir
cual de los siguientes conjuntos de dependencias es un cubrimiento minimal de él.
a) {A→ B, A → C, AD → E, B → C, E → B }
b) {A→ B, A → C, AD → E, E → B }
c) {A→ B, AD → E, B → C, E → B }
d) {A→ B, A → C, A → E, B → C, E → B }
3
Parte B: VISTAS Y PROCESAMIENTO DE CONSULTAS (10 ptos)
Ejercicio 6 (10 ptos)
Considere el siguiente esquema relacional
Peliculas (id-pel, nombre_pel, año_pel, duracion_pel, id_director_pel)
ActorPel (nombre-artistico, id-pel, monto_contrato)
DirectorPel (id-dir, nombre_dir, recaudacion_anual)
Los atributos subrayados indican las claves primarias. Se sabe además que no hay directores
distintos con igual nombre.
a) Defina en SQL la vista V1 que contiene los nombres de los directores junto con los
nombres de las películas que han dirigido.
b) Sea la vista V2 definida como sigue:
create view V2
as select nombre_artistico
from ActorPel
where monto_contrato > 100.000
Optimizar la siguiente consulta usando árbol de consulta y las heurísticas de aplicar
selección y proyección tan pronto como sea posible. Indicar explícitamente las propiedades
algebraicas de las operaciones utilizadas.
select nombre_pelicula
from V1, V2
where nombre_artistico = nombre_director
and nombre_director = ‘W. A.’
c) Indicar si la siguiente modificación sobre la vista V1 es permitida, según la noción de vista
actualizable:
update V1
set nombre_director = ‘Woody Allen’
where nombre_pelicula = ‘Zelig’and nombre_director = ‘W. A.’
En caso afirmativo, escribir la única modificación correspondiente sobre las relaciones de
base que refleje la modificación sobre la vista. En caso negativo, escribir 2 (dos)
modificaciones posibles sobre las relaciones de base que se correspondan con la
modificación sobre la vista.
4
Parte C: Concurrencia y Recuperación ( 20 ptos)
Ejercicio 7 (10 ptos)
Sean las transacciones:
T1: w1(x), r1(y), c1
T2: r2(x), w2(z), c2
T3: r3(z), w3(y), c3
Para las siguientes historias, decir si son: Serializables, Recuperables, evitan Abortos en
Cascada, son Estrictas. Para las que tienen bloqueos decir tambien si sus transacciones siguen
2PL-basico o 2PL-estricto.
Escribir la respuesta a la derecha o debajo de cada historia.
H1: w1(x), r2(x), w2(z), r3(z), w3(y), r1(y), c3, c1, c2
H2: r2(x), w1(x), w2(z), r3(z), w3(y), c3, r1(y), c1, c2
H3: lw1(x), w1(x), lr1(y), u1(x), lr2(x), r2(x), u2(x), r1(y), u1(y), c1, lw2(z), w2(z), u2(z), c2
H4: lw1(x), w1(x), lr1(y), u1(x), lr2(x), r2(x), u2(x), , lw2(z), w2(z), u2(z), c2, r1(y), u1(y), c1
H5: lw1(x), w1(x), u1(X), lr2(x), r2(x), lr3(z), r3(z), lw3(y), w3(y), u3(y), lw1(y), r1(y), w1(y),
u1(y), lw3(z), w2(z), u2(z), u2(y), c1, c3, c2
Ejercicio 8 (5 ptos)
Para los siguientes tipos de Historias, decir cuales pueden existir y cuales no.
Escribir la respuesta a la derecha o debajo de cada caso.
1. Serializable y Recuperable.
2. Serializable, Recuperable pero no Estricta.
3. Serializable, que no evita Abortos en Cascada, y que es Estricta.
4. Una historia cuyas transacciones siguen todas 2PL-Estricto pero que no es Serializable.
5. Recuperable y cuyas transacciones siguen todas 2PL-basico.
6. Una historia cuyas transacciones siguen todas 2PL-basico pero no Recuperable.
7. Serializable con transacciones que no siguen 2PL-basico.
8. Recuperable con transacciones que no siguen 2PL-basico.
9. Una historia cuyas transacciones siguen todas 2PL-Estricto pero que no es Recuperable.
10. Recuperable, Estricta, no Serializable y cuyas transacciones siguen todas 2PL-Basico.
5
Ejercicio 9 (5 ptos)
Decir cuales de las aplicaciones de mecanismos de recuperación son correctos:
1. En Actualización Diferida, si ocurre una caida del sistema, entonces se aplica REDO sobre
la BD.
2. En Actualización Inmediata, si ocurre caida del sistema, entonces se aplica REDO sobre la
BD.
3. En Actualización Diferida, si ocurre daño físico y caida del sistema, entonces se aplica
REDO sobre la BD y Backup anterior.
4. En Actualización Inmediata, si ocurre daño físico y caida del sistema, entonces se realiza
UNDO y REDO sobre la BD.