You are on page 1of 17

Taller Normalizacin Bases de datos

Miguel Angel Zapata Fraile David Quiones

Institucin Universitaria Politcnico Grancolombiano.


Facultad Ingeniera de Sistemas.
Bases de datos.
Octubre 2016.
PUNTO 1 (Ordenes)

Ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, num_art, nom_art, cant, precio)

PRIMERA FORMAL NOMAL (1FN)

Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para
NUM_ART, NOM_ART, CANT y PRECIO. La 1FN prohbe los grupos repetidos, por lo tanto tenemos
que convertir a la primera forma normal. Los pasos a seguir son:

Tenemos que eliminar los grupos repetidos.

Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.

Los registros quedan ahora conformados en dos tablas que llamaremos ORDENES y
ARTICULOS_ORDENES:

Ordenes (id_orden, fecha, id_cliente, nom_cliente, estado)

Articulos_ordenes (id_orden, num_art, nom_art, cant, precio)


SEGUNDA FORMAL NORMAL (2FN)

Ahora procederemos a aplicar la segunda formal normal, es decir, tenemos que eliminar cualquier
columna no llave que no dependa de la llave primaria de la tabla. Los pasos a seguir son:

Determinar cules columnas que no son llave no dependen de la llave primaria de la tabla.

Eliminar esas columnas de la tabla base.

Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la cual dependen.

La tabla ORDENES est en 2FN. Cualquier valor nico de ID_ORDEN determina un slo valor para
cada columna. Por lo tanto, todas las columnas son dependientes de la llave primaria ID_ORDEN.

Por su parte, la tabla ARTICULOS_ORDENES no se encuentra en 2FN ya que las columnas PRECIO y
NOM_ART son dependientes de NUM_ART, pero no son dependientes de ID_ORDEN. Lo que
haremos a continuacin es eliminar estas columnas de la tabla ARTICULOS_ORDENES y crear una
tabla ARTICULOS con dichas columnas y la llave primaria de la que dependen.

Las tablas quedan ahora de la siguiente manera.

Articulos_ordenes (id_orden, num_art, cant)

Articulos ( num_art, nom_art, precio)

TERCERA FORMAL NORMAL (3FN)

La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave que sea
dependiente de otra columna no llave. Los pasos a seguir son:

Determinar las columnas que son dependientes de otra columna no llave.


Se elimina esas columnas de la tabla base.

Se crea una segunda tabla con esas columnas y con la columna no llave de la cual son
dependientes.

Al observar las tablas que hemos creado, nos damos cuenta que tanto la tabla ARTICULOS, como la
tabla ARTICULOS_ORDENES se encuentran en 3FN. Sin embargo la tabla ORDENES no lo est, ya
que NOM_CLIENTE y ESTADO son dependientes de ID_CLIENTE, y esta columna no es la llave
primaria.

Para normalizar esta tabla, moveremos las columnas no llave y la columna llave de la cual
dependen dentro de una nueva tabla CLIENTES. Las nuevas tablas CLIENTES y ORDENES se
muestran a continuacin.

Ordenes (id_orden, fecha, id_cliente)

Clientes (id_cliente, nom_cliente, estado)

Por lo tanto la base de datos queda de la siguiente manera:

Ordenes (id_orden, fecha, id_cliente)

Clientes (id_cliente, nom_cliente, estado)

Articulos ( num_art, nom_art, precio)

Articulos_ordenes (id_orden, num_art, cant)

Adicionalmente se puede crear otra tabla que contenga la informacin de las ciudades.

Ciudad(id_ciudad,nom_ciudad)
PUNTO 2 (FACTURA DE COMPRA VENTA)

PRIMERA FORMAL NORMAL (1FN)

Salen dos tablas (FACTURA y PRODUCTO_FACTURA) para eliminar los elementos repetidos de la
tabla FACTURA.

SEGUNDA FORMAL NORMAL (2FN)

Para este caso solo se alterara la tabla PRODUCTO_FACTURA ya que la tabla FACTURA est en 2FN.

De esta tabla salen dos tablas (PRODUCTO_FACTURA y PRODUCTO) de la tabla


PRODUCTO_FACTURA con lo que eliminaremos los campos que son dependientes solo de uno de
los campos llave mas no de la llave compuesta. (NUM_FAC y COD_PROD)
TERCERA FORMAL NORMAL (3FN)

Para este caso solo se alterara la tabla FACTURA ya que la tabla PRODUCTO_FACTURA y
PRODUCTO ya estn en 2FN.

Salen dos tablas (FACTURA y CLIENTE) de la tabla FACTURA con lo que eliminaremos los campos
que son dependientes de RIF_CLIENTE y no de NUM_FAC.
PUNTO 3(Video club)

PRIMERA FORMAL NORMAL (1FN)

Sale una tabla ms (CLIENTE) para eliminar los elementos repetidos de la tabla ALQUILER,
quedando las tablas (ALQUILER,DVD,CLIENTE) de la siguiente forma.

SEGUNDA FORMAL NORMAL (2FN)

