Examen de Bases de datos y sistemas de información I PARCIAL

Documentos relacionados
Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 10-Feb Nombre:

Examen de Ficheros y bases de datos (cód. 520) Ingeniería Técnica en Informática de Gestión Convocatoria de junio I PARCIAL

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 3-Septiembre Nombre:

La estrategia de descomposición basada en una violación de la FNBC que aplicaremos consiste en:

Normalización Clase Práctica SPI y SPDF

Examen de Bases de datos y sistemas de información I PARCIAL. A C S I _y s1 _z B N C

Formas Normales. Normalización. Introducción

Nombre: Se debe entregar esta hoja

Departamento de Lenguajes y Sistemas Informáticos. Avda Reina Mercedes s/n Sevilla Tlf/Fax

Modelo relacional. El modelo relacional

Bases de Datos y Sistemas de Información Curso Ingeniería Superior Primer Parcial.

Diseño de Bases Relacionales

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 28-Junio Nombre:

Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación Base de Datos

Formas Normales. - Facultad de Ingeniería Curso : Fundamentos de Bases de Datos Tema 1. Introducción y Conceptos Generales 1

TEMA 7 TEORÍA DE LA NORMALIZACIÓN EJERCICIOS PROPUESTOS

Esquema Lógico CHEF. CHEF (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre)

Apartado A (3 puntos):

Examen de Ficheros y bases de datos ( ) Convocatoria de febrero I PARCIAL

Apartado A (3 puntos):

Unidad 2. Bases de Datos Relacionales

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

Vemos que t3 y t4 serían las mismas tuplas que las dadas. En este caso no se agregan tuplas.

Universidad de Valladolid Departamento de Informática

Normalización. Tecnólogo en Informática, sede Paysandú Bases de Datos 1

Esquema Lógico FOROFO. EQUIPO (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre) CAj (ciudad, país) CIUDAD

Introducción al Modelo Relacional

TEMA 7 TEORÍA DE LA NORMALIZACIÓN EJEMPLOS DESARROLLADOS

Normalización. Carlos A. Olarte Bases de Datos I

Modelo Relacional I. Nos encontramos en la FASE 2: REGLAS DE TRANSFORMACIÓN del Modelo Entidad Relación (MER) al Modelo Relacional (MR).

Guía del Curso Curso de Bases de Datos Relacionales

Tema 2: Diseño de Bases de Datos (Diseño Lógico)

Ficheros y Bases de Datos Curso Primer Parcial. 7 de FEBRERO de Nombre:

5 Diseño de base de datos relacionales 5.1 Objetivos del diseño de bases de datos. 5.2 Dependencias funcionales. 5.3 Normalización. 5.3.

Solución Práctico 6 Diseño Relacional. Ejercicio 1: Tecnólogo en Informática Base de Datos 1 Práctico

Bases de datos 1. Teórico: Normalización

Bases de datos 1. Teórico: Normalización

Metodología de Diseño Lógico. Sistemas Gestores de Bases de Datos

Base de Datos. Práctica de Normalización. 1 Base de Datos

Normalización Clase Práctica Formas Normales

Fundamentos de Programación y Base de Datos

Clases Prácticas Base de Datos DF y FN 10 y 17/09/ C.2010

Base de Datos. Profesores: Franklin Johnson P. José Miguel Rubio L.

Gestion y Modelación de Datos Diseño de BD - Modelo Entidad Relación

Temario. Índices simples Árboles B Hashing

EL MODELO DE DATOS RELACIONAL

BASES DE DATOS (curso 2003/2004)

TEMA 3: REDUCCIÓN DE UN ESQUEMA E-R A TABLAS

Fundamentos de Programación y Base de Datos

CURSO: FUNDAMENTOS DE PROGRAMACION Y BASES DE DATOS

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

Modelos de datos. Colección de herramientas conceptuales para describir

Universidad de Concepción Departamento de Ing. Informática y Cs. de la Computación

Esquema Lógico F1. EXAMEN 1 de diciembre de EQUIPO (NOMBRE:cadena) CP (NOMBRE) DIRECTOR (NOMBRE:cadena) CP (NOMBRE)

