Laboratorio de Bases de Datos

Anuncio
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
Descargar