Vous êtes sur la page 1sur 4

Gua de Ejercicios de Normalizacin de Base de Datos Gua de Ejercicios

Aplicar las reglas de normalizacin los siguientes ejercicios.


1. Un dato sin normalizar no cumple con ninguna regla de normalizacin. Para explicar con un ejemplo en qu consiste cada una de las reglas, vamos a considerar los datos de la siguiente tabla. ordenes (id_orden, ec!a, id_cliente, nom_cliente, estado, num_art, nom_art, cant, precio" Ordenes Id_orden #$%1 #$%1 #$%1 #$%# #$%$ #$%$ Fecha #$&%#&11 #$&%#&11 #$&%#&11 #-&%#&11 #)&%#&11 #)&%#&11 Id_client e 1%1 1%1 1%1 1%) 11% 11% Nom_client e 'artin 'artin 'artin 1erman Pedro Pedro Estado (aracas (aracas (aracas (oro 'araca2 'araca2 Num_art $)*+ .%11 /1$# -)/. .%11 $1.1 nom_art ,ed ,aqueta Paq0$ Paq0+ ,aqueta 3unda cant $ + * . # # Precio $-,%% +-,%% .,)-,%% +-,%% 1%,%%

P I!E A FO !A" NO !A" #$FN% 4l examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para 5U'_4,6, 57'_4,6, (456 2 P,8(97. :a 135 pro!;be los grupos repetidos, por lo tanto tenemos que convertir a la primera orma normal. :os pasos a seguir son< 6enemos que eliminar los grupos repetidos. 6enemos que crear una nueva tabla con la P= de la tabla base 2 el grupo repetido. :os registros quedan a!ora con ormados en dos tablas que llamaremos 7,>858? 2 4,69(U:7?_7,>858?
ordenes (id_orden, ec!a, id_cliente, nom_cliente, estado" Articulos_ordenes (id_orden, num_art, nom_art, cant, precio" Ordenes Id_orden #$%1 #$%# #$%$ Fecha #$&%#&11 #-&%#&11 #)&%#&11 Id_client e 1%1 1%) 11% nom_art ,ed ,aqueta Paq0$ Paq0+ ,aqueta 3unda Nom_client e 'artin 1erman Pedro cant $ + * . # # Estado (aracas (oro 'araca2

Articulos_ordenes Id_orden Num_art #$%1 $)*+ #$%1 .%11 #$%1 /1$# #$%# -)/. #$%$ .%11 #$%$ $1.1

Precio $-,%% +-,%% .,)-,%% +-,%% 1%,%%

1/9

Gua de Ejercicios de Normalizacin de Base de Datos

&EG'N(A FO !A" NO !A" #)FN% 4!ora procederemos a aplicar la segunda ormal normal, es decir, tenemos que eliminar cualquier columna no llave que no dependa de la llave primaria de la tabla. :os pasos a seguir son< >eterminar cu@les columnas que no son llave no dependen de la llave primaria de la tabla. 8liminar esas columnas de la tabla base. (rear una segunda tabla con esas columnas 2 la(s" columna(s" de la P= de la cual dependen. :a tabla 7,>858? est@ en #35. (ualquier valor Anico de 9>_7,>85 determina un slo valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave primaria 9>_7,>85. Por su parte, la tabla 4,69(U:7?_7,>858? no se encuentra en #35 2a que las columnas P,8(97 2 57'_4,6 son dependientes de 5U'_4,6, pero no son dependientes de 9>_7,>85. :o que !aremos a continuacin es eliminar estas columnas de la tabla 4,69(U:7?_7,>858? 2 crear una tabla 4,69(U:7? con dic!as columnas 2 la llave primaria de la que dependen. :as tablas quedan a!ora de la siguiente manera.
Articulos_ordenes (id_orden, num_art, cant" Articulos_ordenes Id_orden Num_art #$%1 $)*+ #$%1 .%11 #$%1 /1$# #$%# -)/. #$%$ .%11 #$%$ $1.1 cant $ + * . # #

Articulos( num_art, nom_art, precio"

Articulos Num_art $)*+ .%11 /1$# 2/9

nom_art ,ed ,aqueta Paq0$

Precio $-,%% +-,%% .,)-

Gua de Ejercicios de Normalizacin de Base de Datos


-)/. $1.1 Paq0+ 3unda -,%% 1%,%%

*E +E A FO !A" NO !A" #,FN% :a tercera orma normal nos dice que tenemos que eliminar cualquier columna no llave que sea dependiente de otra columna no llave. :os pasos a seguir son< >eterminar las columnas que son dependientes de otra columna no llave. 8liminar esas columnas de la tabla base. (rear una segunda tabla con esas columnas 2 con la columna no llave de la cual son dependientes. 4l observar las tablas que !emos creado, nos damos cuenta que tanto la tabla 4,69(U:7?, como la tabla 4,69(U:7?_7,>858? se encuentran en $35. ?in embargo la tabla 7,>858? no lo est@, 2a que 57'_(:98568 2 8?64>7 son dependientes de 9>_(:98568, 2 esta columna no es la llave primaria. Para normalizar esta tabla, moveremos las columnas no llave 2 la columna llave de la cual dependen dentro de una nueva tabla (:98568?. :as nuevas tablas (:98568? 2 7,>858? se muestran a continuacin.
ordenes(id_orden, ec!a, id_cliente" Ordenes Id_orden #$%1 #$%# #$%$ Fecha #$&%#&11 #-&%#&11 #)&%#&11 Id_cliente 1%1 1%) 11%

Clientes(id_cliente, nom_cliente, estado" Ordenes Id_client e 1%1 1%) 11% Nom_client e 'artin 1erman Pedro Estado (aracas (oro 'araca2

Por lo tanto la -ase de datos .ueda de la siguiente manera/ 3/9

Gua de Ejercicios de Normalizacin de Base de Datos

ordenes(id_orden, ec!a, id_cliente" Clientes (id_cliente, nom_cliente, estado" Articulos( num_art, nom_art, precio" Articulos_ordenes (id_orden, num_art, cant"

4/9

Vous aimerez peut-être aussi