Es decir, se va a mostrar la equivalencia más eficiente entre las distintas relaciones representables en E-R y MR.

Normalización. Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

COLEGIO DE BACHILLERES PLANTEL 14 MILPA ALTA FIDENCIO VILLANUEVA ROJAS. Crea y Administra Bases de Datos. Plan de estudios 2014.

Fundamentos de programación y Bases de Datos

BASES DE DATOS AVANZADAS. Facultad de Estadística e Informática

El Modelo Relacional. Carlos A. Olarte BDI

Facultad de Informática UCM - Examen Parcial Convocatoria de Febrero Curso 2009/2010 Grupo A Bases de Datos y Sistemas de la Información SOLUCIÓN

Bases de datos 1. Teórico: Modelo Relacional

Ing. Yim Isaias Apestegui Florentino

DISEÑO LÓGICO DE UNA BASE DE DATOS EN EL MODELO RELACIONAL (Teoría de la Normalización)

Teoría de la Normalización

DED Diagramas de Estructura Lógica de Datos. Universidad de Oviedo Departamento de Informática

Seguridad en BD Diseño Físico y Administración de Bases de Datos Otras tecnologías de Bases de Datos Bases de Datos Distribuidas Almacenes de Datos

A isgn g atu n r atu a: C rr r e r r e a/ r s a/ : C cl c o Le L c e ti c v ti o: Doc D e oc n e te n / te s / : C rg r a h

Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación Base de Datos

NORMALIZACION. Fig. 1

Bases de Datos OTROS ASPECTOS MODELO E-R

Modelado Entidad-Relación

BASE DE DATOS Modelos de Datos

Normalización. Carlos A. Olarte Bases de Datos I

Edición, emplane y realización: Ing. José Quesada Pantoja Diseño: Olga Luisa Domínguez Sánchez

BB.DD. relacionales. BB. DD. Relacionales T Dpto. Lenguajes y Sistemas Informáticos. Universidad de Alicante

Programa regular de asignatura

Examen de Ficheros y bases de datos (cód. 520) Ingeniería Técnica en Informática de Gestión Convocatoria de septiembre I PARCIAL

[4] Diseño lógico de bases de datos

Modelo Entidad Relación

Una tabla se encuentra en primera forma normal si impide que un atributo de una tupla pueda tomar más de un valor. La tabla:

Fundamentos de Normalización

Bases de Datos y Sistemas de Información. Fundamentos de Normalización

UNIVERSIDAD DE GUADALAJARA

Diseño Lógico Modelo Relacional. Ges3ón y Modelación de Datos María Constanza Pabón

Adquisición y Tratamiento de Datos (Febrero 2009).

id_trabajador nombre tarifa_hr tipo_de_oficio id_supv 1235 F. Aguilera 12,50 Electricista A. Calvo 13,75 Fontanero N.

7 Diseño de Bases de Datos Relacionales: Normalización

Atributo1 Atributo 2... Atributo n xxxxxxxx xxxxxxxx... xxxxxxxx xxxxxxxx xxxxxxxx... xxxxxxxx... xxxxxxxx xxxxxxxx... xxxxxxxx

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

Bases de Datos. Tema 7 (parte 1) Teoría de la Normalización. Francisco Ruiz abr UCLM-ESI (F.Ruiz)

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015

IV. MODELO RELACIONAL

FUNDAMENTOS DE BASES DE DATOS. Examen Diciembre 2003

El Modelo Relacional (2 de 5)

Diseño de Base de Datos Relacional. Diseño de Base de Datos Relacional

Transcripción:

Examen de Bases de datos y sistemas de información I PARCIAL 1) (0,5 puntos) Demostrar que en la tabla que resulta de traducir un conjunto de relaciones n-arias en el que sólo m conjuntos de entidades participan con cardinalidad y el resto con cardinalidad N al modelo relacional puede haber a lo sumo m claves candidatas. Cuándo hay exactamente m? Qué ocurre si la restricción de cardinalidad es (0,1)? R: Para cada conjunto de entidades que participan con cardinalidad máxima 1, sus valores de clave sólo pueden aparecer una vez en la tabla del conjunto de relaciones, por lo que su clave puede formar superclave. Serán claves candidatas si no hay superclaves con menos atributos. Si todos estos conjuntos de entidades tienen el mismo número de atributos clave, habrá m claves candidatas (no puede haber más porque los atributos clave de los conjuntos de entidades que participen con cardinalidad superior no pueden formar clave de la tabla del conjunto de relaciones, ya que sus valores aparecerán en general más de una vez). Cuando la restricción de cardinalidad es (0,1), los atributos clave de estos conjuntos de entidades pueden seguir siendo clave candidata de la tabla del conjunto de relaciones. La diferencia con el caso anterior se refiere a la cardinalidad de las estos conjuntos de entidades. Mientras que en el caso anterior (cardinalidad, es decir, participación total) todas las entidades están representadas en el conjunto de relaciones, en este caso no. Por lo que en el primero, la cardinalidad de estos conjuntos de entidades debe coincidir, mientras que en el segundo no. 2) (1 punto) Expresar la operación de reunión zeta externa completa de dos relaciones r y s, con esquemas respectivos R y S, en términos de operaciones del álgebra relacional asumiendo que no se tiene ningún tipo de reunión externa. R: (r x θ s) ({(nulo,..., nulo)} (s-π S (r x θ s))) ((r-π R (r x θ s))x{(nulo,...,nulo)} donde la primera relación {(nulo,..., nulo)} se encuentra en el esquema R-S y la segunda en el esquema S- R. 3) (0,5 puntos) Supóngase que se realiza una reunión entre dos tablas A y B y que el resultado contiene columnas de ambas. Observando el resultado, qué tipos de relaciones según su cardinalidad puede haber entre las columnas de A y B en el resultado? R: Las reuniones que encajan las claves primarias con las externas siempre producen relaciones uno a varios. Otras reuniones también pueden generar relaciones uno a varios si las columnas coincidentes en al menos una de las tablas tiene valores únicos en todas las filas de la tabla. Si las columnas coincidentes tienen valores únicos en todas las filas ambas tablas se trata de relaciones uno a uno. En general, las reunión de columnas coincidentes arbitrarias generan relaciones varios a varios. 4) (1,5 puntos) Dado el siguiente modelo entidad relación (se asume que todas las entidades están determinadas por códigos y un coste de escritura doble al de lectura) y la siguiente tabla de volúmenes de datos, se pide determinar la eliminación o no de la información redundante con respecto a las operaciones: a) Operación 1: Hacer una reserva en un vuelo (frecuencia: 50 veces al día). b) Operación 2: Listar todos los vuelos con el tipo de avión, su número de plazas, reservas y nombres de los técnicos que los mantienen (frecuencia: 10 veces al día) 1

