Vous êtes sur la page 1sur 5

Normalizacin de Base de Datos

Pgina: 1 / 5

Qu es la normalizacin
La normalizacin es el proceso mediante el cual se transforman datos complejos a un conjunto de
estructuras de datos ms pequeas, que adems de ser ms simples y ms estables, son ms
fciles de mantener. Tambin se puede entender la normalizacin como una serie de reglas que
sirven para ayudar a los diseadores de bases de datos a desarrollar un esquema que minimice los
problemas de lgica. Cada regla est basada en la que le antecede. La normalizacin se adopt
porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la
base de datos, era ineficiente y conduca a errores de lgica cuando se trataban de manipular los
datos. La normalizacin tambin hace las cosas fciles de entender. Los seres humanos tenemos la
tendencia de simplificar las cosas al mximo. Lo hacemos con casi todo, desde los animales hasta
con los automviles. Vemos una imagen de gran tamao y la hacemos ms simple agrupando
cosas similares juntas. Las guas que la normalizacin provee crean el marco de referencia para
simplificar una estructura de datos compleja.
Otra ventaja de la normalizacin de base de datos es el consumo de espacio. Una base de datos
normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repeticin de
datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.
El proceso de normalizacin tiene un nombre y una serie de reglas para cada fase. Esto puede
parecer un poco confuso al principio, pero poco a poco se va entendiendo el proceso, as como las
razones para hacerlo de esta manera.

Grados de normalizacin
Existen bsicamente tres niveles de normalizacin: Primera Forma Normal (1NF), Segunda Forma
Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas.
Cuando una base de datos se conforma a un nivel, se considera normalizada a esa forma de
normalizacin. No siempre es una buena idea tener una base de datos conformada en el nivel ms
alto de normalizacin, puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera
en un nivel ms bajo de normalizacin.
1.- Primera Forma Normal
La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y
colocarse en tablas separadas.
Poner la base de datos en la Primera Forma Normal resuelve el problema de los encabezados de
columna mltiples. Muy a menudo, los diseadores de bases de datos inexpertos harn algo
similar a la tabla no normalizada. Una y otra vez, crearn columnas que representen los mismos
datos. La normalizacin ayuda a clarificar la base de datos y a organizarla en partes ms pequeas
y ms fciles de entender. En lugar de tener que entender una tabla gigantesca y monoltica que
tiene muchos diferentes aspectos, slo tenemos que entender los objetos pequeos y ms
tangibles, as como las relaciones que guardan con otros objetos tambin pequeos.

________________________________________________________________________________
Base de Datos I
Prof. Lin Rodrguez, Julio C.

Normalizacin de Base de Datos

Pgina: 2 / 5

2.- Segunda Forma Normal


La regla de la Segunda Forma Normal establece que todas las dependencias parciales
se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es
un trmino que describe a aquellos datos que no dependen de la llave primaria de la
tabla para identificarlos.
Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la mayora de
los problemas de lgica. Podemos insertar un registro sin un exceso de datos en la
mayora de las tablas.
3.- Tercera Forma Normal
Una tabla est normalizada en esta forma si todas las columnas que no son llave son
funcionalmente dependientes por completo de la llave primaria y no hay dependencias
transitivas. Una dependencia transitiva es aquella en la cual existen columnas que no
son llave que dependen de otras columnas que tampoco son llave.
Cuando las tablas estn en la Tercera Forma Normal se previenen errores de lgica
cuando se insertan o borran registros. Cada columna en una tabla est identificada de
manera nica por la llave primaria, y no debe haber datos repetidos. Esto provee un
esquema limpio y elegante, que es fcil de trabajar y expandir.
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.
ID_ORD
2301
2301
2301
2302
2303
2303

FECHA
2/23/03
2/23/03
2/23/03
2/25/03
2/27/03
2/27/03

ID_CLI
101
101
101
107
110
110

NOM_CLIENTE
MARTIN
MARTIN
MARTIN
HERMAN
WE-SPORTS
WE-SPORTS

ESTADO ID_ART
CA
3786
CA
4011
CA
9132
WI
5794
MI
4011
MI
3141

DESCRIPCION
RED
RAQUETA
PAQ-3
PAQ-6
RAQUETA
FUNDA

CANT
3
6
8
4
2
2

PRECIO
35.0
65.0
4.75
5.0
65.0
10.0

Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetitivo
para ID_ART, DESCRIPCION, CANT y PRECIO. La 1FN prohbe los grupos repetitivos,
por lo tanto tenemos que convertir a la primera forma normal.
Los pasos a seguir son:
Tenemos que eliminar los grupos repetitivos.
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
- ORDENES
ID_ORD
2301
2302
2303

FECHA
2/23/03
2/25/03
2/27/03

ID_CLIENTE
101
107
110

NOM_CLIENTE
MARTI
HERMAN
WE-SPORTS

ESTADO
CA
WI
MI

________________________________________________________________________________
Base de Datos I
Prof. Lin Rodrguez, Julio C.

Normalizacin de Base de Datos

Pgina: 3 / 5

- ARTICULOS_ORDENES
ID_ORD
2301
2301
2301
2302
2303
2303

ID_ART
3786
4011
9132
5794
4011
3141

DESCRIPCION
RED
RAQUETA
PAQ-3
PAQ-6
RAQUETA
FUNDA

