examen diseÑo de bases de datos y seguridad de la ...dbd-2008-09]febrero...examen de diseño de...

12
EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN (30 de Enero de 2009) 1 er Parcial PARTE TEÓRICA (4 puntos): Tiene 15 minutos para realizar la parte teórica del examen. Rodee con un círculo la respuesta correcta. Tenga en cuenta que por cada pregunta sólo hay una respuesta correcta. En caso de que haya más de una respuesta que considere correcta, señale la más completa. Cada pregunta correcta suma 0‟4. Cada respuesta incorrecta resta 0‟1. Cada pregunta sin responder ni suma ni resta. 1) Un Sistema de Gestión de Bases de Datos: a) Se corresponde con los datos de usuario de la Base de Datos b) Se corresponde con los metadatos que describen tanto a los datos como a los usuarios almacenados en el repositorio o metabase de datos. c) Actúa como interfaz entre los usuarios y los distintos niveles de gestión de la organización. d) Actúa como interfaz entre la base de datos y los distintos niveles de gestión de la organización. e) No integra a los distintos subsistemas, pero en cambio atiende las necesidades de los usuarios en los cuatro niveles gestión de la organización. Solución: d 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 Táchese lo que proceda Nombre y Apellidos:

Upload: others

Post on 17-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

EXAMEN

DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN

(30 de Enero de 2009)

1er Parcial

PARTE TEÓRICA (4 puntos):

Tiene 15 minutos para realizar la parte teórica del examen.

Rodee con un círculo la respuesta correcta. Tenga en cuenta que por cada pregunta sólo hay una respuesta correcta. En caso de que haya más de una respuesta que considere correcta, señale la más completa. Cada pregunta correcta suma 0‟4. Cada respuesta incorrecta resta 0‟1. Cada pregunta sin responder ni suma ni resta.

1) Un Sistema de Gestión de Bases de Datos:

a) Se corresponde con los datos de usuario de la Base de Datos

b) Se corresponde con los metadatos que describen tanto a los datos como

a los usuarios almacenados en el repositorio o metabase de datos.

c) Actúa como interfaz entre los usuarios y los distintos niveles de gestión

de la organización.

d) Actúa como interfaz entre la base de datos y los distintos niveles de

gestión de la organización.

e) No integra a los distintos subsistemas, pero en cambio atiende las

necesidades de los usuarios en los cuatro niveles gestión de la

organización.

Solución: d

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 Táchese lo que proceda

Nombre y Apellidos:

Page 2: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

2) Las funciones esenciales de un Sistema de Gestión de Bases de Datos son:

a) Función de control, función de implantación y función de definición o

descripción.

b) Función de seguridad, función de manipulación y función de definición.

c) Función de definición, función de descripción y función de manipulación.

d) Función de datos, función de control y función de manipulación.

e) Función de manipulación, función de control y función de definición o

descripción.

Solución: e)

3) Señale cuál de las siguientes afirmaciones es correcta:

a) La independencia de descripción permite separar la definición de los

datos a nivel físico y a nivel lógico.

b) La independencia de descripción permite separar la definición de los

datos únicamente a nivel físico.

c) La independencia de descripción permite separar la definición de los

datos únicamente a nivel lógico.

d) La independencia de descripción no permite separar la definición de los

datos ni a nivel físico, ni a nivel lógico.

e) Todas las anteriores son falsas.

Solución: a)

4) Las fases para la puesta en marcha de una base de datos son:

a) Estudio previo y plan de trabajo, diseño y carga, y producción.

b) Producción, estudio previo y plan de trabajo, y diseño y carga.

c) Estudio previo y plan de trabajo, producción, y diseño y carga.

d) Concepción de la base de datos y selección del equipo, diseño y carga y

producción.

e) Todas las anteriores son incompletas.

Solución: e)

5) Señale cuál de las siguientes afirmaciones es correcta:

a) Los elementos del modelo entidad interrelación son: entidad,

interrelación, ejemplar, ocurrencia y atributo.

b) El grado de una interrelación es el número de entidades que

participan en dicha interrelación.

c) Un atributo multivaluado es aquél que puede tomar varios valores y

un atributo derivado es aquel cuyos valores se obtienen a partir de

otros ya existentes.

d) Las respuestas a) y b) son correctas.

e) Las respuestas b) y c) son correctas.

Page 3: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Examen de Diseño de Bases de Datos y Seguridad de la Información

30 de enero de 2009

Nombre y Apellidos:

Solución: e)

6) La Regla de Integridad Referencia dice que si tenemos dos relaciones R1 y

R2, y R1 tiene una clave ajena que referencia R2:

a) Los valores de los atributos que forman de la clave primaria de R1 tienen

