You are on page 1of 9

El proceso de normalizacin de

bases de datos relacionales


La normalizacin de bases de datos
relacionales toma un esquema
relacional y le aplica un conjunto
de tcnicas para producir un nuevo
esquema que representa la misma
informacin pero contiene menos
redundancias y evita posibles
anomalas en las inserciones,
actualizaciones y borrados.

El proceso de normalizacin
El proceso de normalizacin consiste
en comprobar en secuencia si el
esquema original est en 1FN, 2FN y
3FN, analizando las dependencias
funcionales en cada paso.

Un ejemplo completo
Tenemos una empresa pblica donde los puestos de
trabajo estn regulados por el Estado, de modo que las
condiciones salariales estn determinadas por el
puesto. Se ha creado el siguiente esquema relacional

nss
111
222

EMPLEADOS(nss, nombre, puesto, salario, emails) con


nss como clave primaria.
nombre
puesto
salario
emails
juanp@ecn.es;
Juan Prez
Jefe de rea
3000
jefe2@ecn.es
Jos Snchez
Administrativo 1500
jsanchez@ecn.es

333

Ana Daz

Administrativo

1500

adiaz@ecn.es;
ana32@gmail.co
m

...

...

...

...

...

Table 1

Primera forma normal (1FN)


Una tabla est en 1FN si sus atributos
contienen valores atmicos. En el
ejemplo, podemos ver que el atributo
emails puede contener ms de un
valor, por lo que viola 1FN.
En general, tenemos una relacin R
con clave primaria K. Si un atributo M
viola la condicin de 1FN, tenemos
dos opciones.

valores repetidos
En general, esta solucin pasa por sustituir R
por una nueva relacin modificada R', en la
cual:
El atributo M que violaba 1FN se elimina.
Se incluye un nuevo atributo M' que solo
puede contener valores simples, de modo que
si R'[M'] es uno de los valores que tenamos en
R[M], entonces R'[K] = R[K]. En otras
palabras, para una tupla con n valores
duplicados en M, en la nueva relacin habr n
tuplas, que slo varan en que cada una de
ellas guarda uno de los valores que haba en
M.
La clave primaria de R' es (K, M'), dado que
podr haber valores de K repetidos, para los

Siguiendo el ejemplo, tendramos el siguiente


esquema para la nueva tabla EMPLEADOS'(a) con
clave primaria (nss, email):
nss

nombre

puesto

salario

email

111

Juan Prez

Jefe de rea

3000

juanp@ecn.es

111

Juan Prez

Jefe de rea

3000

jefe2@ecn.es

222

Jos Snchez

Administrativo 1500

jsanchez@ecn.e
s

333

Ana Daz

Administrativo 1500

adiaz@ecn.es

333

Ana Daz

Administrativo 1500

ana32@gmail.c
om

...

...

...

...

...
Table 2

que viola 1FN en una tabla


En general, esta solucin pasa por:
sustituir R por una nueva relacin
modificada R' que no contiene el
atributo M.
Crear una nueva relacin N(K, M'),
es decir, una relacin con una clave
ajena K referenciando R', junto al
atributo M', que es la variante monovaluada del atributo M.
La nueva relacin N tiene como clave
(K, M').

Siguiendo el ejemplo, tendramos el siguiente esquema para


la nueva tabla EMPLEADOS'(b)
Y adems tendramos una nueva tabla EMAILS con clave
primaria (nss, email):
nss
111
222
333
...

nombre
Juan Prez
Jos Snchez
Ana Daz
...

puesto
Jefe de rea
Administrativo
Administrativo
...
Table 3

salario
3000
1500
1500
...

ems tendramos una nueva tabla EMAILS con clave primaria (nss, ema
nss
111
111
222
333
333
...

email
juanp@ecn.es
jefe2@ecn.es
jsanchez@ecn.es
adiaz@ecn.es
ana32@gmail.com
...
Table 4

You might also like