Para este caso se alterara la tabla DVD y ALQUILER para dejar las tablas en 2FN.

Salen dos tablas (CASSETTE y PELICULA) de la tabla DVD y ALQUILER con lo que eliminaremos los
campos que son dependientes de una sola llave, para que ambas tablas tengan llave compuesta.
(COD_PELICULA,COD_CASSETTE) para el caso de la tabla PELICULA, y
(COD_CASSETTE,COD_PELICULA) para el caso de la tabla CASSETTE.

Quedando las tablas de la siguiente forma:


TERCERA FORMAL NORMAL (3FN)

Para este caso solo se alterara la tabla DVD y PELICULA ya que las tablas CASSETE, CLIENTE Y
ALQUILER estn en 2FN.

Salen dos tablas (ACTOR y TIPO_PELICULA) de la tabla DVD y PELICULA con lo que eliminaremos
los campos que son dependientes, se eliminara la tabla DVD y se dejara la tabla actor que
representa mejor la entidad.

Quedando las tablas de la siguiente forma:


PUNTO 4. (EMPRESA DE ENVIO DE MERCANCIA)

Si tenemos en cuenta que con una misma gua se pueden enviar varios paquetes para un mismo
destino la solucin es la siguiente:

PRIMERA FORMAL NORMAL (1FN).

Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para:
- CODIGO
- TIPO
- NOMBRE
-DESCRIPCION

Los registros quedan ahora conformados en dos tablas que llamaremos ENVIO y PAQUETES ENVIO.

TABLA ENVIO:

* GUIA_NO = Numero de Gua (PK)


* GUIA_FECHA= Fecha de la Gua
* GUIA_HORA= Hora de la Gua
* ORGN_RIF = Identificacin de Empresa Origen
* ORGN_NOM = Nombre de Empresa Origen
* ORGN_ACT = Actividad Comercial de Empresa Origen
* ORGN_CIUDAD= Ciudad de Empresa Origen
* ORGN_DIR = Direccin de Empresa Origen
* ORGN_TEL = Telfono de Empresa Origen
* ORGN_CEL = Celular de Empresa Origen
* DEST_ID = Identificacin del destinatario
* DEST_NOM = Nombre del destinatario
* DEST_COD_CIUDAD = Cdigo de la ciudad del destinatario
* DEST_CIUDAD= Ciudad del destinatario
* DEST_DIR = Direccin del destinatario
* DEST_TEL = Telfono del destinatario
* DEST_KM = Distancia kilometraje de Ciudad origen a ciudad del destinatario
* VALR_ FLETE = Valor del flete

TABLA PAQUETE:

* GUIA_NO = Numero de Gua


* CODIGO = Cdigo del paquete
* TIPO = Tipo de paquete
* NOMBRE = Nombre del paquete
* DESCRIPCION = Descripcin del paquete

SEGUNDA FORMAL NORMAL (2FN)

Ahora procederemos a aplicar la segunda formal normal, es decir, tenemos que eliminar cualquier
columna no llave que no dependa de la llave primaria de la tabla. Por lo tanto para este caso los
valores que no dependen directamente de la llave primaria de tabla gua son los datos de del
destinatario y los datos del destino, para tabla paquete no depende ningn dato de GUIA_NO por
lo tanto las nuevas tablas quedaran asi.

TABLA GUIA:

* GUIA_NO = Numero de Gua (PK)


* GUIA_FECHA= Fecha de la Gua
* GUIA_HORA= Hora de la Gua
*ORGN_RIF = Identificacin de Empresa Origen (FK)
* DEST_ID = Identificacin del destinatario (FK)
* CODIGO = Cdigo del paquete (FK)
* DEST_KM = Distancia kilometraje de Ciudad origen a ciudad del destinatario
* VALR_ FLETE = Valor del flete
TABLA CLIENTE:

*ORGN_RIF = Identificacin de Empresa Origen (PK)


* ORGN_NOM = Nombre de Empresa Origen
* ORGN_ACT = Actividad Comercial de Empresa Origen
* ORGN_CIUDAD= Ciudad de Empresa Origen
* ORGN_DIR = Direccin de Empresa Origen
* ORGN_TEL = Telfono de Empresa Origen
* ORGN_CEL = Celular de Empresa Origen

TABLA DESTINATARIO:

* DEST_ID = Identificacin del destinatario (PK)


* DEST_NOM = Nombre del destinatario
* DEST_COD_CIUDAD = Cdigo de la ciudad del destinatario
* DEST_CIUDAD= Ciudad del destinatario
* DEST_DIR = Direccin del destinatario
* DEST_TEL = Telfono del destinatario

TABLA PAQUETE:

* CODIGO = Cdigo del paquete (PK)


* TIPO = Tipo de paquete
* NOMBRE = Nombre del paquete
* DESCRIPCION = Descripcin del paquete

TERCERA FORMAL NORMAL (3FN)

