Você está na página 1de 7

NORMALIZACIÓN DE BASES DE DATOS

Que es: Normalización es un conjunto de reglas que sirven para ayudar a los
diseñadores a desarrollar un esquema que minimice los problemas de lógica.
Cada regla está basada en la que le antecede. La normalización 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 conducía a errores de lógica cuando se
trataba de manipular los datos. Por ejemplo, vea la base de datos MiTienda. Si
almacena todos los datos en la tabla Clientes, ésta podría verse como se muestra
a continuación:

Consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo
entidad-relación al modelo relacional.

Las bases de datos relacionales se normalizan para:

 Evitar la redundancia de los datos.


 Evitar problemas de actualización de los datos en las tablas.
 Proteger la integridad de los datos.

En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla
sea considerada como una relación tiene que cumplir con algunas restricciones:

 Cada columna debe tener su nombre único.


 No puede haber dos filas iguales. No se permiten los duplicados.
 Todos los datos en una columna deben ser del mismo tipo.

PARA QUE SE UTILIZA:

Según la ISO (International Organization for Standarization) la Normalización es la


actividad que tiene por objeto establecer, ante problemas reales o potenciales, disposiciones
destinadas a usos comunes y repetidos, con el fin de obtener un nivel de ordenamiento
óptimo en un contexto dado, que puede ser tecnológico, político o económico.

La normalización persigue fundamentalmente tres objetivos:

 Simplificación: Se trata de reducir los modelos quedándose únicamente con los más
necesarios.
 Unificación: Para permitir la intercambiabilidad a nivel internacional.
 Especificación: Se persigue evitar errores de identificación creando un lenguaje
claro y preciso
Las elevadas sumas de dinero que los países desarrollados invierten en los organismos
normalizadores, tanto nacionales como internacionales, es una prueba de la importancia que
se da a la normalización.

1ra FORMA NORMAL:

Una tabla está en Primera Forma Normal si:

 Todos los atributos son atómicos. Un atributo es atómico si los elementos del
dominio son indivisibles, mínimos.
 La tabla contiene una clave primaria.
 La clave primaria no contiene atributos nulos.
 No debe de existir variación en el número de columnas.

Una columna no puede tener múltiples valores. Los datos son atómicos. (Si a cada valor de
X le pertenece un valor de Y, entonces a cada valor de Y le pertenece un valor de X)

Esta forma normal elimina los valores repetidos dentro de una BD

2da FORMA NORMAL: Dependencia Funcional. Una relación está en 2FN si está
en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma
completa de la clave principal. Es decir que no existen dependencias parciales.

En otras palabras podríamos decir que la segunda forma normal está basada en el concepto
de dependencia completamente funcional. Una dependencia funcional es
completamente funcional si al eliminar los atributos A de X significa que la dependencia no
es mantenida, esto es que A Є X, (X – {A}) -x-> Y. Una dependencia funcional es
una dependencia parcial si hay algunos atributos que pueden ser eliminados de X y
la dependencia todavía se mantiene, esto es A Є X, (X – {A}) -> Y.

Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado


y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado
en dicho proyecto) es completamente dependiente dado que ni DNI
HORAS_TRABAJO ni ID_PROYECTO HORAS_TRABAJO mantienen la
dependencia. Sin embargo {DNI, ID_PROYECTO} NOMBRE_EMPLEADO es
parcialmente dependiente dado que DNI NOMBRE_EMPLEADO mantiene la
dependencia.

3ra FORMA NORMAL:


La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional
transitiva entre los atributos que no son clave.

Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de
relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un
subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.

Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en


EMP_DEPT de la siguiente figura. Decimos que la dependencia de DMGRSSN el atributo
clave SSN es transitiva vía DNUMBER porque las dependencias SSN→DNUMBER y
DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjunto de la clave
de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre
DNUMBER es indeseable en EMP_DEPT dado que DNUMBER no es una clave de
EMP_DEPT.

DE UN EJEMPLO DE NORMALIZACION:

A través del siguiente ejercicio se intenta afirmar los conocimientos de normalización con
un ejemplo simplificado de una base de datos para una pequeña biblioteca.

CodLibro Titulo Autor Editorial NombreLector FechaDev


1001 Variable compleja Murray Spiegel McGraw Hill Pérez Gómez, Juan 15/04/2005
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005
1005 Estadística Murray Spiegel McGraw Hill Roca, René 16/04/2005
Nancy Greenberg García Roque,
1006 Oracle University Oracle Corp. 20/04/2005
y Priya Nathan Luis
1007 Clipper 5.01 Ramalho McGraw Hill Pérez Gómez, Juan 18/04/2005

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.

1NF
CodLibro Titulo Autor Editorial Paterno Materno Nombres FechaDev
Variable McGraw
1001 Murray Spiegel Pérez Gómez Juan 15/04/2005
compleja Hill
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán Ana 17/04/2005
CodLibro Titulo Autor Editorial Paterno Materno Nombres FechaDev
McGraw
1005 Estadística Murray Spiegel Roca René 16/04/2005
Hill
Nancy
1006 Oracle University Oracle Corp. García Roque Luis 20/04/2005
Greenberg
1006 Oracle University Priya Nathan Oracle Corp. García Roque Luis 20/04/2005
McGraw
1007 Clipper 5.01 Ramalho Pérez Gómez Juan 18/04/2005
Hill

Como se puede ver, hay cierta redundancia característica 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 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.

2NF
CodLibro Titulo Autor Editorial
McGraw
1001 Variable compleja Murray Spiegel
Hill
1004 Visual Basic 5 E. Petroustsos Anaya
McGraw
1005 Estadística Murray Spiegel
Hill
Nancy Oracle
1006 Oracle University
Greenberg Corp.
Oracle
1006 Oracle University Priya Nathan
Corp.
McGraw
1007 Clipper 5.01 Ramalho
Hill

La nueva tabla sólo contendrá datos del lector.

CodLector Paterno Materno Nombres


501 Pérez Gómez Juan
502 Ríos Terán Ana
CodLector Paterno Materno Nombres
503 Roca René
504 García Roque Luis

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/2005
1004 502 17/04/2005
1005 503 16/04/2005
1006 504 20/04/2005
1007 501 18/04/2005

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
1005 Estadística
1006 Oracle University
1007 Clipper 5.01
CodAutor Autor
801 Murray Spiegel
802 E. Petroustsos
803 Nancy Greenberg
804 Priya Nathan
806 Ramalho 3NF
CodEditorial Editorial
901 McGraw Hill
902 Anaya
903 Oracle Corp.

Aunque hemos creado nuevas tablas para que cada CodLibro codEditorial una
tenga sólo información acerca de una entidad, también
hemos perdido la información acerca de qué autor ha 1001 901 escrito
qué libro y las editoriales correspondientes, por lo 1004 902 que
debemos crear otras tablas que relacionen cada libro con sus
1005 901
autores y editoriales.
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 modificación.


CodLector Paterno Materno Nombres CodLibro CodLector FechaDev
501 Pérez Gómez Juan
1001 501 15/04/2005
502 Ríos Terán Ana
1004 502 17/04/2005
503 Roca René 1005 503 16/04/2005
504 García Roque Luis 1006 504 20/04/2005
1007 501 18/04/2005

PRESENTADO POR:

ELKIN ARLEY CALLE GRAJALES


JOSE LUIS RODRIGUEZ

Estudiantes programación y sistemas Cuarto Semestre

Você também pode gostar