que coincidir con los de la clave primaria de R2.

b) Los valores de los atributos que forman la clave primaria de R2 tienen

que coincidir con los de la clave ajena de R1.

c) Los valores de los atributos que forman la clave ajena en R1 tienen que

coincidir con alguno de los de la clave primaria de la tabla referenciada

(R2) o bien ser nulos.

d) Los valores de los atributos que forman la clave ajena en R1 no pueden

ser nunca valores nulos, puesto que tienen que coincidir con los de la

clave primaria de la tabla referenciada (R2).

e) Ninguna de las anteriores.

Solución: c)

Page 4: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

7) Dada la siguiente generalización:

a) Se trata de una generalización parcial y solapada.

b) Se trata de una generalización total y solapada.

c) Se trata de una generalización parcial y exclusiva.

d) Se trata de una generalización total y exclusiva.

e) Se trata de una generalización solapada y exclusiva.

Solución: c)

8) Dada la siguiente relación de exclusividad:

Señale cuál de las siguientes afirmaciones es correcta:

a) Un profesor que imparte cursos no puede recibir cursos.

b) Un profesor que imparte un curso determinado no puede recibir ese

mismo curso.

c) Un profesor puede impartir 0 o varios cursos y además, un curso puede

ser recibido por 0 o varios profesores

d) Las respuestas a) y c) son correctas.

Page 5: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Examen de Diseño de Bases de Datos y Seguridad de la Información

30 de enero de 2009

Nombre y Apellidos:

e) Las respuestas b) y c) son correctas.

Solución: a)

9) Dada las siguientes relaciones:

Indique cuál de las siguientes afirmaciones es correcta:

a) La consulta en álgebra relacional

Profesor ∩ Administrativo

Devolverá los profesores que son administrativos.

b) La consulta en álgebra relacional

π nombre (Profesor – Administrativo)

Devolverá los nombres de los profesores que no son administrativos.

c) La consulta en álgebra relacional

Profesor – (Profesor – Administrativo)

Es equivalente a la siguiente consulta Profesor ∩ Administrativo

d) La consulta en álgebra relacional

(π ciudad Profesor) U (π ciudad Administrativo)

Devolverá las ciudades de las que proceden los profesores y las

ciudades de los administrativos, eliminando las ciudades repetidas.

e) Todas las anteriores son correctas.

Solución: d)

Profesor (Nombre, Edad, Ciudad)

Administrativo (Nombre, Nacionalidad, Ciudad)

Page 6: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

10) Dado el siguiente esquema relacional:

Se define la siguiente consulta en álgebra relacional:

R1←nacionalidad = ‘ARGENTINA’ COMPOSITOR

R2← CANCIONR1

CANCION.Coimpositor=COMPOSITOR.Nombre

R3← nombre (( nacionalidad =’ESPAÑOLA’ CANTANTE)

R4← R2R3

CANTANTE.Nombre=CANCION.Cantante

R← cantante R4

Seleccione cuál de las siguientes consultas en SQL obtiene el mismo resultado

que la consulta expresada en álgebra relacional:

a) SELECT A.nombre FROM cantante A, cancion C, compositor O

WHERE A.nombre=C.cantante AND C.compositor=O.nombre

AND A.nacionalidad=‟ESPAÑOLA‟ AND

O.nacionalidad=‟ARGENTINA‟

b) SELECT C.cantante FROM cantante A, cancion C, compositor O

WHERE A.nacionalidad=‟ESPAÑOLA‟ AND

O.nacionalidad=‟ARGENTINA‟ AND A.nombre=C.cantante AND

C.compositor=O.nombre

c) SELECT A.nombre FROM cantante A, cancion C, compositor O

WHERE C.compositor=O.nombre AND

A.nacionalidad=‟ESPAÑOLA‟ AND O.nacionalidad=‟ARGENTINA‟

d) SELECT O.nombre FROM cantante A, cancion C, compositor O

WHERE A.nombre=C.cantante AND A.nacionalidad=‟ESPAÑOLA‟

AND O.nacionalidad=‟ARGENTINA‟

e) Las respuestas a) y b) son válidas

Solución: e)

CANTANTE (Nombre, Edad, Nacionalidad)

COMPOSITOR (Nombre, Edad, Nacionalidad)

CANCION (Titulo, Cantante, Género, Compositor)

Page 7: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Examen de Diseño de Bases de Datos y Seguridad de la Información

30 de enero de 2009

Nombre y Apellidos:

PARTE PRÁCTICA (6 puntos):

Tiene 2 horas para realizar la parte práctica del examen.

1. (2 puntos) Dada la siguiente especificación:

Una tienda de música desea poder almacenar información relativa a los discos

recopilatorios que vende, para lo cual se pretende diseñar una base de datos

acorde a las siguientes especificaciones:

Cada disco está producido por un sello discográfico, en una determinada fecha

de lanzamiento. Del sello discográfico se desea conocer el nombre, sede, país

y código correlativo que lo identifique. Del disco nos interesa almacenar el

título, el género, soporte en cual se grabó pudiendo ser: cd, dvd, mp3 o mp4,

un código y las canciones que componen el disco (es necesario que el disco

tenga un mínimo de 9 canciones). Para las canciones almacenaremos el

nombre, el número de la pista y la duración. Una canción se identifica

conjuntamente por el número de la pista y el código del disco del que forma

parte.

Un artista puede ser cantante y/o compositor. Una canción puede ser

interpretada por uno o varios cantantes. Además un compositor puede

componer una o varias canciones y una canción puede ser compuesta por uno

o varios compositores, de las que también nos interesa conocer la fecha en la

cual se compuso. Los cantantes que además son compositores, sólo pueden

interpretar canciones que ellos mismos componen. De cada artista

almacenaremos un código identificador, su nombre, sexo, y uno o varios

teléfonos y opcionalmente su edad. En el caso de los cantantes, también nos

interesa registrar que pueden trabajar conjuntamente con otros cantantes.

Se pide:

Page 8: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Realice el esquema entidad-interrelación que recoja toda la semántica posible a

partir del enunciado. Indique todas las suposiciones semánticas que haya

realizado, así como la semántica que no se haya podido recoger en el

esquema.

Solución:

SEMÁNTICA NO RECOGIDA: ─ Que el código sea correlativo en el sello discográfico. ─ El dominio para el soporte del disco (cd, dvd, mp3, mp4). ─ No se puede recoger en el diagrama que la fecha de

composición sea anterior a la fecha de lanzamiento.

CONSIDERACIONES: ─ Al tener cardinalidades mínimas 1, tanto artistas como

compositores en sus respectivas relaciones con la entidad canción, entendemos que no tendremos artistas que no hayan realizado ninguna aportación a alguna canción, ya sea como cantante o como compositor.

─ El atributo fecha de lanzamiento se puede ubicar tanto en la relación produce (entre sello discográfico y disco) como en la entidad disco, debido a la cardinalidad de la relación (1:N).

Page 9: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Examen de Diseño de Bases de Datos y Seguridad de la Información

30 de enero de 2009

Nombre y Apellidos:

2. (4 puntos) Dado el siguiente esquema relacional:

Donde las claves primarias se representan en negrita y subrayado, y los

atributos marcados con asterisco permiten valores nulos.

Se pide:

a) (0.75 puntos) Simule las opciones de modificación recogidas en el

esquema relacional, codficándolas mediante disparadores:.

Solución:

CREATE OR REPLACE TRIGGER Update_Cascade_Contacto AFTER UPDATE of nombre ON CONTACTO FOR EACH ROW BEGIN /* Actualización en cascada en la tabla TELEFONO */ UPDATE TELEFONO SET nombre=:NEW.nombre WHERE nombre=:OLD.nombre; /* Actualización en cascada en la tabla CORREO_E */ UPDATE CORREO_E SET nombre=:NEW.nombre WHERE nombre=:OLD.nombre; END; /

CONTACTO (nombre, apellidos, edad, puesto)

TELEFONO (nombre, móvil, fijo*)

CORREO_E (nombre, mail, proveedor)

Borrado: Cascada Modificación: Cascada

Borrado: Cascada Modificación: Cascada

Page 10: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

b) (1 punto) Codifique en PL/SQL un subprograma que permita insertar

direcciones de correo electrónico a un contacto existente. Dicho

subprograma podrá insertar una o dos direcciones de correo electrónico

con su correspondiente proveedor para un contacto. Dichos

procedimientos deberán tener en cuenta que si el nombre del contacto

no existe, se mostrará un mensaje de error.

Solución:

/* Especificación*/ CREATE OR REPLACE PACKAGE Paquete_Insertar_Correo_E AS PROCEDURE Nuevo_Correo ( p_nombre IN CONTACTO.NOMBRE%TYPE, p_mail IN CORREO_E.MAIL%TYPE, p_proveedor IN CORREO_E.PROVEEDOR%TYPE); PROCEDURE Nuevo_Correo ( p_nombre IN CONTACTO.NOMBRE%TYPE, p_mail IN CORREO_E.MAIL%TYPE, p_proveedor IN CORREO_E.PROVEEDOR%TYPE, p_mail_2 IN CORREO_E.MAIL%TYPE, p_proveedor_2 IN CORREO_E.PROVEEDOR%TYPE); END Paquete_Insertar_Correo_E; / /* Implementación */ CREATE OR REPLACE PACKAGE BODY Paquete_Insertar_Correo_E AS /* Funcion auxiliar para comprabar que existe un contacto */ FUNCTION Existe_Contacto(p_nombre IN CONTACTO.NOMBRE%TYPE) RETURN

