Está en la página 1de 7

Tema 4

Normalización - Ejercicios
1) Normaliza hasta la tercera forma normal la siguiente tabla de COMPRAS:
Nº Fecha Producto Nombre- Cant Precio Proveedor Nombre_Prov Tfno_Prov
Compra Prod
1000 18/1/05 1 Monitor 10 100 1 Philips 961010101
1001 18/1/05 2 Teclado 50 20 5 Acer 969999999
1002 20/1/05 3 Windows 20 80 2 Microsoft 968888888
1003 21/1/05 11 ContaPlus 5 55 6 SP 911111111
1 Monitor 5 100 1 Philips 961010101
1004 21/1/05
2 Teclado 10 20 5 Acer 969999999

Normalización

1ª FN: Eliminación de valores múltiples en todos los atributos. La tabla COMPRAS


quedaría:

Nº Fecha Producto Nombre- Cant Precio Proveedor Nombre_Prov Tfno_Prov


Compra Prod
1000 18/1/05 1 Monitor 10 100 1 Philips 961010101
1001 18/1/05 2 Teclado 50 20 5 Acer 969999999
1002 20/1/05 3 Windows 20 80 2 Microsoft 968888888
1003 21/1/05 11 ContaPlus 5 55 6 SP 911111111
1004 21/1/05 1 Monitor 5 100 1 Philips 961010101
1004 21/1/05 2 Teclado 10 20 5 Acer 969999999

2ª FN: 1ª FN y Eliminación de dependencias de parte de la clave.

Nº Producto Cant
Compra
1000 1 10
1001 2 50
1002 3 20
1003 11 5
1004 1 5
1004 2 10

Producto Nombre- Precio Proveedor Nombre_Prov Tfno_Prov


Prod
1 Monitor 100 1 Philips 961010101
2 Teclado 20 5 Acer 969999999
3 Windows 80 2 Microsoft 968888888
11 ContaPlus 55 6 SP 911111111
1 Monitor 100 1 Philips 961010101
2 Teclado 20 5 Acer 969999999

Nº Fecha
Compra
1000 18/1/05
1001 18/1/05
1002 20/1/05
1003 21/1/05
1004 21/1/05
1004 21/1/05

Clave: NºCompra + Producto


1
Dependencias de parte de la clave:
NºCompraFecha
ProductoNombre_Prod
ProductoPrecio
ProductoProveedor
ProductoProveedor  Nombre_Prov
ProductoProveedor  Tfno_Prov
Para eliminar las dependencias se construyen otras 2 tablas:
COMPRAS (NºCompra, Fecha)
PRODUCTOS (Producto, Nombre_Prod, Precio, Proveedor, Nombre_Prov,
Tfno_Prov)
Y la tabla COMPRAS-LINEAS quedaría:
COMPRAS (NºCompra↑, Producto↑, Cant)

Las 3 tablas están en 2ªFN

3ªFN: 2FN y Eliminación de dependencias entre atributos no clave

Producto Nombre- Precio Proveedor


Prod
1 Monitor 100 1
2 Teclado 20 5
3 Windows 80 2
11 ContaPlus 55 6
1 Monitor 100 1
2 Teclado 20 5

Proveedor Nombre_Prov Tfno_Prov


1 Philips 961010101
5 Acer 969999999
2 Microsoft 968888888
6 SP 911111111
1 Philips 961010101
5 Acer 969999999

Las tablas
COMPRAS (NºCompra, Fecha)
PRODUCTOS (Producto, Nombre_Prod, Precio, Proveedor, Nombre_Prov,
Tfno_Prov)
COMPRAS-linea (NºCompra↑, Producto↑, Cant)
Están en 2FN.

Dependencias entre atributos no clave:


En COMPRAS y COMPRAS-linea no hay
En PRODUCTOS:
ProveedorNombre_Prov
ProveedorTfno_Prov
Para eliminar estas dependencias se construye la tabla PROVEEDORES:
PROVEEDORES (Proveedor, Nom_Prov, Tfno_Prov)
Y la tabla PRODUCTOS quedaría:
PRODUCTOS (Producto, Nombre_Prod, Precio, Proveedor↑)

2
2) Normaliza hasta la tercera forma normal la siguiente tabla de MATRÍCULAS:
Alumno Curso Asignatura Profesor Departamento Ciclo Tutor
Sistemas Juan Ortiz
Ana Díaz ESI1 Informática ESI Juan Ortiz
Ofimática Marta Díez
Ofimática Marta Díez Informática
Luis Larrea ESI1 ESI Juan Ortiz
FOL Rosa López FOL
Mario Pérez
ESI2 BD José Martínez Informática ESI Sara Pérez
Ramón Sáez
Javier Lázaro ASI1 Programación Marta Díez Informática ASI Marta Díez

Notas: Cada alumno puede matricularse en varias asignaturas. Una asignatura


puede ser cursada por varios alumnos. Cada asignatura pertenece a un curso.
Cada curso es de un ciclo. Las asignaturas pertenecen al departamento del
profesor que las imparte. Cada curso tiene un tutor.

Normalización

1ªFN -> Se cambiaría por


