You are on page 1of 12

Normalizacin de Bases de Datos y Tcnicas

de diseo
Peligros en el diseo de base de datos relacionales
Segn (Tamez, 2003) Uno de los retos en el diseo de la base de
datos es el de obtener una estructura estable y lgica tal que:
1. El sistema de base de datos no sufra de anomalas de
almacenamiento.
2. El modelo lgico pueda modificarse fcilmente para admitir
nuevos requerimientos.
Segn (Tamez, 2003) Una base de datos implantada sobre un
modelo bien diseado tiene mayor esperanza de vida aun en un
ambiente dinmico, que una base de datos con un diseo pobre. En
promedio, una base de datos experimenta una reorganizacin
general cada seis aos, dependiendo de lo dinmico de los
requerimientos de los usuarios.
Una base de datos bien diseada tendr un buen desempeo aunque
aumente su tamao,

y ser

lo suficientemente

flexible

para

incorporar nuevos requerimientos o caractersticas adicionales.


Existen diversos riesgos en el diseo de las bases de datos
relacionales que afecten la funcionalidad de la misma, los riesgos
generalmente son la redundancia de informacin y la inconsistencia
de datos.
La normalizacin es el proceso de simplificar la relacin entre los
campos

de

un

registro.

Por medio de la normalizacin un conjunto de datos en un registro se


reemplaza por varios registros que son ms simples y predecibles y,
por lo tanto, ms manejables. La normalizacin se lleva a cabo por
cuatro razones:
1.

Estructurar los datos de forma que se puedan representar las


relaciones pertinentes entre los datos.

2.

Permitir la recuperacin sencilla de los datos en respuesta a


las solicitudes de consultas y reportes.

3.

Simplificar el mantenimiento de los datos actualizndolos,


insertndolos y borrndolos.

4.

Reducir la necesidad de reestructurar o reorganizar los datos


cuando surjan nuevas aplicaciones.

Normalizacin por medio de dependencias funcionales


Dependencias funcionales
Por

cualquier

instancia

dada

de

una

relacin,

sus

atributos

dependientes solo pueden tener un y solo un valor para ciertos


valores de los atributos de los cuales es dependiente.
Nota: Es la relacin de uno a uno entre el atributo y los atributos
dependientes.
Dependencia funcional: Consiste en edificar que atributos dependen
de otro(s) atributo(s).

Ejemplo 1:
EMPLEADO (NUM_EMP, APELLIDO, NOMBRE, PUESTO, SALARIO)
Es: APELLIDO = f(NUM_EMP) ?
(Es apellido funcionalmente dependiente de NUM_EMP?, No, Pueden
haber varios empleados con el mismo apellido)

Ejemplo 2
ARTICULO (NUM_PROV, NUM_ART, COSTO)
Dependencia funcional:
COSTO = F (NUM_PROV, ARTICULO)
Valores Atmicos
Un dominio es atmico si se considera a los elementos del dominio
como unidades indivisibles.
Normalizacin
Es el proceso de simplificar la relacin entre los campos de un
registro. Tal que todos los dominios de los atributos deben consistir
solo de valores atmicos, evitando los grupos repetitivos, y no debe
de haber valores con multi-valores. Por medio de la normalizacin un
conjunto de datos en un registro se reemplaza por varios registros
que son ms simples y predecibles y, por lo tanto, ms manejables.

Razones para llevar a cabo la normalizacin

Estructurar los datos de forma que se puedan representar las


relaciones pertinentes entre los datos.

Permitir la recuperacin sencilla de los datos en respuesta a las


solicitudes de consultas y reportes.

Simplificar el mantenimiento de los datos actualizndolos,


insertndolos y borrndolos.

Reducir la necesidad de reestructurar o reorganizar los datos


cuando surjan nuevas aplicaciones.

En trminos ms sencillos la normalizacin trata de simplificar el


diseo de una base de datos, esto a travs
mejor

estructuracin

que

pueda

utilizarse

de la bsqueda de la
con

las

entidades

involucradas en ella.
Pasos de la normalizacin:
1. Descomponer

todos

los

grupos

de

datos

en

registros

