You are on page 1of 8

EJERCICIOS DE NORMALIZACION

I.

EJERCICIOS DE NORMALIZACIN:

1. A travs del siguiente ejercicio se intenta afirmar los conocimientos de normalizacin


con un ejemplo simplificado de una base de datos para una pequea biblioteca.
CodLibro

Titulo

Autor

editorial

NombreLector

echaDev

1001

Variable Compleja

Murray Spiegel

McGraw Hill

Prez Gmez, Juan

15/04/2014

1004

Visual Basic

E. Petroustsos

Anaya

Ros Tern, Ana

17/04/2014

1005

Estadstica

Murray Spiegel

McGraw Hill

Roca, Ren

16/04/2014

1006

Oracle University

Oracle Corp.

Garca Roque, Luis

20/04/2014

1007

Clipper 5.01

Nancy Greenberg y Priya


Nathan
Ramalho

McGraw Hill

Prez Gmez, Juan

18/04/2014

Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de slo tener
campos atmicos, 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.

CodLibro

Titulo

Autor

editorial

Paterno

Materno

Nombres

FechaDev

1001

Variable compleja

Murray Spiegel

McGraw Hill

Prez

Gmez

Juan

15/04/2014

1004

Visual Basic 5

E. Petroustsos

Anaya

Ros

Tern

Ana

17/04/2014

1005
1006

Estadstica
Oracle University

Murray Spiegel
NancyGreenberg

McGraw Hill
Oracle Corp.

Roca
Garca

Roque

Ren
Luis

16/04/2014
20/04/2014

1006
1007

Oracle University
Clipper 5.01

Priya Nathan
Ramalho

Oracle Corp.
McGraw Hill

Garca
Prez

Roque
Gmez

Luis
Juan

20/04/2014
18/04/2014

Como se puede ver, hay cierta redundancia caracterstica de 1NF.


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 cdigo del libro.

12-11-2014

Por ejemplo, el ttulo es completamente identificado por el cdigo del libro, pero el
nombre del lector en realidad no tiene dependencia de este cdigo, por tanto estos datos
deben ser trasladados a otra tabla.

EJERCICIOS DE NORMALIZACION

CodLibro

Titulo

Autor

Editorial

1001

Variable compleja

Murray Spiegel

McGraw Hil

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

La nueva tabla slo contendr datos del lector.


CodLector

Paterno

Materno

Nombres

501

Prez

Gmez

Juan

502

Ros

Tern

Ana

503

Roca

504

Garca

Ren
Roque

Luis

Hemos creado una tabla para contener los datos del lector y tambin tuvimos que
crear la columna CodLector para identificar unvocamente a cada uno. Sin embargo, esta
nueva disposicin de la base de datos necesita que exista otra tabla para mantener la
informacin de qu libros estn prestados a qu lectores. Esta tabla se muestra a
continuacin:
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 relacin debe estar en 2NF y adems los
atributos no clave deben ser mutuamente independientes y dependientes por completo de la
clave primaria. Tambin recordemos que dijimos que esto significa que las columnas en la
tabla deben contener solamente informacin 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 informacin acerca del libro, los
autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de
3NF.

Titulo

1001

Variable compleja

1004

Visual Basic 5

1005

Estadstica

1006

Oracle University

12-11-2014

CodLibro

EJERCICIOS DE NORMALIZACION
1007

Clipper 5.01

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 slo informacin acerca
de una entidad, tambin hemos perdido la informacin 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

Y el resto de las tablas no necesitan modificacin.


Paterno

Materno

Nombres

501

Prez

Gmez

Juan

502

Ros

Tern

Ana

503

Roca

504

Garca

Ren
Roque

Luis

12-11-2014

CodLector

EJERCICIOS DE NORMALIZACION
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

2. 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

Fecha

Id_cliente

Nom_cliente

Provincia

Num_art

nom_art

cant

Precio

2301

23/02/14

101

Martin

Cajamarca

3786

Red

35,00

2301

23/02/14

101

Martin

Cajamarca

4011

Raqueta

65,00

2301

23/02/14

101

Martin

Cajamarca

9132

Paq-3

4,75

2302

25/02/14