Alumno Curso Asignatura Profesor Departamento Ciclo Tutor
Ana Díaz ESI1 Sistemas Juan Ortiz Informática ESI Juan Ortiz
Ana Díaz ESI1 Ofimática Marta Díez Informática ESI Juan Ortiz
Luis Larrea ESI1 Ofimática Marta Díez Informática ESI Juan Ortiz
Luis Larrea ESI1 FOL Rosa López FOL ESI Juan Ortiz
Mario Pérez ESI2 BD José Martínez Informática ESI Sara Pérez
Ramón Sáez ESI2 BD José Martínez Informática ESI Sara Pérez
Javier Lázaro ASI1 Programación Marta Díez Informática ASI Marta Díez

2ªFN -> Clave Alumno+Asignatura

Alumno Asignatura
Ana Díaz Sistemas
Ana Díaz Ofimática
Luis Larrea Ofimática
Luis Larrea FOL
Mario Pérez BD
Ramón Sáez BD
Javier Lázaro Programación

Asignatura Curso Profesor Departamento Ciclo Tutor


Sistemas ESI1 Juan Ortiz Informática ESI Juan Ortiz
Ofimática ESI1 Marta Díez Informática ESI Juan Ortiz
Ofimática ESI1 Marta Díez Informática ESI Juan Ortiz
FOL ESI1 Rosa López FOL ESI Juan Ortiz
BD ESI2 José Martínez Informática ESI Sara Pérez
BD ESI2 José Martínez Informática ESI Sara Pérez
Programación ASI1 Marta Díez Informática ASI Marta Díez

MATRICULAS (Alumno, Curso, Asignatura, Prof, Dpto, Ciclo, Tutor)


Dependencias de parte de la clave:
Asignatura -> Curso
Curso -> Ciclo
Curso -> Tutor
3
Asignatura -> Profesor
Profesor -> Departamento
MATRICULAS (Alumno, Asignatura↑)
ASIGNATURAS (Asignatura, Curso, Ciclo, Tutor, Prof, Dpto)

3ªFN
MATRICULAS Idem
Asignatura Curso Profesor
Sistemas ESI1 Juan Ortiz
Ofimática ESI1 Marta Díez
Ofimática ESI1 Marta Díez
FOL ESI1 Rosa López
BD ESI2 José Martínez
BD ESI2 José Martínez
Programación ASI1 Marta Díez

Curso Ciclo Tutor


ESI1 ESI Juan Ortiz
ESI1 ESI Juan Ortiz
ESI1 ESI Juan Ortiz
ESI1 ESI Juan Ortiz
ESI2 ESI Sara Pérez
ESI2 ESI Sara Pérez
ASI1 ASI Marta Díez

Profesor Departamento
Juan Ortiz Informática
Marta Díez Informática
Marta Díez Informática
Rosa López FOL
José Martínez Informática
José Martínez Informática
Marta Díez Informática

En ASIGNATURAS se tienen las siguientes dependencias


Curso -> Ciclo
Curso -> Tutor
Profesor -> Departamento
Por tanto, se crearán otras dos tablas:
CURSOS (Curso, Ciclo, Tutor)
PROFESORES (Profesor, Dpto)
Y la tabla ASIGNATURAS quedará
ASIGNATURAS (Asignatura, Curso, Profesor)

3) Con los datos del ejercicio anterior, compara el espacio ocupado por la tabla
inicial con el que ocupan las tablas obtenidas al final de la normalización,
suponiendo que:
En el centro educativo hay 100 alumnos, 6 cursos, 6 asignaturas, 6 profesores,
3 departamentos, 2 ciclos y 6 tutores. Cada atributo tiene la siguiente longitud:
4
Alumno 50, Curso 5, Asignatura 15, Profesor 25, Departamento 15, Ciclo 5 y
Tutor 25. Suponiendo que cada alumno se matricula en 4 asignaturas, ¿se
guarda más o menos información después de la normalización? ¿qué se añade
o qué se elimina?

Solución
Valoración de la normalización. Veamos cómo la normalización ha evitado la
redundancia de la información:
Supongamos que se va a representar la información relativa a:
100 alumnos,6 Cursos, 6 Asignaturas, 6 profesores, 3 departamentos, 2 ciclos, 6
tutores.
Cada campo ocupa la siguiente cantidad de bytes: Alumno 50, Curso 5, Asignatura
15, Profesor 25, Departamento 15, Ciclo 5, Tutor 25.
Si cada alumno se matricula en 4 asignaturas, la tabla única que teníamos al
principio ocuparía:
100 alumnos x 4 asignaturas x 140 bytes cada registro = 56000 bytes.
Sin embargo, con tablas separadas sería:
MATRICULAS= 100 alumnos x 4 asignaturas x 65 bytes cada registro= 26000
CURSOS = 6 cursos x (5+5+25) bytes cada registro = 210
PROFESORES = 6 profesores x (25+15) bytes cada registro=240
ASIGNATURAS = 6 asignaturas x (15+5+25) bytes por registro=270
Total 26720 -- O sea, un 48% de la cantidad de bytes necesitada para una tabla.

4) Información sobre vehículos y conductores


