Universidad de Concepción Departamento de Ing. Informática y Cs. de la Computación CONTROL II: Bases de Datos Prof. Andrea Rodrı́guez, Ayudante: Daniel Campos Martes 6 de Noviembre del 2012 1. Dada una relación R(A, B, C, D) con el siguiente conjunto de dependencias funciones: F = {A → D, A →→ B, A →→ C} Indique la forma normal en la que se encuentra y normalice hasta la 4FN (1 p). 2. Considere el siguiente esquema: CHOFER(id,nombre,renta anual) EMBARQUE(id embarque, id camion, peso, destino) FK id camion FROM CAMION(id camion) FK destino FROM CIUDAD(nombre) CAMION(id camion, nombre chofer) CIUDAD(nombre,poblacion) Responda usando álgebra relacional y SQL las siguientes consultas (2 p) a) Mostrar los choferes para los cuales el peso promedio de los embarques realizados sea mayor a 1000 kilos. b) Indicar camiones que tengan embarques a solo una ciudad. 3. Considere la instancia del siguiente esquema de relación EM BARQU E de la pregunta anterior: id embarque 20 23 25 28 33 id cliente 2 10 333 10 5 peso 8000 10000 500000 null 300 id camion C1 C3 C1 null C2 destino Santa Juana Purén Santiago Concepción Lota Además las dos siguientes consultas en SQL: SELECT id embarque FROM EMBARQUE as S WHERE S.destino <> ‘Santiago’ AND NOT EXISTS ( SELECT * FROM EMBARQUE as S2 WHERE S2.destino <> ‘Santiago’ AND S.peso <= S2.peso ) 1 Universidad de Concepción Departamento de Ing. Informática y Cs. de la Computación SELECT id embarque FROM EMBARQUE as S WHERE S.destino <> ‘Santiago’ AND S.peso > ALL ( SELECT S2.peso FROM EMBARQUE as S2 WHERE S2.destino <> ‘Santiago’) Indique lo que responde cada consulta o si son equivalentes indique su respuesta (entregue el resultado sobre la instancia dada) (1 p) 4. Sea el esquema de relación R(A, B). ¿Cuándo se cumple y cuándo no se cumple que A →→ B? Indique en qué caso, si es que es posible, esta relación no está en 4FN (0.5 p). 5. Alguien le ha dicho que los triggers son siempre la mejor opción para imponer condiciones a la actualización de los datos en una base de datos. Indique si esto es cierto o no, justificando su respuesta. (0.5 p) 6. Considere el esquema de relación R(A, B, C), el cual tiene la DF B → C. Si A es una clave candidata para R, ¿Es posible que R esté en FNBC? Si es si, ¿Bajo qué condición? Si es no, justifique. (0.5) 7. Suponga que tiene un esquema de relación R(A, B, C) representando una relación binaria entre 2 conjunto de entidades con claves A y B, respectivamente, y suponga que R tiene las DFs A → B y B → A. Explique qué significan estas DFs respecto a la relación binaria R. (0.5) 2 Universidad de Concepción Departamento de Ing. Informática y Cs. de la Computación 1. La clave candidata es abc ya que es la mı́nima combinación de atributos que implican funcionalmente todos los atributos de la relación. Dado lo anterior, la relación no está en segunda forma normal ya que d depende solo de a (0.5). Una forma de normalizar hasta la 4ta forma normal es creado la siguiendo decomposición, la cual pierde la clave original de la tabla, pero está en 4FN. R1 (a, d), R2 (a, b), R3 (a, c). 2. Las respuesta posible son: a) En algebra relacional: R1 (c, p) ← id camion Favg ← πnombre (peso) (EM BARQU E) chof er (CAM ION o nid camion=c and p>1000 R1 ) En SQL: SELECT nombre chofer FROM CAMION as C, (SELECT id camion, avg(peso) FROM EMBARQUE group by id camion having avg(peso) > 1000 ) R(c, p) WHERE C.id camion = R.c b) En algebra relacional: R1 (c, d) ← id camion Fcount ← πid (destino) (EM BARQU E) camion (CAM ION o nid camion=c and d=1 R1 ) En SQL: SELECT e1.id camion FROM EMBARQUE as e1 WHERE not exist (SELECT * FROM EMBARQUE as e2 WHERE e1.id camion = e2.id camion AND e1.destino <> e2.destino) 3. No son exactamente los mismos. La primera pregunta retorna los embarques que NO vayan Santiago y donde no exista otro embarque que no vaya a Santiago con mayor o igual peso. Eso no se puede dar a menos que se compare el peso con un nulo, para todo caso siempre existe una tupla que tiene al menos el mismo valor. Por lo que la respuesta serı́a id embarque = 28. Para la segunda la respuesta es nulo porque una peso no puede ser mayor que si mismo. Si no hay valores nulos, entonces entregan el mismo resultado. 3 Universidad de Concepción Departamento de Ing. Informática y Cs. de la Computación 4. Por propiedad TRIVIAL adicional, siempre se cumple que A →→ B y B →→ A. Si es ası́, y no se cumple que A → B o B → A, entonces A, B son claves y se cumple que está en 4FN ya que éstas son dependencias multivualadas TRIVIALES. Si A → B o B → A se cumplen, entonces está en 4FN ya que las dependencias multivaluadas son en sı́ dependencias funcionales. 5. No es cierto ya que pueden definirse restricciones en la definición de los atributos sin tener que manejar el gatillador de un trigger, lo cual tiene un costo mayor. 6. La única forma que R pueda estar en FNBC es si B es clave de R. 7. Significa que la relación es 1 a 1; es decir, cada entidad A corresponde a lo más a un entidad B y viceversa. 4