Universidad Politécnica de Madrid
Escuela Universitaria de Informática
Departamento de Organización y Estructura de la Información
Bases de Datos. 17 de Junio de 2008. TIEMPO 2 HORAS
NORMAS:
• Se contestará a cada grupo de preguntas en hojas separadas, para facilitar la corrección del examen.
• La fecha estimada de publicación de calificaciones es el 24 de Junio y la estimada para la revisión es el 26 de
Junio.
GRUPO 1
EJERCICIO 1 [1,0 punto].- Dado el siguiente esquema de relación R=<T,L>:
T = {A, B, C, D, E, F}
L = {ACF → B, BC → D, A → CEF, E → F, BD → EF}
Se pide calcular un Recubrimiento Mínimo y no Redundante. Justifique su respuesta.
Solución:
1. Descomponemos las dependencias funcionales para que tengan implicados simples, es decir, con un
solo atributo:
L(1) = { ACF B; BC D; A C; A E; A F; E F; BD E; BD F }
2. Eliminamos atributos extraños:
El atributo F es extraño en la dependencia funcional ACF B: (AC)+L = ACEFBD. Por tanto,
quedaría la dependencia funcional AC B.
El atributo C es extraño en la dependencia funcional AC B: (A)+L = ACEFBD.
L(2) = { A B; BC D; A C; A E; A F; E F; BD E; BD F }
3. Eliminamos dependencias funcionales redundantes:
La dependencia funcional A E es redundante: (A)+L-{A→E} = ABCFDE.
La dependencia funcional A F es redundante: (A)+L-{A→F} = ABCEDF.
La dependencia funcional BD F es redundante: (BD)+L-{BD→F} = BDEF.
L(3) = { A B; BC D; A C; E F; BD E }
L(3) es el recubrimiento mínimo.
EJERCICIO 2 [1,0 punto].- Dado el siguiente esquema de relación R=<T,L>:
T = {A, B, C, D, E, F}
L = {AF → B, BC → D, A → C, E → F, BD → E}
Se pide calcular TODAS las claves de la relación, siendo L mínimo y no redundante. Justifique su respuesta.
Solución:
1. Calculamos Z o conjunto de atributos imprescindibles: Z = A.
2. Calculamos el cierre de Z en L: (A)+L = AC ≠ T
3. Calculamos W o conjunto de atributos imposibles: W = ∅.
Calculamos V o conjunto de atributos posibles: V = {B, D, E, F}
4. Generamos M1 = {AB, AD, AE, AF} y M2 = ∅.
Universidad Politécnica de Madrid
Escuela Universitaria de Informática
Departamento de Organización y Estructura de la Información
Bases de Datos. 17 de Junio de 2008. TIEMPO 2 HORAS
5. Calculamos los cierres de los elementos de M1:
• (AB)+L = ABCDEF = T, se elimina de M1 y se introduce en M2: M1 = {AD, AE, AF} y M2 =
{AB}.
• (AD)+L = ADC ≠ T, se elimina de M1 y se sustituye por sus combinaciones con elementos de
V superiores en orden: M1 = {AE, AF, ADE, ADF} y M2 = {AB}.
• (AE)+L = AECFBD = T, se elimina de M1 y se introduce en M2: M1 = {AF, ADE, ADF} y
M2 = {AB, AE}.
• (AF)+L = AFCBDE = T, se elimina de M1 y se introduce en M2: M1 = {ADE, ADF} y M2 =
{AB, AE, AF}.
6. Eliminamos superconjuntos de M2 en M1 = ∅.
Como M1 = ∅, se termina el proceso y en M2 están todas las claves.
Claves del esquema R: AB, AE y AF.
EJERCICIO 3 [0,5 puntos].- Dado el siguiente esquema de relación R=<T,L>:
T = {A, B, C, D, E, F}
L = {AF → B, B → DE, A → D, E → F, C → F}
Cuya única clave es AC. Se pide determinar en que forma normal está dicho esquema. Justifique su respuesta.
Solución:
Determinamos el nivel de normalización del esquema de relación R:
El conjunto de atributos principales es: P = {A, C} y el conjunto de atributos no principales es: Q = {B,
D, E, F}.
El esquema no está en 2FN porque ∃ A D que es una dependencia funcional parcial (no completa),
respecto de la clave.
EJERCICIO 4 [1,0 punto].- Dado el esquema de relación anterior se pide normalizarlo a FNBC con propiedad LJ,
obteniendo el mejor diseño posible, es decir, perdiendo el menor número posible de dependencias funcionales originales.
Justifique su respuesta.
Solución:
1. Normalizamos el esquema de relación R a FNBC con propiedad LJ, con el mejor diseño posible:
a. Elegimos para proyectar la dependencia funcional A D, dado que con ella sólo perdemos una
dependencia funcional (en este caso se pierde B D), obteniendo:
• R1=<T1, L1>, T1 = {A, D} y L1 = {A D}; clave: A. Está en FNBC.
• R2=<T2, L2>, T2 = {A, B, C, E, F} y L2 = {AF B; B E; E → F; C F}; clave: AC. No
está en 2FN porque ∃ C F que es una dependencia funcional parcial (no completa),
respecto de la clave.
2. Normalizamos el esquema de relación R2 a FNBC con propiedad LJ, con el mejor diseño posible:
a. Elegimos para proyectar la dependencia funcional AF B dado que con ella sólo perdemos una
dependencia funcional (en este caso se pierde B E, que puede ser sustituida por AF E),
obteniendo:
• R3=<T3, L3>, T3 = {A, B, F} y L3 = {AF B}; clave AF. Está en FNBC.
• R4=<T4, L4>, T4 = {A, C, E, F} y L4 = {AF E; E F; C F}; clave: AC. No está en
2FN porque ∃ C F que es una dependencia funcional parcial (no completa), respecto de la
clave.
Universidad Politécnica de Madrid
Escuela Universitaria de Informática
Departamento de Organización y Estructura de la Información
Bases de Datos. 17 de Junio de 2008. TIEMPO 2 HORAS
3. Normalizamos el esquema de relación R4 a FNBC con propiedad LJ, con el mejor diseño posible:
a. Elegimos para proyectar la dependencia funcional AF E dado que con ella no perdemos
dependencias funcionales (arrastra la dependencia E F), obteniendo:
• R5=<T5, L5>, T5 = {A, E, F} y L5 = {AF E; E F}; clave: AF. No está en FNBC porque
∃ E F que es una dependencia funcional cuyo implicante no es clave, ni superclave.
• R6=<T6, L6>, T6 = {A, C, F} y L6 = {C F}; clave: AC. No está en FNBC porque ∃ C F
que es una dependencia funcional cuyo implicante no es clave, ni superclave.
4. Normalizamos el esquema de relación R5 a FNBC con propiedad LJ, con el mejor diseño posible:
a. Elegimos para proyectar la única dependencia funcional posible E F, obteniendo:
• R7=<T7, L7>, T7 = {E, F} y L7 = {E F}; clave: E. Está en FNBC.
• R8=<T8, L8>, T8 = {A, E} y L8 = ∅; clave: AE. Está en FNBC.
5. Normalizamos el esquema de relación R6 a FNBC con propiedad LJ, con el mejor diseño posible:
a. Elegimos para proyectar la única dependencia funcional posible C F, obteniendo:
• R9=<T9, L9>, T9 = {C, F} y L9 = {C F}; clave: C. Está en FNBC.
• R10=<T10, L10>, T10 = {A, C} y L10 = ∅; clave: AC. Está en FNBC.
Los esquemas en negrita R1, R3, R7, R8, R9 y R10 son la solución.
EJERCICIO 5 [1.5 puntos].- Definir una matriz de compatibilidades para tres modos de operación y especificar los
modos de operación asignados y solicitados por las transacciones en el siguiente grafo de asignaciones para que la
ejecución sea NO serializable. ¿Si se abortase una de las tres transacciones, sería posible continuar la ejecución de las
otras dos?
Universidad Politécnica de Madrid
Escuela Universitaria de Informática
Departamento de Organización y Estructura de la Información
Bases de Datos. 17 de Junio de 2008. TIEMPO 2 HORAS
GRUPO 2
EJERCICIO 6 [1 punto].- Dado el siguiente diagrama Entidad-Relación, se pide justificando las respuestas:
a) Representar su estructura referencial, indicando el tipo de ésta.
b) Indicar todas las opciones de integridad referencial posibles para borrados
a) Es una estructura referencial con parte lineal y parte autoreferencial.
b) En la parte lineal entre A y B, puede definirse la opción CASCADE o RESTRICT, pero no puede definirse SET
NULL dado que la cardinalidad mínima es 1. En cualquiera de las dos partes autoreferenciales ha de definirse la
opción CASCADE.
EJERCICIO 7 [1 punto].- Para el diagrama del ejercicio anterior, indicar justificando la respuesta, el nivel de
normalización de la tabla correspondiente a la entidad B.
B= <T, L>
T = ( b1, b2, a1, b11 )
L = { b1 b2, b1 a1, b11 b1, a1 b1}
Claves: b1, a1, b11; La relación B está en FNBC, dado que todo implicante en L es clave.
EJERCICIO 8 [1.5 puntos].- Sean las siguientes tablas correspondientes a la base de datos de un taller de reparación de
vehículos:
VEHICULO (NMAT, MARCA, MODELO, IDCLI)
CLIENTE (IDCLI, NOMBRE, APELLIDOS, TIPOCLIENTE)
REPARACION (CODREP, NMAT, IDCLI, FECHAR, TOTAL)
Y sabiendo que:
• el atributo IDCLI de la tabla VEHICULO representa al propietario del mismo
• el cliente que lleva el vehículo a reparar (atributo IDCLI en REPARACION) no tiene porque ser el propietario del
mismo.
Se pide expresar en álgebra relacional las siguientes consultas:
a) Obtener el nombre y apellidos de aquellos clientes que han llevado a reparar vehículos que no son de su
propiedad.
π NOMBRE APELLIDOS ( ( π NMAT IDCLI (REPARACION) - π NMAT IDCLI (VEHICULO) ) * CLIENTE)
b) Obtener el nombre y apellidos de aquellos clientes que han llevado a reparar al menos un vehículo de su
propiedad.
π NOMBRE APELLIDOS ( REPARACION * VEHICULO * CLIENTE)
Universidad Politécnica de Madrid
Escuela Universitaria de Informática
Departamento de Organización y Estructura de la Información
Bases de Datos. 17 de Junio de 2008. TIEMPO 2 HORAS
EJERCICIO 9 [1.5 puntos].- Sobre la BD del ejercicio anterior se pide expresar en SQL las siguientes consultas:
a) Obtener los clientes (identificador, nombre y apellidos) para aquellos clientes que hayan gastado en
reparaciones de un mismo vehículo, más de 1000€ durante el mes de mayo. Se dispone de la función
month(fecha) que devuelve el valor del mes, en número, de fecha.
SELECT C.IDCLI, NOMBRE, APELLIDOS
FROM CLIENTE
WHERE NMAT IN (SELECT NMAT
FROM REPARACION
WHERE month(FECHA) = 5
GROUP BY NMAT
HAVING SUM (TOTAL) > 1000);
b) Obtener los clientes (identificador, nombre y apellidos) para aquellos clientes que hayan llevado a reparar al
menos todos los vehículos de los que son propietarios.
SELECT IDCLI, NOMBRE, APELLIDOS
FROM CLIENTE
WHERE NOT EXISTS (SELECT NMAT
FROM VEHICULO
WHERE VEHICULO.IDCLI = CLIENTE.IDCLI
MINUS
SELECT NMAT
FROM REPARACION
WHERE REPARACION.IDCLI = CLIENTE.IDCLI );