Cada coche, identificado por su matrícula tiene un propietario, identificado por su
DNI. Una misma persona puede tener varios coches. El permiso de circulación
pertenece al coche, aun cuando cambie de propietario. Cada póliza de seguro
tiene un identificador único y se establece para un coche y una persona en
concreto. La fecha de compra se refiere al vehículo.
Normaliza la siguiente tabla relacional hasta la tercera forma normal:
ADQUISICIONES_COCHES (MATRICULA, DNI_PROP, CARNET_PROP,
FECHA_EXP, PERMISO_CIRC, ID_POLIZA_SEGURO,
ENTIDAD_ASEGURADORA, FECHA_COMPRA)

MATRICULA DNI_PROP CARNET_PROP FECHA_EXP PERMISO_CIRC POLIZA_SEGURO ENTIDAD_ASEG FECHA_COMPRA


1234AAA 16657890 23312 2-2-02 LO1232 1123-9870 CASER 23-1-03
8767BAB 16657890 23312 2-2-02 LO9809 1123-9967 CASER 1-3-04
4455BHS 16600432 45435 4-6-04 LO2134 4554-2343 PATRI 4-5-05
3212BNS 16600432 45435 4-6-04 LO3214 1123-6754 CASER 1-5-04
6576AUS 16234787 85443 6-10-05 LO7867 3243-5674 CPREV 4-11-05

Normalización

1ªFN
Sí está en 1ªFN porque ningún atributo tiene valores múltiples.

2ªFN: Eliminación de dependencias de parte de la clave


La clave está compuesta por MATRICULA+DNI_PROP

DNI_PROPCARNET_PROPFECHA_EXP, luego DNI_PROPFECHA_EXP

Por otro lado:

5
MATRICULAPERMISO_CIRC, FECHA_COMPRA-> ID_POLIZA_SEGURO,
ENTIDAD_ASEGURADORA

Se crean otras 2 tablas:

CONDUCTORES (DNI_PROP, CARNET_PROP, FECHA_EXP)


COCHES (MATRICULA, PERMISO_CIRC, FECHA_COMPRA↑,
ID_POLIZA_SEGURO, ENTIDAD_ASEGURADORA)

Y la tabla ADQUISICIONES_COCHES queda:

ADQUISICIONES_COCHES (MATRICULA↑, DNI_PROP↑)

3ªFN: Eliminación de dependencias entre atributos no clave

ID_POLIZA_SEGUROENTIDAD_ASEGURADORA
Se crea otra tabla:
SEGUROS (ID_POLIZA_SEGURO, ENTIDAD_ASEGURADORA)

Y queda ADQUISICIONES_COCHES de la siguiente forma:

ADQUISICIONES_COCHES (MATRICULA↑, DNI_PROP↑)


CONDUCTORES (DNI_PROP, CARNET_PROP, FECHA_EXP)
COCHES(MATRICULA,PERMISO_CIRC,FECHA_COMPRA,ID_POLIZA_SEGURO)

Podría considerarse también necesario eliminar la dependencia entre


CARNET_PROP  FECHA_EXP. En ese caso quedaría: CONDUCTORES
(DNI_PROP, CARNET_PROP↑) y EXP_CARNETS (CARNET_PROP,
FECHA_EXP) pero es una relación 1:1 que no tiene mucho sentido separar.

-----------------¿??????????????-----------------------------------------

Este es un ejemplo de fallo de diseño Inicial , ya que no hay una clave compuesta
sino una clave única de numero matricula.

Si nos fijamos en ADQUISICIONES_COCHES (MATRICULA↑, DNI_PROP↑)


Vemos que la clave DNI no aporta unicidad y por tanto no es parte de la clave.
Esta tabla debe desaparecer y DNI_PROP↑ debe fotr mar parte de COCHES como
clave ajena.

Si partimos del E/R

6
CONDUCTORES (DNI_PROP, CARNET_PROP, FECHA_EXP)
COCHES (MATRICULA, PERMISO_CIRC,FECHA_COMPRA,ID_POLIZA_SEGURO)

SEGUROS (ID_POLIZA_SEGURO, ENTIDAD_ASEGURADORA)

O mejor ya que poliza – coche es de uno a uno

CONDUCTORES (DNI_PROP, CARNET_PROP, FECHA_EXP)


COCHES(MATRICULA, PERMISO_CIRC,FECHA_COMPRA,ID_POLIZA_SEGURO,
ENTIDAD_ASEGURADORA)

5) Información sobre cursos y asignaturas


En un centro educativo cada profesor imparte asignaturas sueltas de cursos
sueltos. Cada asignatura de cada curso es asignada a un solo profesor, salvo la
Tecnología en los grupos numerosos en los que dos profesores atienden al
mismo curso. Una asignatura es del departamento al que pertenezca el profesor
que la imparte. Cada curso tiene asignada un aula. Una misma asignatura puede
tener distinto número de horas en distintos cursos. La hora de tutoría es la hora
que el profesor tutor del curso (puede ser cualquier profesor) tiene prevista para
recibir visitas.
Normaliza la siguiente tabla relacional hasta la tercera forma normal:

También podría gustarte