Boolean IS existe number; BEGIN SELECT count(*) into existe FROM Contacto where nombre=p_nombre; IF existe=1 THEN RETURN TRUE; ELSE RETURN FALSE; END IF; END Existe_Contacto; PROCEDURE Nuevo_Correo ( p_nombre IN CONTACTO.NOMBRE%TYPE, p_mail IN CORREO_E.MAIL%TYPE, p_proveedor IN CORREO_E.PROVEEDOR%TYPE) IS BEGIN IF NOT Existe_Contacto(p_nombre) THEN RAISE_APPLICATION_ERROR(-20000,'No existe ningun contacto con

ese nombre'); ELSE INSERT INTO CORREO_E VALUES (p_nombre,p_mail,p_proveedor); END IF; END Nuevo_correo; PROCEDURE Nuevo_Correo ( p_nombre IN CONTACTO.NOMBRE%TYPE, p_mail IN CORREO_E.MAIL%TYPE, p_proveedor IN CORREO_E.PROVEEDOR%TYPE, p_mail_2 IN CORREO_E.MAIL%TYPE, p_proveedor_2 IN CORREO_E.PROVEEDOR%TYPE) IS BEGIN

Page 11: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Examen de Diseño de Bases de Datos y Seguridad de la Información

30 de enero de 2009

Nombre y Apellidos:

IF NOT Existe_Contacto(p_nombre) THEN RAISE_APPLICATION_ERROR(-20000,'No existe ningún contacto con

ese nombre'); ELSE INSERT INTO CORREO_E VALUES (p_nombre,p_mail,p_proveedor); INSERT INTO CORREO_E VALUES (p_nombre,p_mail_2,p_proveedor_2); END IF; END Nuevo_correo; END Paquete_Insertar_Correo_E; /

c) (1 punto) Defina en lenguaje SQL una consulta que permita recuperar el

nombre y los apellidos de los contactos que tengan más de una cuenta

de correo electrónico y que, al menos, una de ellas sea del proveedor

„HOTMAIL‟

Solución:

SELECT nombre, apellidos FROM CONTACTO c NATURAL JOIN CORREO_E e WHERE e.proveedor='HOTMAIL' AND e.nombre in

(SELECT nombre FROM CORREO_E GROUP BY nombre

HAVING count(*)>1);

d) (0.75 puntos) Defina mediante operadores del álgebra relacional una

consulta que permita recuperar el nombre y los apellidos de todos los

contactos que cumplan una de estas dos condiciones:

a. Que su puesto sea el de “Director”

b. No disponga de teléfono fijo y que además tenga una cuenta de

correo cuyo proveedor sea GMAIL.

Page 12: EXAMEN DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA ...DBD-2008-09]Febrero...Examen de Diseño de Bases de Datos y Seguridad de la Información 30 de enero de 2009 Nombre y Apellidos:

Solución:

/* Contactos con cuenta en GMAIL */

R1 σ proveedor=’GMAIL’ (CORREO_E)

/* Contactos sin teléfono fijo */

R2 σ fijo=’NULL’ (TELEFONO) /* Nombre de los contactos con cuenta en GMAIL y sin teléfono fijo */

R3 ∏ nombre (R1*R2) /* Nombre de los contactos cuyo puesto es director */

R4 ∏ nombre (σ puesto=’DIRECTOR’ (CONTACTO)) /* Nombres de los contactos que cumplen uno de los dos criterios */

R5 R4 U R3 /* Obtengo el nombre y apellidos de R5 */

R ∏ nombre, apellidos (R5 * CONTACTO)

e) (0.5 puntos) ¿Qué implicaciones tendría que la clave primaria de la

relación CORREO_E fuera exclusivamente el atributo nombre, en lugar

de estar compuesta por los atributos nombre y mail, tal y como se refleja

en el esquema relacional? Justifique su respuesta.

Solución:

Si reducimos la clave primaria exclusivamente al atributo nombre y atendiendo a la regla de Integridad de Entidades un contacto podría tener exclusivamente una dirección de correo electrónico y un proveedor. En cambio el esquema actual, permite a un contacto tener más de una dirección de correo electrónico, ya que la combinación entre los atributos nombre y mail permite generar claves primarias diferentes que referencien unívocamente a una tupla de la relación CORREO_E.