Professional Documents
Culture Documents
Ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, num_art, nom_art, cant, precio)
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 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:
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.
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.
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:
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.
Adicionalmente se puede crear otra tabla que contenga la informacin de las ciudades.
Ciudad(id_ciudad,nom_ciudad)
PUNTO 2 (FACTURA DE COMPRA VENTA)
Salen dos tablas (FACTURA y PRODUCTO_FACTURA) para eliminar los elementos repetidos de la
tabla FACTURA.
Para este caso solo se alterara la tabla PRODUCTO_FACTURA ya que la tabla FACTURA est en 2FN.
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)
Sale una tabla ms (CLIENTE) para eliminar los elementos repetidos de la tabla ALQUILER,
quedando las tablas (ALQUILER,DVD,CLIENTE) de la siguiente forma.
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.
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.
Si tenemos en cuenta que con una misma gua se pueden enviar varios paquetes para un mismo
destino la solucin es la siguiente:
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:
TABLA PAQUETE:
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:
TABLA DESTINATARIO:
TABLA PAQUETE:
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.
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
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