bidimensionales.
2. Eliminar todas las relaciones en la que los datos no dependan
completamente de la llave primaria del registro.
3. Eliminar todas las relaciones que contengan dependencias
transitivas.
Formas normales
Uno de los factores ms importantes en la creacin de pginas web dinmicas es el
diseo de las Bases de Datos (BD). Si tus tablas no estn correctamente diseadas, te
pueden causar un montn de dolores de cabeza cuando tengas de realizar
complicadsimas llamadas SQL en el cdigo PHP para extraer los datos que necesitas.
Si conoces como establecer las relaciones entre los datos y la normalizacin de estos,
estars preparado para comenzar a desarrollar tu aplicacin en PHP. Si trabajas con
MySQL o con Oracle, debes conocer los mtodos de normalizacin del diseo de las
tablas en tu sistema de BD relacional. Estos mtodos pueden ayudarte a hacer tu cdigo
PHP ms fcil de comprender, ampliar, y en determinados casos, incluso hacer tu
aplicacin ms rpida. Bsicamente, las reglas de Normalizacin estn encaminadas a
eliminar redundancias e inconsistencias de dependencia en el diseo de las tablas
La teora de normalizacin tiene como fundamento el concepto de
formas normales; se dice que una relacin est en una determinada
forma normal si satisface un conjunto de restricciones.

Forma Normal Dominio/Llave (DK/NF)


Forma
Segunda
Primera
Tercera
Cuarte
Quinta
Normal
Forma
Forma
Forma
Forma
Boyce-Codd
Normal
Normal
Normal
Normal(5NF)
(4NF)
(3NF)
(1NF)
(2NF)
(BCNF)

Deseamos crear una tabla con la informacin de usuarios, y los datos


a guardar son el nombre, la empresa, la direccin de la empresa y
algn e-mail, o bien URL si las tienen. En principio comenzaras
definiendo la estructura de una tabla como esta:

Formalizacin CERO
Usuarios
nombre

empresa

Joe
Jill

ABC
XYZ

Direccin_empr url 1
esa
1 Work Lane
Abc.com
1 Job Street
Abc.com

url2
Xyz.com
Xyz.com

Diramos que la anterior tabla est en nivel de Formalizacin Cero


porque ninguna de nuestras reglas de normalizacin ha sido aplicada.
Observa los campos url1 y url2
Primera forma normal
Definicin formal:
Una relacin R se encuentra en 1FN si y solo s por cada rengln columna contiene
valores atmicos.
Abreviada como 1FN, se considera que una relacin se encuentra en la primera forma
normal cuando cumple lo siguiente:
1. Las celdas de las tablas poseen valores simples y no se permiten grupos ni
arreglos repetidos como valores, es decir, contienen un solo valor por cada
celda.
2. Todos los ingresos en cualquier columna (atributo) deben ser del mismo tipo.
3. Cada columna debe tener un nombre nico, el orden de las columnas en la tabla
no es importante.
4. Dos filas o renglones de una misma tabla no deben ser idnticas, aunque el
orden de las filas no es importante.

Por lo general la mayora de las relaciones cumplen con estas caractersticas, as que
podemos decir que la mayora de las relaciones se encuentran en la primera forma
normal.

Como esta relacin maneja valores atmicos, es decir un solo valor por cada uno de los
campos que conforman a los atributos de las entidades, ya se encuentra en primera
forma normal, grficamente as representamos a las relaciones en 1FN.
Segunda forma normal
Una relacin se encuentra en segunda forma normal, cuando cumple con las reglas de la
primera forma normal y todos sus atributos que no son claves (llaves) dependen por
completo de la clave. De acuerdo con esta definicin, cada tabla que tiene un atributo
nico como clave, est en segunda forma normal.
La segunda forma normal se representa por dependencias funcionales como:

Ntese que las llaves primarias estn representadas con doble cuadro, las flechas nos
indican que de estos atributos se puede referenciar a los otros atributos que dependen
funcionalmente de la llave primaria.
Dependencia transitiva: En una afinidad (tabla bidimensional) que tiene por lo menos 3
atributos (A, B, C) en donde A determina a B, B determina a C pero no
determina a A.
Tercera forma normal
Consiste en eliminar la dependencia transitiva que queda en una segunda forma normal,
en pocas palabras una relacin esta en tercera forma normal si est en segunda forma
normal y no existen dependencias transitivas entre los atributos, nos referimos a

dependencias transitivas cuando existe ms de una forma de llegar a referencias a un


atributo de una relacin.
Por ejemplo, consideremos el siguiente caso:

Tenemos la relacin alumno-cursa-materia manejada anteriormente, pero ahora


consideramos al elemento maestro, grficamente lo podemos representar de la siguiente
manera:

Podemos darnos cuenta que se encuentra graficado en segunda forma normal, es decir
que todos los atributos llave estn indicados en doble cuadro indicando los atributos que
dependen de dichas llaves, sin embargo en la llave Necono tiene como dependientes a 3
atributos en el cual el nombre puede ser referenciado por dos atributos: Necono y RFC
(Existe dependencia transitiva)
Para convertirla a tercera forma normal hay que en eliminar las dependencias transitivas
separando los atributos, entonces tenemos:

Forma normal de Boyce Codd


Determinante: Uno o ms atributos que, de manera funcional, determinan otro atributo o
atributos. En la dependencia funcional (A,B)-->C, (A,B) son los determinantes.
Denominada por sus siglas en ingls como BCNF; Una tabla se considera en esta forma
si

slo

cada

determinante

atributo

es

una

llave

candidato.

Continuando con el ejemplo anterior, si consideramos que en la entidad alumno sus


atributos control y nombre nos puede hacer referencia a los atributos esp., entonces
decimos

que

dichos

atributos

pueden

ser

llaves

candidato.

Grficamente podemos representar la forma normal de Boyce Codd de la siguiente


forma:

Obsrvese que a diferencia de la tercera forma normal, agrupamos todas las llaves
candidato para formar una global (representadas en el recuadro) las cuales hacen
referencia a los atributos que no son llaves candidato.
Cuarta forma normal
Definicin formal:
Un esquema de relaciones R est en 4FN con respecto a un conjunto D de dependencias
funcionales y de valores mltiples s, para todas las dependencias de valores mltiples

en D de la forma X->->Y, donde X<=R y Y<=R, se cumple por lo menos una de estas
condiciones:

X->->Y es una dependencia de valores mltiples trivial.


X es una superllave del esquema R.

Para entender mejor an esto consideremos una afinidad (tabla) llamada estudiante que
contiene los siguientes atributos: Clave, Especialidad, Curso tal y como se demuestra en
la siguiente figura:
Clave
S01
S01
S01
B01
C03

Especialidad
Sistemas
Bioqumica
Sistemas
Bioqumica
Civil

Curso
Natacin
Danza
Natacin
Guitarra
Natacin

Suponemos que los estudiantes pueden inscribirse en varias especialidades y en diversos


cursos. El estudiante con clave S01 tiene su especialidad en sistemas y Bioqumica y
toma los cursos de Natacin y danza, el estudiante B01 tiene la especialidad en
Bioqumica y toma el curso de Guitarra, el estudiante con clave C03 tiene la
especialidad de Civil y toma el curso de natacin.
En esta tabla o relacin no existe dependencia funcional porque los estudiantes pueden
tener distintas especialidades, un valor nico de clave puede poseer muchos valores de
especialidades al igual que de valores de cursos. Por lo tanto existe dependencia de
valores mltiples. Este tipo de dependencias produce redundancia de datos, como se
puede apreciar en la tabla anterior, en donde la clave S01 tiene tres registros para
mantener la serie de datos en forma independiente lo cual ocasiona que al realizarse una
actualizacin se requiera de demasiadas operaciones para tal fin.
Existe una dependencia de valores mltiples cuando una afinidad tiene por lo menos
tres atributos, dos de los cuales poseen valores mltiples y sus valores dependen solo
del tercer atributo, en otras palabras en la afinidad R (A, B, C) existe una dependencia
de valores mltiples si A determina valores mltiples de B, A determina valores
mltiples de C, y B y C son independientes entre s.
En la tabla anterior Clave determina valores mltiples de especialidad y clave determina
valores mltiples de curso, pero especialidad y curso son independientes entre s.
Las dependencias de valores mltiples se definen de la siguiente manera:

Clave ->->Especialidad y Clave->->Curso; Esto se lee "Clave multidetermina a


Especialidad, y clave multidetermina a Curso"
Para eliminar la redundancia de los datos, se deben eliminar las dependencias de valores
mltiples. Esto se logra construyendo dos tablas, donde cada una almacena datos para
solamente uno de los atributos de valores mltiples.
Para nuestro ejemplo, las tablas correspondientes son:
Tabla Especialidad
Clave
S01
B01
C03

Especialidad
Sistemas
Bioqumica
Civil

Tabla ECurso
Clave
S01
S01
B01
C03

Curso
Natacin
Danza
Guitarra
Natacin

Quinta forma normal


Definicin formal:
Un esquema de relaciones R est en 5FN con respecto a un conjunto D de dependencias
funcionales, de valores mltiples y de producto, si para todas las dependencias de
productos en D se cumple por lo menos una de estas condiciones:

(R1, R2, R3,... Rn) es una dependencia de producto trivial.


Toda Ri es una superllave de R.

La quinta forma normal se refiere a dependencias que son extraas. Tiene que ver con
tablas que pueden dividirse en subtablas, pero que no pueden reconstruirse.

Bibliografa
Tamez, I. F. (2003). Instituto Tecnologico de Piedras Negras. Obtenido de
http://www.geocities.ws/apuntesitpn/BD1_html/bd1_unidad4.htm

You might also like