La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave que sea
dependiente de otra columna no llave. Por lo tanto las tablas PAQUETE Y DESTINATARIO ya se
encuentran de esta forma ya se encuentra de esta forma. Sin embargo en la tabla GUIA no se
encuentra de esta forma ya que VALR_ FLETE depende de DEST_KM y a su vez DEST_KM su clculo
depende de la distancia de la ciudad origen y la ciudad destino por es decir las columnas ORGN_RIF
y DEST_ID que funcionan como llaves forneas de las tablas CLIENTE y DESTINATARIO.
Adicionalmente en la tabla CLIENTE la columna DEST_CIUDAD depende de DEST_COD_CIUDAD.

Las tablas normalizadas son las siguientes:


PUNTO 5(REPORTE MATRICULA)

Se tiene una relacin del REPORTE_MATRICULA (cdigo_alumno, nombre_alumno, especialidad,


cdigo_curso, nombre_curso, nombre_docente, oficina, seccin), se pide aplicar las reglas de
normalizacin llegando hasta las 3FN.
Punto 6(Prestamos_libro)
- Se presenta una base de datos de una biblioteca, aplicar las reglas de normalizacin
simplificando hasta la tercera forma normal.

Prestamos_libro (codLibro, Titulo, Autor, Editorial, NombreLector, Fechadev)

CodLibro Titulo Autor Editorial NombreLector FechaDev

1001 Variable Murray Spiegel McGraw Hill Prez Gmez, 15/04/2005


compleja Juan

1004 Visual Basic 5 E. Petroustsos Anaya Ros Tern, Ana 17/04/2005

1005 Estadstica Murray Spiegel McGraw Hill Roca, Ren 16/04/2005

1006 Oracle University Nancy Oracle Corp. Garca Roque, 20/04/2005


Greenberg y Luis
Priya Nathan

1007 Clipper 5.01 Ramalho McGraw Hill Prez Gmez, 18/04/2005


Juan

PRIMERA FORMAL NORMAL (1FN)

En vista de que la tabla no cumple con la condicin de la 1FN expandimos el campo del
nombre del lector debido a que de este campo podemos tener ms informacin y dejarla
aparte.
Prestamos_libro (codLibro, Titulo, Autor, Editorial, Ap1, Ap2, Nom, Fechadev)
CodLibr Titulo Autor Editorial Apellido Apellido Nombr FechaDe
o 1 2 e v

1001 Variable Murray Spiegel McGraw Prez Gmez Juan 15/04/200


compleja Hill 5

1004 Visual Basic 5 E. Petroustsos Anaya Ros Tern Ana 17/04/200


5

1005 Estadstica Murray Spiegel McGraw Roca Ren 16/04/200


Hill 5

1006 OracleUnivers NancyGreenbe Oracle Garca Roque Luis 20/04/200


ity rg Corp. 5

1006 OracleUnivers Priya Nathan Oracle Garca Roque Luis 20/04/200


ity Corp. 5

1007 Clipper 5.01 Ramalho McGraw Prez Gmez Juan 18/04/200


Hill 5
SEGUNDA FORMAL NORMAL (2FN)

Para la 2FN vamos a eliminar las dependencias parciales de la siguiente manera:

CodLibro Titulo Autor Editorial


1001 Variable Murray Spiegel McGraw Hill
compleja
1004 Visual Basic 5 E. Petroustsos Anaya
1005 Estadstica Murray Spiegel McGraw Hill
1006 Oracle University NancyGreenberg Oracle Corp.
1006 Oracle University Priya Nathan Oracle Corp.
1007 Clipper 5.01 Ramalho McGraw Hill

CodLector Apellido1 Apellido2 Nombre


101 Prez Gmez Juan
102 Ros Tern Ana
103 Roca Ren
104 Garca Roque Luis

En la siguiente tabla veremos qu libro es prestado a cierta persona:

CodLibro CodLector FechaDev


1001 101 15/04/2005
1004 102 17/04/2005
1005 103 16/04/2005
1006 104 20/04/2005
1007 101 18/04/2005
TERCERA FORMAL NORMAL (3FN)

Para la 3FN nos aseguraremos de que ya los atributos no clave sean dependientes de la
llave primaria.

CodLibro Titulo
Variable
1001 compleja
1004 Visual Basic 5
1005 Estadstica
1006 Oracle University
1007 Clipper 5.01

CodAutor Autor
301 Murray Spiegel
302 E. Petroustsos
303 Nancy Greenberg
304 Priya Nathan
306 Ramalho

CodEditorial Editorial
401 McGraw Hill
402 Anaya
403 Oracle Corp.

CodLibro codAutor
1001 101
1004 102
1005 101
1006 103
1006 104
1007 106

CodLibro codEditorial
1001 401
1004 402
1005 401
1006 403
1007 401

CodLector Apellido1 Apellido2 Nombre


101 Prez Gmez Juan
102 Ros Tern Ana
103 Roca Ren
104 Garca Roque Luis

CodLibro CodLector FechaDev


1001 101 15/04/2005
1004 102 17/04/2005
1005 103 16/04/2005
1006 104 20/04/2005
1007 101 18/04/2005

You might also like