Tabla de volúmenes de datos Concepto Tipo Volumen Clientes E 10.000 Vuelos E 1.000 Aviones E 200 Pilotos E 300 Técnicos E 1.600 Reservan R 20.000 Pilotan R 1.000 Tipo avión R 1.000 Pilotos Pilotan Clientes Reservan Vuelos Plazas reservadas Plazas Tipo avión Técnicos Mantienen Aviones Plazas R: Sólo hay una redundancia: el número de plazas reservadas (Plazas reservadas) en Vuelos, que se puede determinar mediante la relación Reservan. Requisito de almacenamiento para el atributo redundante: 4x1.000=4.000 bytes (asumiendo un tipo de datos entero con cuatro bytes de almacenamiento). Cada avión está mantenido en media por 8 técnicos (1.600/200). Se asume que los clientes ya están dados de alta en la base de datos. Primer caso: con redundancia. Coste de las operaciones: Tabla de accesos Operación 1 Concepto Tipo de Accesos Tipo de Motivo objeto acceso Vuelos E 1 L Para leer el número de plazas reservadas Tipo avión R 1 L Para obtener el tipo de avión que le corresponde Aviones E 1 L Para determinar el número de plazas del avión Reservan R 1 E Para insertar la nueva tupla de Reservan (si quedan plazas) Vuelos E 1 E Para escribir el nuevo número de plazas reservadas (si quedan plazas) Operación 2 Concepto Tipo Accesos Tipo Motivo Vuelos E 1x1000 L Para obtener el número de plazas reservadas en el vuelo y su código Tipo avión R 1x1000 L Para obtener el tipo de avión que le corresponde Aviones E 1x1000 L Para determinar el número de plazas del avión Mantienen R 8x1000 L Para obtener los técnicos que mantienen el avión Técnicos E 8x1000 L Para determinar el nombre de cada uno de los técnicos Leyenda: E=Entidad, R=Relación, L=Lectura, E=Escritura Operación 1: 3x50=150 accesos en lectura y 2x50=100 en escritura. Coste=150+100x2=350 Operación 2: 19.000x10=190.000 accesos en lectura. Coste=190.000 Coste total: 350+190.000=190.350 Segundo caso: sin redundancia. En media, en cada vuelo reservan 20 clientes (20.000/1.000) Tabla de accesos Operación 1 Concepto Tipo de Accesos Tipo de Motivo objeto acceso Tipo avión R 1 L Para obtener el tipo de avión que corresponde al vuelo Aviones E 1 L Para determinar el número de plazas del avión Reservan R 20 (en media) L Para determinar el número de plazas reservadas Reservan R 1 E Para insertar la nueva tupla de Reservan (si quedan plazas) 2

Operación 2 Concepto Tipo Accesos Tipo Motivo Vuelos E 1x1000 L Para obtener el número de plazas reservadas en el vuelo y su código Tipo avión R 1x1000 L Para obtener el tipo de avión que le corresponde Aviones E 1x1000 L Para determinar el número de plazas del avión Mantienen R 8x1000 L Para obtener los técnicos que mantienen el avión Técnicos E 8x1000 L Para determinar el nombre de cada uno de los técnicos Reservan R 20x1000 L Para determinar el número de reservas Leyenda: E=Entidad, R=Relación, L=Lectura, E=Escritura Operación 1: 22x50 accesos en lectura y 1x50 en escritura. Coste=1.100+50x2=1.200 Operación 2: 39.000x10=390.000 accesos en lectura. Coste=390.000 Coste total: 1.200+390.000=391.200 Por tanto, se escoge con redundancia. 5) (3,5 puntos) Un operador de telefonía celular desea contar con una base de datos que guarde información sobre las llamadas de sus clientes y su facturación. Los clientes pueden ser personas individuales (con un NIF) o entidades (con un CIF). Cada cliente elige el tipo de facturación que desea (mensual o bimensual) y la dirección de envío de las facturas, cada una de ellas identificada por un número de factura. La facturación de cada llamada depende de su duración, sus comunidades autónomas de origen y destino, y de unas tarifas fijas para todos los clientes que distinguen las realizadas en festivos del resto (no hay cuota de establecimiento de llamada). Estas tarifas están definidas por intervalos de tiempo para las llamadas en días festivos y laborables y no se contempla el IVA. Se pide: a) Construir el modelo entidad-relación añadiendo el mínimo número de atributos, con generalizaciones donde sea posible e imponiendo y explicando las restricciones de clave, de dominio y de cardinalidad mínimo-máximo que se estimen oportunas. b) Traducir el modelo conceptual obtenido al modelo lógico sin considerar las operaciones expresando las restricciones de integridad referencial y de participación total en notación algebraica. c) Plantear una consulta en SQL para obtener el coste de una llamada, asumiendo que las llamadas entre diferentes comunidades tarifican el doble de las que se realicen dentro de la misma. d) Plantear una consulta en SQL para emitir la factura de un cliente para un mes determinado con los datos de cada llamada (fecha, hora, origen, destino, coste) y otra que calcule el total de la factura. R. a) 3

