Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Bases de Datos I Laboratorio # 4: Diseño de Bases de Datos (Dependencias Funcionales, Normalización) Inicio: Viernes 27 de Marzo - Entrega: Viernes 3 de Abril NORMAS PARA LA ENTREGA DE LOS LABORATORIOS 1. Coloque su nombre y dirección de correo electrónico preferida en la carátula de su informe, así como el nombre del profesor a quien le entrega el informe. Los informes deben estar firmados por todos los integrantes del grupo, debajo del siguiente código de ética: 2. << Al firmar el presente informe, aseguramos que nuestro grupo NO ha copiado de nadie, ni dado copia a nadie, la solución que a continuación presentamos>> 3. En el medio de almacenamiento utilizado para entregar su informe, coloque el nombre de los integrantes del grupo, nombre del profesor, número del grupo de Bases de Datos y número de laboratorio presentado. Sin esta información en la carátula no se recibirá su medio de almacenamiento. 4. Organice sus trabajo en carpetas, en lo posible una por cada punto del laboratorio. 5. Imprima una copia del código fuente de todos sus programas y entréguelo en el informe. Recuerde que es responsabilidad total y absoluta de los integrantes del grupo el verificar la existencia de la información correspondiente al informe en el medio de almacenamiento. 6. Evidencia de la ejecución. Esto se puede realizar copiando y pegando las ventanas donde se suministra información o donde se entrega información por el programa, dentro del informe. 7. Durante el curso no se recibirán informes de laboratorio enviados por correo electrónico, deben entregar una copia dura (disquete, CD o papel) del mismo. 8. A Uds. se le permite un retraso de hasta 24 horas a la fecha fijada, el cual se le penalizará con 1.0 (un punto) de la nota. Los informes entregados después de esta fecha, no serán aceptados. Por favor, entregar los informes de los laboratorios realizados durante la clase, o dejarlos en mi oficina por debajo de la puerta [Ingeniería de Sistemas y Computación oficina 2107 - edificio 331 (Torre de Ingeniería)] entre las 8:00 A.M. y las 5:00 PM. del día de entrega respectivo. Objetivos: 1.Desarrollar en el estudiante la capacidad de abstracción de la realidad, definiendo un modelo de datos que refleje fielmente esa realidad. 2.Identificar las principales características que describen estáticamente la realidad del problema. 3.Identificar las principales restricciones que se presentan entre los datos definidos para una base de datos. 4.Describir las restricciones del problema, utilizando dependencias funcionales. 5.Aplicar los criterios de normalización en el modelaje de los datos. 6.Adquirir habilidad en el uso de los algoritmos de descomposición de una forma normal dada. Metodología: Se debe elaborar un informe del trabajo realizado, para ello deberá describir cada una de las actividades que se realizó, responder a las preguntas formuladas. El laboratorio debe ser desarrollado en grupos de máximo 3 personas. 1. Ejercicios Básicos de Normalización y Dependencias Funcionales (10 puntos) 1. 1 Dado el esquema de relación y el conjunto de dependencias funcionales: R = {A, B, C, D, E, F} DF = {EF → A, B → E, E → B, BC → D, CF → D, CD → E} La clave única de la relación anterior es CF. Se pide determinar en qué forma normal está dicho esquema. Justifique su respuesta. 1.2 Dado el conjunto de dependencias funcionales: L = {AB → C, B → D, CD → E, CE → GH, G → A} Es posible inferir las dependencias AB → E y BG → C a partir de L, usando Axiomas de Armstrong? 1.3 Dado el conjunto de dependencias funcionales: L = {A → D, AB → E, BI → E, CD → I, E → C} Se puede afirmar que la dependencia funcional AE → I pertenece a L+. Justificar la respuesta. 1.4 Proponga un esquema en FNBC para el esquema de relación R(A, DF), siendo A = {P, E, N, A, H, L, G, T, D} y DF = {HE → L, HP → L, HL → A, D → T, HE → A, EA → N, P → T, P → D, T → P, D → P} 1.5 Dada la siguiente relación R: A a1 a1 a2 a2 a3 B b1 b2 b1 b1 b2 C c1 c2 c3 c4 c5 D d1 d2 d3 d3 d1 E e1 e1 e1 e1 e1 Identifique todas las dependencias funcionales que satisface la relación R 2. Ejercicio Práctico sobre Normalización (10 puntos) Dadas las instancias de relaciones Empleados, Proyectos y sus dependencias funcionales: EMPLEADOS id 1 2 3 4 5 Nombre-empleado Pepito Perez Juanita Torres Francisco McGregor Anita Paz Marcos Tez teléfono 4484577 4437890 3312323 3456778 5577723 dirección Cra 4B 47-12 Calle 200 11-30 Cra 75 34 - 89 Calle 7 12-20 Cra 100 -1230 num-depto 1 1 1 2 2 nombre_depto Ventas Ventas Ventas Producción Producción DF= { id→ nombre-empleado, teléfono, dirección, num-depto Num-depto → nombre-depto.} PROYECTOS Id_proyecto Id_empleado 1 1 2 1 4 5 Nompre-proyecto Nombre-empleado Montaje Módulos Energía Pepito Pérez Montaje Módulos Energía Anita Paz Diseño Puente Loma Marco Tez Larga Horas_dedica das 10 100 20 lugar Cali Cali Medellin DF= { id-proyecto, id_empleado→ horas_dedicadas Id_empleado → nombre_empleado Id_proyecto → nombre_proyecto, lugar } a). En qué forma normal se encuentra cada una de las relaciones anteriores, justifique su respuesta. b). Por qué se presentan anomalías de inserción, actualización y borrado en la relación Empleados, explique cada anomalía por medio de un ejemplo. c) . Normalice las 2 relaciones hasta obtener un esquema relacional en 3FN. Identifique las nuevas relaciones que se generan por el proceso de refinamiento y las llaves. Muestre una instancia de la relación. 3. Ejercicio Práctico sobre Normalización (15 puntos) A continuación hay un ejercicio con una lista de requerimientos a completar: inicialmente, Usted necesita leer cada paso y convertir una tabla desnormalizada, en una tabla normalizada. I. Normalización de la Tabla Orden El propósito de esta parte del ejercicio es demostrar su habilidad para tomar una tabla desnormalizada y convertirla en tablas que se encuentren en 3FN. Para completar este ejercicio Usted debe: • Discutir porque la tabla Orden no esta normalizada • Convertir la tabla del paso 1, a 1FN • Convertir la tabla creada en el paso 2, a la 2FN • Convertir la tabla del paso 3, a la 3FN • Identificar todos los nombres, atributos y llaves asociadas a cada una de las tablas. 2. Instrucciones Para completar lo anterior, Usted debe de hacer lo siguiente: a)Leer y completar cada uno de los pasos definidos previamente (I.) b)Crear una solución a cada paso listado en el paso anterior Paso 1 Considere la siguiente tabla Orden con tres registros. Suministre tres razones de porqué debemos normalizar la tabla. Orden idOrden 1001 fecha 7/4/20 06 idCliente C004 nombreCli Jorge Perez depto VAL 1002 8/4/20 06 9/4/20 06 C999 Benigno Gil Tomas Paz ANT 1003 C217 CAQ itemNro 6531 7890 7956 3456 4234 7956 descripItem Cinta Mesa Bolígrafo Estufa Papel Bolígrafo cantidad 5 1 10 1 precioUnit 8500 75000 1500 85000 15 20 1500 1500 Paso 2 La primera forma normal prohíbe los grupos repetitivos. Para convertir una tabla a la 1FN debemos: a)Eliminar los grupos repetitivos de la tabla base b)Crear una nueva tabla con la llave primaria de la tabla base y el grupo repetitivo. Asumiendo una situación donde una orden pudiera tener clientes múltiples (varias personas reciben los ítems), los atributos {idOreden, idCliente} hacen parte de la llave primaria de la relación. Las dependencia funcionales son: idOreden → fecha, itemNro, cantidad idCliente → nombreCli, depto itemNro → descripItem, precioUnit Convertir la tabla del paso 1 a la 1FN usando la tabla siguiente: Nombre de Tabla Nombre Columna Llave Datos Paso 3 La Segunda Forma Normal remueve las columnas no llave que dependen de otro atributo que hace parte de la llave primaria (dependencias parciales). Los pasos para lograr esto son: 1. Determinar los atributos no llave que no dependen de la llave primaria completa 2. Remover aquellas columnas de la tabla base 3. Crear una segunda tabla con aquellos atributos y los atributos que forman la llave de los cuales dependen Cualquier tabla con una llave primaria de un atributo está automáticamente en 2FN. Convertir las tablas creadas en el paso 2 a la 2FN. Suministrar un nombre a la tabla, los nombres de los atributos e indicar las llaves apropiadas. Usted podrá usar las tablas vacías que aparecen a continuación: Nombre de Tabla Nombre Columna Llave Nombre de Tabla Nombre Columna Llave Nombre de Tabla Nombre Columna Llave Paso 4 La Tercera Forma Normal elimina las dependencias transitivas , es decir, aquellos atributos que dependen de otros atributos que no son llave. Los pasos para lograr esto son: 1. Determinar cuales atributos dependen de otros atributos NO-Llave. 2. Remover aquellas columnas de la tabla base. 3. Crear una segunda tabla con aquellos atributos y el atributo no llave del cual dependen. Convertir la tabla del paso 3 a la 3FN. Suministrar un nombre a la tabla, los nombres de los atributos e indicar las llaves apropiadas. Usted podrá usar las tablas vacías que aparecen a continuación: Nombre de Tabla Nombre Columna Llave Nombre de Tabla Nombre Columna Llave Nombre de Tabla Nombre Columna Llave Nombre de Tabla Nombre Columna Llave 4. Ejercicio Práctico sobre Normalización (15 puntos) Suponga que el siguiente esquema representa un modelo de catalogación que un grupo de profesionales en informática ha planteado para una biblioteca de la ciudad. ISBN 1234557 Título Diseño de bases de Datos cod_cat 100 ubicación editorial autores S1-E1-301 McGraw Hill Silberschatz Avi, Korth Henry, Sudarshan Samuel codarea 5 nom-area Informática palabras-clave Bases de datos Diseño relacional Modelos de datos 2457894 Física clásica 200 S2-E2-033 Spring Serway Jhon, 3 Física Consultas SQL Experimentos físicos Medidas Físicas 3345679 Introducción a la economía 300 S3-E7-055 Omega Ocampo José, 2 Holmes Rodolfo, Restrepo Juan Economía Mecánica clásica Modelos económicos Oferta Demanda Mercado Restricciones del modelo • • • • • Un libro se identifica por un ISBN único y es impreso por una editorial. Alternativamente, los libros se pueden identificar mediante un código interno de catalogación (cod_cat) que determina la ubicación del libro en la biblioteca. Un libro puede ser escrito por varios autores y un autor puede escribir varios libros Un libro pertenece a un área de conocimiento y el área puede contener muchos libros. El libro contiene diferentes palabras claves que describen su contenido, una palabra pude aparecer en diferentes libros. La ubicación solo puede alojar un libro. a) Escriba las dependencias funcionales que se presentan en la relación anterior. b) Transforme el esquema anterior a un esquema en 1FN, escriba la nueva relación con las llaves y los datos de ejemplo c) Plantee por medio de un ejemplo por qué se presentan anomalías de inserción, actualización y borrado en el esquema que se encuentra en 1FN d) Agregue un nuevo atributo llamado “codigo-autor” a la relación y además adicione la dependencia códigoautor, ISBN → Título. Transforme el esquema obtenido en el numeral “b” en un esquema en 2FN. Escriba las nuevas relaciones, especifique las llaves y los datos de ejemplo. e) Transforme el esquema obtenido en el numeral “d” en un esquema que se encuentre en 3FN, escriba las relaciones y los datos de ejemplo. Está el esquema obtenido en FNBC? Si no lo estuviera descompongalo de manera que esté en FNBC