CANT
3
6
8
4
2
2

PRECIO
35.0
65.0
4.75
5.0
65.0
10.0

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 que 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 ORDENES est en 2FN. Cualquier valor nico de ID_ORD determina un slo
valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave
primaria ID_ORD.
Por su parte, la tabla ARTICULOS_ORDENES no se encuentra en 2FN ya que las
columnas PRECIO y DESCRIPCION son dependientes de ID_ART, pero no son
dependientes de ID_ART. 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.
Las tablas quedan ahora de la siguiente manera.
- ARTICULOS_ORDENES
ID_ORD
2301
2301
2301
2302
2303
2303

ID_ART
3786
4011
9132
5794
4011
3141

CANT
3
6
8
4
2
2

- ARTICULOS
ID_ART
3786
4011
9132
5794
3141

DESCRIPCION
RED
RAQUETA
PAQ-3
PAQ-6
FUNDA

PRECIO
35.0
65.0
4.75
5.0
10.0

________________________________________________________________________________
Base de Datos I
Prof. Lin Rodrguez, Julio C.

Normalizacin de Base de Datos

Pgina: 4 / 5

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 ESTADO son dependientes de
ID_CLI, 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.
- ORDENES
ID_ORDEN
2301
2302
2303

FECHA
2/23/03
2/25/03
2/27/03

ID_CLI
101
107
110

- CLIENTES
ID_CLIENTE
101
107
110

NOM_CLIENTE
MARTI
HERMAN
WE-SPORTS

ESTADO
CA
WI
MI

Qu tan lejos debe llevar la normalizacin?


La normalizacin es una ciencia subjetiva. Determinar las necesidades de simplificacin
depende de nosotros. Si nuestra base de datos va a proveer informacin a un solo
usuario para un propsito simple y existen pocas posibilidades de expansin,
normalizar los datos hasta la 3FN quiz sea algo exagerado. Las reglas de
normalizacin existen como guas para crear tablas que sean fciles de manejar, as
como flexibles y eficientes. A veces puede ocurrir que normalizar los datos hasta el
nivel ms alto no tenga sentido.
Se estn dividiendo tablas slo para seguir las reglas o estas divisiones son
en verdad prcticas?
stas son el tipo de cosas que nosotros como diseadores de la base de datos,
necesitamos decidir, y la experiencia y el sentido comn nos pueden auxiliar para
tomar la decisin correcta. La normalizacin no es una ciencia exacta, ms bien
subjetiva.

________________________________________________________________________________
Base de Datos I
Prof. Lin Rodrguez, Julio C.

Normalizacin de Base de Datos

Pgina: 5 / 5

Ejercicios de Normalizacin
1. A travs del siguiente ejercicio se intenta reafirmar los conocimientos de normalizacin con
un ejemplo simplificado de una base de datos para una pequea biblioteca. En el cual se
registran los prstamos de libros por los lectores.
NroPres Cod Titulo
1

1001

Variable
compleja

Autor

Editorial

NombreLector FechaPres

Murray Spiegel

McGraw Hill

Prez
Gmez,
Juan

15/05/2009

1004 Visual Basic Net E. Petroustsos

Anaya

Roca, Ren

17/05/2009

1005 Estadstica

Murray Spiegel

McGraw Hill Roca, Ren

17/05/2009

1006 Oracle
University

Nancy
Greenberg y
Priya Nathan

Oracle
Corp.

20/06/2009

1007 Clipper 5.01

Ramalho

McGraw Hill

1004 Visual Basic Net E. Petroustsos

Anaya

1006 Oracle
University

Oracle
Corp.

Nancy
Greenberg y
Priya Nathan

1004 Visual Basic Net E. Petroustsos

Anaya

Garca
Roque, Luis
Prez
Gmez,
Juan

18/07/2009

Prez
Gmez,
Juan
Ros Tern,
Ana
Ros Tern,
Ana

18/07/2009

02/08/2009
02/08/2009

2. En un Laboratorio productos de medicamentos se quiere almacenar la informacin acerca


de la composicin de cada medicamento, de modo que nos permita conocer que compuesto
est contenido en un medicamento y la cantidad de este necesario para su elaboracin.
Medicamento (codmed, nommed, presenta, nomcomp,cant_unid, pas_proc)
Codmed= Cdigo del Medicamento
Nommed=Nombre del Medicamento.
Presenta=Presentacin del medicamento.
Nomcomp=Nombre del Componente.
Cant_unid=Cantidad de unidades necesarias del componente para el medicamento.
Pais_proced=Pas de procedencia del componente.
codmed
MI-0456
MI-0456
MI-0456
MI-0456
MI-0859
MI-0859
MI-0859

Nommed
ComplejoB
ComplejoB
ComplejoB
ComplejoB
Revitalizador Plus
Revitalizador Plus
Revitalizador Plus

presenta
Grageas
Grageas
Grageas
Grageas
Locin
Locin
Locin

nomcomp
Vit. B1,
Vit B2,
Vit.
B12,
Vit. B6
Alcohol
Propileno
Panthenol

Cant_unid
25
16
18
20
15
25
35

Pas_proced
Per
Mxico
Per
Argentina
Per
Per
Brasil

________________________________________________________________________________
Base de Datos I
Prof. Lin Rodrguez, Julio C.

Vous aimerez peut-être aussi