Fecha Hora Fechas festivos Dirección Tipo facturación Realizan Clientes ISA Nº factura Mes Llamadas Facturan Tarifas Duración Entre Corresponden Comunidades Personas NIF Entidades CIF Hora inicio Hora fin Tipo tarifa Tarifa a1) Restricciones de clave y de dominio Generalizaciones: Clientes(: String, Dirección: String, Tipo facturación: {Mensual, Bimensual}) Entidades fuertes: Personas(NIF: String) Entidades(CIF: String) Comunidades(: String) Entidades débiles: Llamadas(Fecha: Date, Hora: Time, Duración: Integer, Clientes.Identificación) Identificación es el valor de NIF de Personas o de CIF de Entidades, según corresponda Festivos(Fecha: Date, Comunidades. ) Tarifas(Hora inicio: Time, Hora fin: Time, Tipo tarifa : {Laborable, Festivo}, Tarifa: Numeric(5,4), Comunidades. ) a2) Restricciones de cardinalidad mínimo-máximo Realizan: Clientes - - Realizan - Llamadas: No todos los clientes dados de alta deben haber efectuado una primera llamada (mínimo 0). El mismo cliente puede haber realizado varias llamadas (máximo N). Clientes - Realizan - Llamadas: Cada llamada debe pertenecer a un cliente (mínimo 1). Una llamada corresponde sólo a un cliente (máximo 1) Facturan: Llamadas - - Facturan - Tarifas: Toda llamada debe pertenecer a una factura (mínimo 0). Cada llamada pertenece a una única factura (máximo 1). Llamadas - Facturan - -Tarifas: Puede haber tarifas para las que no exista ninguna llamada (mínimo 0). Para una tarifa puede haber varias llamadas (máximo N). Corresponden: Tarifas - - Corresponden - Comunidades: Toda tarifa debe corresponder a una comunidad (mínimo 1). La misma tarifa puede corresponder a varias comunidades (máximo N). Tarifas - Corresponden - - Comunidades: Cada comunidad tiene al menos una tarifa (mínimo 1). Cada comunidad puede tener más de una tarifa (máximo N). Tienen: Comunidades - - Tienen - Festivos: Cada comunidad tiene al menos un festivo (mínimo 1). Cada comunidad puede tener varios festivos (máximo N). Comunidades - Tienen - - Festivos: Cada festivo debe estar asociado a una comunidad (mínimo 1). Un festivo en concreto puede corresponder a varias comunidades (máximo N); por ejemplo, los días festivos nacionales. b) 4

Fase de reestructuración: Sólo se eliminarán las generalizaciones, no se consideran divisiones ni mezclas de entidades y relaciones porque no se tienen en cuenta las operaciones. Se transformará el único atributo multivalorado (Fechas festivos) en un conjunto de entidades (Festivos) relacionado con Comunidades a través de la relación Tienen. La única generalización se transforma con un plegado de las entidades hijo con la entidad padre. Se conserva una sola relación entre Clientes y Llamadas (a diferencia de las otras dos alternativas posibles, que generarían dos relaciones). Aparece un nuevo atributo en Clientes, Tipo cliente, que denotará el tipo de cliente, con dominio {Persona, Entidad}. Dado que los dominios de NIF y CIF son iguales, se puede usar un único atributo para denotar a ambos, Identificación. Con ello no aparecerán nulos. Sin embargo, hay que ser consciente de que NIF y CIF deberían tener conceptualmente dominios diferentes allá donde quepa hacer esta distinción explícita. No obstante, no parece que sea necesario en esta aplicación. Así: Fecha Festivos Fecha Hora Tienen Realizan Duración Llamadas Entre Comunidades Dirección Tipo facturación Tipo cliente Clientes Identificación Nº factura Mes Facturan Tarifas Corresponden Hora inicio Hora fin Tipo tarifa Tarifa Traducción al modelo lógico: Con esta reestructuración, la traducción es: Entidades fuertes: Clientes(Identificación,, Dirección, Tipo facturación, Tipo cliente) Festivos(Fecha). Es redundante con Tienen, véase más adelante. Comunidades() Entidades débiles: Llamadas(Fecha, Hora, Duración, Clientes.Identificación). Es redundante con Facturan si se incluye el atributo Duración en Facturan, véase más adelante. Tarifas(Hora inicio, Hora fin, Tipo tarifa, Tarifa, Comunidades.) Relaciones: Realizan(Clientes.Identificación, Llamadas.Fecha, Llamadas.Hora). Las claves de Clientes y Llamadas deben formar la clave de esta relación porque Llamadas es débil. Esta tabla es redundante con Llamadas. Facturan(Clientes.Identificación, Llamadas.Fecha, Llamadas.Hora, Tarifas.Hora inicio, Tarifas.Tipo tarifa, Comunidades., Nº factura, Mes). La clave de Llamadas es la que debe formar clave de Facturan, debido a su cardinalidad. Esta tabla contiene toda la información de Llamadas salvo Duración. Se puede omitir la tabla Llamadas añadiendo el atributo Duración a Facturan. Sin embargo, no se puede omitir Tarifas por su restricción de cardinalidad (puede haber tarifas en las que no se hayan realizado llamadas). Corresponden(Tarifas.Hora inicio, Tarifas.Tipo tarifa, Comunidades.). Las claves de Tarifas y Comunidades deben formar la clave de Corresponden porque Tarifas es débil. Esta tabla es redundante con Tarifas. En la simplificación nos quedamos con Corresponden en lugar de con Tarifas para respetar la restricción de cardinalidad apuntada en el punto anterior. 5

