Examen BD

Facultad de Ciencias de la Computación, BUAP Examen Departamental, Tipo: 13-14, Área de Bases de Datos e Ing. Software.

Views 220 Downloads 5 File size 386KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Facultad de Ciencias de la Computación, BUAP Examen Departamental, Tipo: 13-14, Área de Bases de Datos e Ing. Software. Asignatura: Bases de Datos para Ingeniería - ICCS 256 2o. Examen Departamental Otoño 2019 Profesor: Dra. María de la Concepción Pérez de Celis Herrero Fecha: 17 de octubre 2019

NRC: 15694 Sección: 001

Nombre:Diego Alberto Martinez Hernandez Matrícula: 201655361

Instrucciones: Realizar cada problema en hoja separada colocando número de página. 1. Considere el siguiente esquema para una base de datos que conserva información acerca de viajes de negocios y sus gastos asociados por empleado:

EMPLEADO (NSS, Nombre, DeptNo, TituloPuesto, Salario) VIAJE (ViajeId, CiudadPartida, CiudadDestino, FechaPartida, FechaRegreso, NSS) GASTOS (ViajeId, Concepto, Fecha, Cantidad) Escriba consultas de algebra relacional para cada uno de los siguientes enunciados: 1. Obtener una lista de todas las diferentes ciudades de destino donde realizaron viajes los empleados. 2. Obtener registros de viaje completos (pero no sus gastos asociados) para todos los viajes con fechas de partida después del 1 de enero del año actual. 3. Encontrar el NSS de todos los empleados que tengan cualquier concepto de gasto individual de más de $1000 para cualquier viaje. 4. Encontrar las ciudades de destino de todos los viajes realizados por los empleados que tengan el titulo de puesto “Consultor”. 5. Encontrar los conceptos y cantidades de todos los gastos para un viaje al Cairo que comience el 3 de enero de este año realizado por el empleado Jones. 6. Encontrar los nombres, departamentos y títulos de puesto de todos los empleados que tengan cualquier gasto con valor “Cargo de servicio” para viajes realizados a Melbourne el año pasado, junto con la fecha y cantidad del gasto. (4 puntos) 1. Obtener una lista de todas las diferentes ciudades de destino donde realizaron viajes los empleados. R= ∏CiudadDestino(Viaje) 2. Obtener registros de viaje completos (pero no sus gastos asociados) para todos los viajes con fechas de partida después del 1 de enero del año actual. R= ΠViajeid(σ fecha>1 de enero 2019(VIAJE)) 3. Encontrar el NSS de todos los empleados que tengan cualquier concepto de gasto individual de más de $1000 para cualquier viaje. R= Select NSS FROM Empleado,Viaje,Gastos WHERE Empleado.NSS = Viaje.NSS AND Gastos.concepto>1000 4. Encontrar las ciudades de destino de todos los viajes realizados por los empleados que tengan el titulo de puesto “Consultor”. R= ΠCiudadPartida,CiudadDestino(VIAJE) WHERE TituloPuesto = 'Consultor' (EMPLEADO)

5. Encontrar los conceptos y cantidades de todos los gastos para un viaje al Cairo que comience el 3 de enero de este año realizado por el empleado Jones.

6. Encontrar los nombres, departamentos y títulos de puesto de todos los empleados que tengan cualquier gasto con valor “Cargo de servicio” para viajes realizados a Melbourne el año pasado, junto con la fecha y cantidad del gasto.

2. Respecto de las claves candidatas en el modelo relacional, señalar las afirmaciones erróneas: a) Toda relación tiene al menos una clave candidata. b) Una clave candidata es una clave primaria que también cumple la propiedad de minimalidad. c) Toda clave primaria es también clave candidata. d) Toda clave alternativa es también clave candidata. (1 punto) 3. Respecto a la integridad referencial, cuáles de las siguientes afirmaciones son falsas: a) Las claves ajenas permiten implementar la integridad referencial. b) Obliga a que el valor de la clave ajena de la tabla que referencia no se encuentre entre los valores de la clave primaria de la tabla referenciada. c) No obliga a que la clave ajena tenga valor no nulo. d) Es la restricción que garantiza el SGBD para cumplir con la no duplicidad de tuplas en la tabla en la que se define una clave ajena. (1 punto)

4. Proceso de Normalización : Realizar el grafo de dependencias funcionales y encontrar las llaves candidatas y primaria mediante la cerradura de los atributos

(A puntos) A. Anomalías del modelo planteado En primer lugar, analizaremos las anomalías producidas por la Dependencia Funcional E →Di: Esta dependencia provoca la redundancia de datos al almacenar repetidas veces la dirección de cada estudio. Esta redundancia existente también puede provocar inconsistencias. Por otro lado al incluir el atributo ‘Actor’ en la relación, estamos incluyéndolo, por consecuencia, en la clave candidata de la relación, y al existir dependencias funcionales de parte de la clave candidata, provoca un almacenamiento redúndate de todos los atributos dependientes. En este caso estaríamos redundando los atributos: ‘Duración’, ’Tipo’ y ‘Estudio’. Y como consecuencia de la redundancia de ‘Estudio’ también se redunda el atributo ‘Dirección’.

B. Plantearemos el grafo de dependencias funcionales

C. ¿FNBC? 1ª FN: No existen atributos no atómicos. 2ª FN: Todo atributo no primo depende completamente de la clave primaria. Para las relaciones en las que la clave primaria contiene múltiples atributos, como es el caso, ningún atributo no clave debería depender funcionalmente de una parte de la clave Primaria. En este caso vemos que los atributos {E, D, Di, Ti} dependen de una parte de la clave primaria {A, T}. Vamos a descomponer y crear una nueva relación para cada clave parcial con sus atributos dependientes. Nos debemos asegurar de mantener una relación con la clave primaria original y todos los atributos que dependen funcionalmente en forma total de ella. Descomponemos R: R1 ({T, A, D, Ti, E, Di}, { T A → Ti, T A → E, T A → D, E → Di}) 2ª FN R2 ({T, A, Ac}, { }) FNBC Una vez descompuesta R, y habiendo obtenido una relación R2 en FNBC, nos centramos en R1. Título Año Tipo Estudio Dirección Duración Actor R1 está en 2ª FN ya que todo atributo no primo depende completamente de la clave primaria, en este caso la c.c. es {T, A}. Esto debemos obtenerlo siguiendo el algoritmo definido en clase para la obtención de claves candidatas. ¿Está R1 en 3ªFN? Para que esté en 3ª FN la relación debe cumplir no tener un atributo no clave determinado funcionalmente por otro atributo no clave. En este caso vemos que Di depende de un atributo no primo E, por lo que debemos descomponer y crear una relación que incluya el atributo o atributos no clave que determinen funcionalmente a otros no clave. R1 ({T, A, D, Ti, E, Di}, {T A → Ti, T A → E, T A → D, E → Di}) Descomponemos a partir de la Dependencia Funcional E → Di, siguiendo el teorema de Heath: R11 ({E, Di}, {E → Di}) FNBC R12 ({T, A, D, Ti, E}, {T A → Ti, T A → E, T A → D}) FNBC Tanto R11 como R12 están en 3ª FN, veremos que también están en FNBC ya que para toda dependencia funcional válida X -> Y, X debe ser una superclave. En R11 la c.c. es {E} y la única dependencia funcional es {E → Di}. En R12 la c.c. es {T, A} y las dependencias funcionales son {T A → Ti, T A → E, T A → D}, donde se cumple que todo determinante es c.c., por lo tanto está en FNBC.