Carga 2
Carga 2
Carga 2
Hemos creado una tabla para contener los datos del lector y también tuvimos que
crear la columna CodLector para identificar unívocamente a cada uno. Sin embargo, esta
nueva disposición de la base de datos necesita que exista otra tabla para mantener la
información de qué libros están prestados a qué lectores. Esta tabla se muestra a
continuación:
CodLibro CodLector FechaDev
1001 501 15/04/2014
1004 502 17/04/2014
1005 503 16/04/2014
1006 504 20/04/2014
1007 501 18/04/2014
Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los
atributos no clave deben ser mutuamente independientes y dependientes por completo de la
clave primaria. También recordemos que dijimos que esto significa que las columnas en la
tabla deben contener solamente información sobre la entidad definida por la clave primaria y,
por tanto, las columnas en la tabla deben contener datos acerca de una sola cosa.
En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los
autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de
3NF.
3NF
12-11-2014
CodLibro Titulo
1001 Variable compleja
1004 Visual Basic 5
1005 Estadística
1006 Oracle University
1007 Clipper 5.01
NORMALIZACION
1
UNC EJERCICIOS DE NORMALIZACION
CodAutor Autor
801 Murray Spiegel
802 E. Petroustsos
803 Nancy Greenberg
804 Priya Nathan
806 Ramalho
CodEditorial Editorial
901 McGraw Hill
902 Anaya
903 Oracle Corp
Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca
de una entidad, también hemos perdido la información acerca de qué autor ha escrito qué
libro y las editoriales correspondientes, por lo que debemos crear otras tablas que relacionen
cada libro con sus autores y editoriales.
CodLibro codEditorial
1001 901
1004 902
1005 901
1006 903
1007 901
CodLibro codAutor
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806
NORMALIZACION
2
UNC EJERCICIOS DE NORMALIZACION
1. Un dato sin normalizar no cumple con ninguna regla de normalización. 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 Fecha Id_cliente Nom_client Provincia Num_art nom_art cant Precio
e
2301 23/02/14 101 Martin Cajamarca 3786 Red 3 35,00
2301 23/02/14 101 Martin Cajamarca 4011 Raqueta 6 65,00
2301 23/02/14 101 Martin Cajamarca 9132 Paq-3 8 4,75
2302 25/02/14 107 Herman Lima 5794 Paq-6 4 5,00
2303 27/02/14 110 Pedro Piura 4011 Raqueta 2 65,00
2303 27/02/14 110 Pedro Piura 3141 Funda 2 10,00
1NF
Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido
para NUM_ART, NOM_ART, CANT y PRECIO. La 1FN prohíbe los grupos repetidos, por lo tanto
tenemos que convertir a la primera forma normal. Los pasos a seguir son:
Los registros quedan ahora conformados en dos tablas que llamaremos órdenes y
articulos_ordenes
Ordenes
Articulos_ordenes
2NF
NORMALIZACION
3
UNC EJERCICIOS DE NORMALIZACION
La tabla órdenes está en 2FN. Cualquier valor único de ID_ORDEN determina un sólo
valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave
primaria ID_ORDEN.
Articulos_ordenes
Id_orden Num_art cant
2301 3786 3
2301 4011 6
2301 9132 8
2302 5794 4
2303 4011 2
2303 3141 2
Artículos
Num_art nom_art Precio
3786 Red 35,00
4011 Raqueta 65,00
9132 Paq-3 4,75
5794 Paq-6 5,00
3141 Funda 10,00
3NF
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:
NORMALIZACION
4
UNC EJERCICIOS DE NORMALIZACION
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 PROVINCIA 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 órdenes se
muestran a continuación.
Ordenes
Id_orden Fecha Id_cliente
2301 23/02/11 101
2302 25/02/11 107
2303 27/02/11 110
Clientes
Id_cliente Nom_cliente Provincia
101 Martin Cajamarca
107 Herman Lima
110 Pedro Piura
1NF
Las tablas deben tener solo dos dimensiones. Dado que los estudiantes tienen varias
clases, estas clases deben ser listadas en una tabla separada. Los campos Clase1, Clase2,
12-11-2014
Las hojas de cálculo suelen usar la tercera dimensión, pero las tablas no deben. Otra
forma de ver este problema es con uno-a-muchos. Creamos otra tabla en la primera forma
normal eliminando el grupo de repetición (clase) como se muestra en lo siguiente:
NORMALIZACION
5
UNC EJERCICIOS DE NORMALIZACION
2NF
Tomamos en cuenta los múltiples valores para el campo Clase por cada estudiante en
la tabla anterior.
N° Alumno Nombre del Titular Salón
1022 Sr. Llamoctanta 1A-201
4123 Sr. Rodríguez 1B-202
N° Alumno N° Clase
1022 Arquitectura
1022 Gestión
1022 Economía
4123 Dibujo
4123 Base de Datos
4123 An. Matemático
3NF
Eliminar los datos que no dependen de la llave, salon (salon/grupo asignado al asesor)
es funcionalmente dependiente del atributo titular. La solución es mover dicho atributo de la
tabla Alumnos a la tabla de Facultad:
N° Alumno Nombre del Titular Salón
1022 Sr. Llamoctanta 1A-201
4123 Sr. Rodríguez 1B-202
I. CONCLUSION
12-11-2014
NORMALIZACION
6
UNC EJERCICIOS DE NORMALIZACION
La normalización es una ayuda muy útil en el proceso de diseño de las bases de datos,
pero conviene señalar que no es una panacea. Hay que tener en cuenta que las formas
normales no son prescripciones para la creación de un modelo de datos “correcto”. Un modelo
de datos podría llegar a estar perfectamente normalizado, pero podría proporcionar las
respuestas tan despacio y de forma tan complicada que el sistema de base de datos construido
sobre él resulte inoperativo.
No hay que olvidar que al descomponer una relación penalizamos las consultas,
provocando una pérdida de eficiencia en las mismas. Aunque, en general, se aconseja llevar los
esquemas relacionales al menos a 3FN, existen ciertos casos en los que, una vez realizada la
descomposición, exigencias de eficiencia muy estrictas obligan a llevar a cabo el proceso
inverso, es decir, una desnormalización, combinando las relaciones hasta dejarlas en formas
normales anteriores.
Por lo tanto, hay que poner en la balanza hasta dónde conviene normalizar para que el
resultado sea un modelo de datos eficiente y efectivo, aunque no cabe duda que con las tres
primeras formas normales las probabilidades de obtener este resultado son muy altas.
II. BIBLIOGRAFIA
Estos ejercicios se han elaborado tomando como principales referencias los textos
siguientes.
https://prezi.com/omjlhd66hrf5/normalizacion-de-base-de-datos/
http://cvb.ehu.es/open_course_ware/castellano/social_juri/
herrami_gestion/normalizacion.pdf
http://www.angelfire.com/ult/lupa/bd/normalizacion1.htm
http://nelwibaez.files.wordpress.com/2011/04/guc3ada-de-
ejercicios_iii_normalizacic3b3n2.docx
12-11-2014
NORMALIZACION
7