Tienen(Festivos.Fecha, Comunidades. ). Los dos atributos de Tienen deben formar clave para respetar la restricción de cardinalidad varios a varios. Como el conjunto de entidades Festivos no tiene más atributos que la fecha, se puede eliminar del esquema, ya que la información relevante aparece en Tienen. Entre(Comunidades. origen, Comunidades. destino, Llamadas.Fecha, Llamadas.Hora, Clientes.Identificación). Se ha renombrado de Comunidades como origen y destino. Como Llamadas tiene restricción de cardinalidad, su clave puede formar exclusivamente la clave de Entre. El esquema de la base de datos final queda: Entidades fuertes: Clientes(Identificación,, Dirección, Tipo facturación, Tipo cliente) Comunidades() Relaciones: Realizan(Clientes.Identificación, Llamadas.Fecha, Llamadas.Hora) Facturan(Clientes.Identificación, Llamadas.Fecha, Llamadas.Hora, Tarifas.Hora inicio, Tarifas.Tipo tarifa, Duración, Comunidades., Nº factura, Mes) Corresponden(Tarifas.Hora inicio, Tarifas.Tipo tarifa, Comunidades.) Tienen(Festivos.Fecha, Comunidades. ) Entre(Comunidades. origen, Comunidades. destino, Llamadas.Fecha, Llamadas.Hora, Clientes.Identificación) Restricciones de integridad referencial: Con respecto a Realizan: Π (Re alizan) Π ( Clientes) Identificación Identificación No hay más con respecto a la otra relación (Llamadas) porque se ha omitido. La tabla Realizan contiene toda la información de Llamadas y se impondrán las restricciones de integridad referencial de otras tablas con respecto a Llamadas con la tabla Realizan. Con respecto a Facturan: Π Facturan) Π (Re ) Π Identificación, Fecha, Hora( Identificación, Fecha, Hora alizan HorainicioTipotarifa, ( Facturan) Π HorainicioTipotarifa,, (, Corresponden) Con respecto a Corresponden: Π ( Corresponden) Π ( Comunidades) No hay más con respecto a la otra relación (Tarifas) porque se ha omitido. Las restricciones de integridad referencial con respecto a la tabla Tarifas se impondrán en términos de la tabla Corresponden. Con respecto a Tienen: Π ( Tienen) Π ( Comunidades) No hay más con respecto a la otra relación (Festivos) porque se ha omitido. Con respecto a Entre: Π ( Entre) Π ( Comunidades) origen Π ( Entre) Π ( Comunidades) destino Identificación, Fecha, Hora( Identificación, Fecha, Hora alizan Π Entre) Π (Re ) Restricciones de participación total: Hay que imponerlas en todas las partes de las relaciones con participación mínima 1. Realizan - - Llamadas: No se impone porque están integradas en una sola tabla (Realizan). Llamadas - - Facturan: Π Identificación Fecha Llamadas - - Entre: Π Identificación Fecha,, Hora( Facturan) = Π Identificación, Fecha, Hora(Re alizan),, Hora( Entre) = Π Identificación, Fecha, Hora(Re alizan) Tarifas - - Corresponden: No se impone porque están integradas en una sola tabla (Corresponden). Festivos - - Tienen: No se impone porque están integradas en una sola tabla (Tienen). 6

6) (3 puntos) Dada la relación R(A,B,C,D) y las dependencias funcionales AD C, C B y C D, se pide: a) Descomponer R para obtener un conjunto de esquemas en FNBC. b) La transformación ha preservado las dependencias funcionales? c) Descomponer R para obtener un conjunto de esquemas en 3FN. R: a) Descomponer R para obtener un conjunto de esquemas en FNBC. Hay que comprobar en primer lugar si no está ya en FNBC: {AD}+ = {A,B,C,D} Es superclave {C}+ = {C,B,D} No es superclave Se descompone R aplicando el algoritmo de descomposición a FNBC: D={R} while Q D, t.q. D no está en FNBC {encontrar X->Y de Q que viole FNBC reemplazar Q por Q-Y y X Y} C B Q-Y= S(A,C,D) X Y=T(B,C) Con T se ha terminado porque sólo tiene dos atributos Para comprobar si S está en FNBC: - Determinar el cierre de F (F+). - Comprobar que para cada X Y F+, X es superclave. {A}+ = {A} {C}+ = {C,D} No es superclave, {C D} {D}+ = {D} Se descompone S con respecto a {C D} S1 = {A,C} S2 = {C,D} Se ha terminado en los dos casos porque son relaciones de dos atributos. b) La transformación ha preservado las dependencias funcionales? Para comprobar si preserva las dependencias funcionales se aplica el algoritmo: for each D.F. X Y 1. Z:={X} while cambios en Z do for i:=1 to k do 2. Z := Z ((Z Ri) + Ri) Si Y Z X Y G + Si hay algún X Y t.q. Y no es subcjto. de Z, significa que X Y no G + y, por tanto, no se conservan las D.F. Para AD C: 1. Z={A,D} 2.S1(A,C) Z={A,D} (({A,D} {A,C}) + ) {A,C}) = {A,D} ({A} {A,C})={A,D} 2.S2(C,D) Z={A,D} (({A,D} {C,D}) + ) {C,D}) = {A,D} ({D}) {C,D})={A,D} 3.T(B,D) Z={A,D} (({A,D} {B,D}) + ) {B,D}) = 7

