EAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN (9 de septiembre de 2008) 2º Parcial Autorizo la publicación de la nota del examen junto a mi número de matrícula tanto en la Web como en los tablones: SI NO Nombre y Apellidos: Tiene 1 hora y 30 minutos para realizar el examen. Puntuación Total: 10 puntos Apartado A (3 puntos): 1.5 / 1.5 / Responda el apartado A en las propias hojas del examen. 1. (1.5 puntos) Dadas las siguientes sentencias de creación de tablas en SQL: CREATE TABLE Producto ( Proveedor Unidades_Vendidas INTEGER PRIMARY KEY, VARCHAR2(100), VARCHAR2(25), INTEGER); CREATE TABLE Almacen (Cod_Prod_ INTEGER PRIMARY KEY, INTEGER, FOREIGN KEY (cod_prod_stock) REFERENCES Producto); Y las correspondientes extensiones de las tablas y : Proveedor Unidades_Vendidas 10001 Bolígrafo Staedtler 76 11002 Rotulador Edding 102 12007 Cuaderno Paper 100 13009 Carpeta Paper 80 Cod_Prod_ 10001 500 11002 176 12007 1000 13009 34
Y dado el código del siguiente disparador: CREATE OR REPLACE TRIGGER Actualizar_Almacen BEFORE UPDATE OF Unidades_Vendidas ON Producto FOR EACH ROW WHEN (NEW.Unidades_Vendidas>100) BEGIN UPDATE Almacen SET Almacen. = Almacen. + :OLD.Unidades_Vendidas - :NEW.Unidades_Vendidas WHERE Almacen.Cod_Prod_ =:NEW.; END Actualizar_Almacen; / Tras realizar cada una de las operaciones siguientes, represente las extensiones resultantes para las relaciones y. Debe partir para cada caso de los datos dados en el enunciado (extensiones iniciales). Para los datos que se mantengan igual, ponga una en la celda correspondiente. Si en algún caso, no se permite realizar la operación dada, indíquelo CLARAMENTE. a) (0.5 puntos) UPDATE Producto SET Unidades_Vendidas=Unidades_Vendidas+20 WHERE Proveedor= Paper ; Proveedor Unidades_Vendidas Cod_Prod_ Proveedor Unidades_Vendidas Cod_Prod_ 120 980 100
Examen de Diseño de Bases de Datos y Seguridad de la Información 2º Parcial 9 de septiembre de 2008 Nombre y Apellidos: b) (0.5 puntos) UPDATE Producto SET Proveedor = Scotch WHERE = Rotulador ; Proveedor Unidades_Vendidas Cod_Prod_ Proveedor Unidades_Vendidas Cod_Prod_ Scotch c) (0.5 puntos) UPDATE Producto SET Unidades_Vendidas=Unidades_Vendidas+1 WHERE >10000; Proveedor Unidades_Vendidas Cod_Prod_ Proveedor Unidades_Vendidas Cod_Prod_ 77 103 101 81 175 999
2) (1.5 puntos) Se pide: a) (1 punto) Represente mediante un esquema E/R el siguiente esquema lógico representado con ERWIN: Dirección CP Ciudad Código PROPIEDAD Tipo TIERRA CASA a) (0.5 puntos) Cuál de los siguientes conceptos tiene representación directa en ERWIN, es decir, se puede representar sin necesidad de utilizar ningún artificio que lo simule? Marque la casilla SÍ, si tiene representación directa, o NO, en caso contrario: SI NO Interrelaciones Ternarias 1:1:1 Entidad Débil Atributos Multivaluados Interrelación de Dependencia en Identificación Restricción de exclusividad entre interrelaciones
Examen de Diseño de Bases de Datos y Seguridad de la Información 2º Parcial 9 de septiembre de 2008 Nombre y Apellidos: Apartado B (3 puntos): 1 0 5 0 5 1 Responda el apartado B en las propias hojas del examen. 1) (1 punto) Para cada uno de los siguientes esquemas, que ya son mínimos, diga todas sus claves y la forma normal más avanzada en la que se encuentran. Cuando un esquema tenga más de una clave, especifíquelas claramente con el formato {k1}, {k2}... No es necesaria ninguna justificación. 1) R ({A, B, C, D }, { A B}) (0 2) Claves: {A, C, D} Forma Normal: 1FN 2) R ({A, B, C, D }, {A B, B C}) (0 2) Claves: {A, D} Forma Normal: 1FN 3) R ({A, B, C, D }, {A, B C}) (0 2) Claves: {A, B, D} Forma Normal: 1FN 4) R ({A, B, C, D }, {A,B,C D }) (0 2) Claves: {A, B, C} Forma Normal: FNBC 5) R ({A, B, C, D }, {A,B,C D D A, D B D C }) (0 2) Claves: {A,B,C}, {D} Forma Normal: FNBC 2) (0.5 puntos) Es mínimo el siguiente esquema? Justifique su respuesta. R ({A, B, C, D, E, F}, {A C, A B, B, C D, D E, A E}) No lo es. Aunque no hay atributos extraños, ya que tanto el cierre de C como el de B no contienen a D, la dependencia A E es redundante, ya que (A) + {DF- A E} = {A, B, C, D, E}.
3) (0.5 puntos) Aplique el método de síntesis, que garantiza esquemas en 3FN, conservando la información y las dependencias, al siguiente esquema, que ya es mínimo. Justifique su respuesta. En qué forma se encuentran los esquemas resultantes? R ({A, B, C, D }, {A,B C, B D }) De acuerdo al método, una vez tenemos el conjunto mínimo, creamos un esquema por cada dependencia (o conjunto de DF con igual implicante) y, caso de no estar contenida en alguno de los esquemas, uno que contenga a la clave. Calculamos la clave: La clave única claramente es {A,B} (A y B siempre son implicantes y C y D siempre son implicados, por lo tanto no hay alternativa). Aplicando síntesis: R1 ({A, B, C}, {A, B C}) R2 ({B, D}, {B D }) Como R1 ya contiene a la clave, no es necesario añadir más esquemas. Todos los esquemas están en FNBC. 4) (1 punto) Obtenga un conjunto de esquemas de relación aplicando el algoritmo de análisis (descomposición) al siguiente esquema, que es mínimo, hasta obtener un conjunto de esquemas en FNBC, verificándose que en cada paso se conservan la información y las dependencias. R ({A, B, C, D, E }, {A,B C, B D }) R1 ({B,D}, {B D }) K: {B}, FNBC R ({A, B, C, E}, {A,B C }) K: {A, B, E}, 1FN R2 ({A, B, C }, {A,B C }) K: { A,B}, FNBC R3 ({A, B, E}, {Ø }) K: {A,B, E}, FNBC El esquema original lo descomponemos en R1 y, R2 y R3 Claramente en todos los pasos se verifica que se conservan las DF. Además, se conserva la información, ya que siempre se cumple que: - (A1 A2) (A1-A2) ó - (A1 A2) (A2-A1)
Examen de Diseño de Bases de Datos y Seguridad de la Información 2º Parcial 9 de septiembre de 2008 Nombre y Apellidos: Apartado C (4 puntos): Responda el apartado C en las propias hojas del examen 1) (1,5 puntos): a) (0,9 puntos): Defina brevemente qué es una base de datos distribuida y cuáles son los componentes principales de un SGBDD. Explique en qué consiste la metodología descendente de diseño de bases de datos distribuidas. Se entiende por base de datos distribuida a la colección de varias bases de datos interrelacionadas lógicamente y distribuidas sobre una red de ordenadores. Un SGBDD está compuesto por: - Procesador de datos locales - Diccionario o directorio global - Procesador de aplicaciones distribuidas - Software y red de comunicaciones La metodología descendente se basa en la construcción de los esquemas de fragmentación, asignación y replicación a partir de un esquema lógico global con el fin de obtener los esquemas locales de cada nodo. b) (0,6 puntos) Indique si las siguientes afirmaciones son ciertas o falsas: Cierto Falso Afirmación Un rol agrupa un conjunto de privilegios que se asignan de forma global a un usuario o a un grupo La fragmentación horizontal divide cada relación de la BDD en conjuntos de columnas La creación de un esquema de asignación consiste en la realización de la correspondencia entre nodos y fragmentos La fase de diseño lógico específico se centra en la obtención del esquema lógico estándar a partir del esquema lógico específico Cierto Falso Afirmación Un rol agrupa un conjunto de privilegios que se asignan de forma global a un usuario o a un grupo La fragmentación horizontal divide cada relación de la BDD en conjuntos de columnas La creación de un esquema de asignación consiste en la realización de la correspondencia entre nodos y fragmentos La fase de diseño lógico específico se centra en la obtención del esquema lógico estándar a partir del esquema lógico específico
4) (2,5 puntos) Dado el siguiente esquema E/R. a b A I (2, N) (0, N) B a) (1,8 puntos) Marque las casillas correspondientes a las cardinalidades que SÍ están recogidas en las siguientes transformaciones. Se indican los atributos que admiten nulos (NULL), los que no admiten nulos () y las claves alternativas (): a.1 NULL B ( b, CodA) Cardinalidad en A Cardinalidad en B (2, N) (0, N) a.2 B ( b, CodA1, CodA2 ) a.3 a.4 A ( a, CodB ) B ( b, CodA) I ( CodA, CodB ) a.5 NULL I ( CodB, CodA1, CodA2 ) a.6 I ( CodA, CodB )
Examen de Diseño de Bases de Datos y Seguridad de la Información 2º Parcial 9 de septiembre de 2008 Nombre y Apellidos: a.1 a.2 NULL B ( b, CodA) B ( b, CodA1, CodA2 ) Cardinalidad en A Cardinalidad en B (2, N) (0, N) a.3 a.4 A ( a, CodB ) B ( b, CodA) I ( CodA, CodB ) (Si la BD está en un estado consistente) (Si la BD está en un estado inconsistente) a.5 NULL I ( CodB, CodA1, CodA2 ) a.6 I ( CodA, CodB )
b) (0,7 puntos) Diseñe un grafo relacional que recoja todas las cardinalidades del modelo E/R del apartado anterior. Indique las restricciones (CHECK, ASSERTION, etc.) que sería necesario definir para controlar dichas cardinalidades. Nota: No es necesario escribir el código de la restricción. I ( CodA, CodB) Sería necesario crear una aserción que controlara: - Que todos los elementos de B están en I - Que cada elemento CodB aparece al menos 2 veces en I La aserción correspondiente (QUE NO SE PIDE) sería: CREATE ASSERTION ejercicio CHECK NOT EISTS (SELECT b FROM B WHERE b NOT IN (SELECT CodB FROM I)) AND NOT EISTS (SELECT T.CodB FROM (SELECT COUNT (CodA) Cardinalidad, CodB FROM I GROUP BY CodB) T WHERE T. Cardinalidad < 2);