Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios Normalizacion Base de Datos
Ejercicios Normalizacion Base de Datos
I. EJERCICIOS DE NORMALIZACIÓN:
Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo tener
campos atómicos, pues el nombre del lector es un campo que puede (y conviene)
descomponerse en apellido paterno, apellido materno y nombres. Tal como se muestra en la
siguiente tabla.
La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de
otra manera, todos los atributos no clave deben depender por completo de la clave primaria.
Actualmente en nuestra tabla tenemos varias dependencias parciales si consideramos como
atributo clave el código del libro.
Por ejemplo, el título es completamente identificado por el código del libro, pero el
nombre del lector en realidad no tiene dependencia de este código, por tanto estos datos deben
ser trasladados a otra tabla.
12-11-2014
1
EJERCICIOS DE NORMALIZACION
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.
CodLibro Titulo
1001 Variable compleja
1004 Visual Basic 5
12-11-2014
1005 Estadística
1006 Oracle University
1007 Clipper 5.01
2
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
3
EJERCICIOS DE NORMALIZACION
2. 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_cliente Provincia Num_art nom_art cant Precio
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
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
4
EJERCICIOS DE NORMALIZACION
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:
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
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:
dependientes.
5
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
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, Clase3
en los registros anteriores son indicios de problemas de diseño.
Las hojas de cálculo suelen usar la tercera dimensión, pero las tablas no deben. Otra
12-11-2014
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:
6
EJERCICIOS DE NORMALIZACION
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
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
II. CONCLUSION
datos eficientes, garantizando un buen diseño lógico de la base de datos. Es decir, se utiliza para
mejorar el esquema, de modo que éste satisfaga ciertas restricciones que eviten la duplicidad
de datos, y garantiza que el esquema resultante esté más próximo al modelo de la empresa, sea
consistente, con la mínima redundancia y la máxima estabilidad.
7
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.
III. 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
http://www.postgresqltutorial.com/postgresql-drop-database/
https://ayuda.guebs.com/usar-psql-conectar-base-datos-postgresql/
12-11-2014