107

Herman

Lima

5794

Paq-6

5,00

2303

27/02/14

110

Pedro

Piura

4011

Raqueta

65,00

2303

27/02/14

110

Pedro

Piura

3141

Funda

10,00

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 rdenes y
articulos_ordenes
Ordenes
Id_orden

Fecha

Id_cliente

Nom_cliente

Estado

2301

23/02/14

101

Martin

Caracas

2302

25/02/14

107

Herman

Coro

2303

27/02/14

110

Pedro

Maracay

Id_orden

Num_art

nom_art

cant

Precio

2301

3786

Red

35,00

2301

4011

Raqueta

65,00

2301

9132

Paq-3

4,75

2302

5794

Paq-6

5,00

2303

4011

Raqueta

65,00

2303

3141

Funda

10,00

12-11-2014

Articulos_ordenes

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:
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 rdenes 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 artculos 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

2301

3786

2301
2301

4011
9132

6
8

2302

5794

2303

4011

2303

3141

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

12-11-2014

Artculos

EJERCICIOS DE NORMALIZACION
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.
Eliminar esas columnas de la tabla base.
Crear 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 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 continuacin.

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

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


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

3. Normalizacin de la tabla de estudiantes:


Nombre del Titular

Saln

Clase1

Clase2

Clase3

1022

Sr. Llamoctanta

1A-201

Arquitectura

Gestin

Economa

4123

Sr. Rodrguez

1B-202

Dibujo

Base de Datos

An. Matemtico

12-11-2014

N Alumno

EJERCICIOS DE NORMALIZACION
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 diseo.
Las hojas de clculo suelen usar la tercera dimensin, 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 repeticin (clase) como se muestra en lo siguiente:

N Alumno

Nombre del Titular

Saln

N Clase

1022

Sr. Llamoctanta

1A-201

Arquitectura

1022

Sr. Llamoctanta

1A-201

Gestin

1022

Sr. Llamoctanta

1A-201

Economa

4123

Sr. Rodrguez

1B-202

Dibujo

Sr. Rodrguez

1B-202

Base de Datos

Sr. Rodrguez

1B-202

An. Matemtico

4123
4123

Tomamos en cuenta los mltiples valores para el campo Clase por cada estudiante en
la tabla anterior.
N Alumno

Nombre del Titular

Saln

1022

Sr. Llamoctanta

1A-201

4123

Sr. Rodrguez

1B-202

N Alumno

N Clase

1022

Arquitectura

1022

Gestin

1022

Economa

4123

Dibujo

4123

Base de Datos

4123

An. Matemtico

Eliminar los datos que no dependen de la llave, salon (salon/grupo asignado al asesor)
es funcionalmente dependiente del atributo titular. La solucin es mover dicho atributo de la
tabla Alumnos a la tabla de Facultad:
Nombre del Titular

Saln

1022

Sr. Llamoctanta

1A-201

4123

Sr. Rodrguez

1B-202

Nombre del Titular

Saln

Departamento

Sr. Llamoctanta

1A-201

Sr. Rodrguez

1B-202

12-11-2014

N Alumno

EJERCICIOS DE NORMALIZACION

II.

CONCLUSION

La normalizacin es una tcnica que se ha desarrollado para obtener estructuras de


datos eficientes, garantizando un buen diseo lgico 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 ms prximo al modelo de la
empresa, sea consistente, con la mnima redundancia y la mxima estabilidad.
La normalizacin es una ayuda muy til en el proceso de diseo de las bases de datos,
pero conviene sealar que no es una panacea. Hay que tener en cuenta que las formas
normales no son prescripciones para la creacin de un modelo de datos correcto. Un modelo
de datos podra llegar a estar perfectamente normalizado, pero podra 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 relacin penalizamos las consultas,
provocando una prdida 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
descomposicin, exigencias de eficiencia muy estrictas obligan a llevar a cabo el proceso
inverso, es decir, una desnormalizacin, combinando las relaciones hasta dejarlas en formas
normales anteriores.
Por lo tanto, hay que poner en la balanza hasta dnde 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.

12-11-2014

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-deejercicios_iii_normalizacic3b3n2.docx

You might also like