{A,D} ({D}) {B,D})={A,D} {C} no es subconjuto de Z. AD C no se preserva, paramos. c) Descomponer R para obtener un conjunto de esquemas en 3FN. En primer lugar se comprueba si se encuentra ya en 3FN: Para toda X Y, o bien X es superclave o Y contiene algún atributo que pertenece a una clave candidata. No hay claves candidatas de un atributo. {AB}+ = {A,B} {AC}+ = {A,B,C,D} Clave candidata {AD}+ = {A,B,C,D} Clave candidata {BC}+ = {B,C,D} {BD}+ = {B,D} {CD}+ = {C,B,D} Para AD C, AD es superclave Para C B, C no es superclave y B no pertenece a ninguna clave candidata. Por lo tanto, R NO ESTÁ EN 3FN. Se aplica el algoritmo de descomposición en 3FN: D= {R} 1. Encontrar un recubrimiento mínimo T de F 2. for each X Y T, crear en D un esquema Ri con {X {A1}... {Ak}} si Ri Rj D, dadas las D.F. X {A1},..., X {Ak} 3. Si ninguno de los esquemas contiene una clave de R, se crea uno nuevo. 1. F es minimal porque C B y C D sólo tienen un atributo en el antecedente y consecuente, y porque de AD C no se puede eliminar A o D sin eliminar su cierre, dado que ni A ni D son superclaves y AD sí. 2.AD C: {A,C,D} 2.C B: {C,B} 2.C D: {C,D} No se añade porque está incluido en la primera R1(A,C,D) R2(C,B,D) 8