Está en la página 1de 6

Normalización de Base de datos

Ing.doc: Ing.Est:
Rodolfo Garcia Reynel Barrios
C.I: 31.120.085
Normalización de bases de datos.

Para mejorar el desempeño de una base de datos, así como evitar redundancia en
la información que contiene y, en consecuencia, generar condiciones para un
mejor diseño, el analista de sistemas debe conocer las formas de normalización y
condiciones en las que la desnormalización es recomendable.

En este tema se abordarán aspectos conceptuales básicos relacionados con las


formas de normalización, generalmente utilizadas en el análisis, desarrollo e
implementación de sistemas de bases de datos (1FN, 2FN y 3FN); además,
particularidades y consideraciones que el analista deberá evaluar para decidir
normalizar a mayor grado una base de datos, mantener su forma normal actual o
la desnormalización en un modelo relacional.

FN1

La primera regla de normalización se expresa generalmente en forma de dos


indicaciones separadas.

1. Todos los atributos, valores almacenados en las columnas, deben ser


indivisibles.

2. No deben existir grupos de valores repetidos.

El valor de una columna debe ser una entidad atómica, indivisible, excluyendo


así las dificultades que podría conllevar el tratamiento de un dato formado de
varias partes.

FN2

Además de cumplir con las dos reglas del punto previo, la segunda forma normal
añade la necesidad de que no existan dependencias funcionales parciales. Esto
significa que todos los valores de las columnas de una fila deben depender de la
clave primaria de dicha fila, entendiendo por clave primaria los valores de todas
las columnas que la formen, en caso de ser más de una.
Las tablas que están ajustadas a la primera forma normal, y además disponen de
una clave primaria formada por una única columna con un valor indivisible,
cumplen ya con la segunda forma normal. Ésta afecta exclusivamente a las tablas
en las que la clave primaria está formada por los valores de dos o más columnas,
debiendo asegurarse, en este caso, que todas las demás columnas son accesibles
a través de la clave completa y nunca mediante una parte de esa clave.

FN3

En cuanto a la tercera forma normal, ésta indica que no deben existir


dependencias transitivas entre las columnas de una tabla, lo cual significa que las
columnas que no forman parte de la clave primaria deben depender sólo de la
clave, nunca de otra columna no clave..

Desnormalización

Las reglas de normalización no consideran el rendimiento. En algunos casos es


necesario considerar la desnormalización para mejorar el rendimiento.
La desnormalización es la duplicación intencionada de columnas en varias tablas,
lo cual aumenta la redundancia de datos.

La normalización crea más tablas al avanzar hacia formas normales más altas, sin
embargo, a mayor número de tablas, mayor número de combinaciones al
recuperar los datos; lo que contribuye a la ralentización de las consultas. Por esta
razón, para mejorar la velocidad de determinadas consultas, se pueden anular las
ventajas de la integridad de datos y devolver la estructura de los datos a una
forma normal inferior.

Adicionalmente, Coronel, Morris y Rob (2011), al referir al proceso de


desnormalización, señalan que la unión de muchas tablas requiere operaciones de
entrada/salida (I/O) y lógica de procesamiento adicional en el disco, con lo que se
reduce la velocidad del sistema. Por lo tanto, pueden existir circunstancias
fortuitas que permitan algún grado de desnormalización para incrementar la
velocidad de procesamiento. Debemos tomar en cuenta que la ventaja de una
mayor velocidad de procesamiento debe evaluarse cuidadosamente contra la
desventaja de datos anómalos.

En conclusión
La normalización es una técnica utilizada para diseñar tablas en las que las
redundancias de datos se reducen al mínimo. Las primeras tres formas normales
(1FN, 2FN y 3FN) son las más utilizadas. Desde un punto de vista estructural, las
formas de mayor nivel son mejores que las de menor nivel, porque aquellas
producen relativamente pocas redundancias de datos en la base de datos. En
otras palabras, 3FN es mejor que 2FN y ésta, a su vez, es mejor que 1FN. Casi
todos los diseños de negocios utilizan la 3FN como forma ideal.

Ejercicio resuelto.
En un hotel se necesita tener una base de datos completa con el registro de
clientes que tiene el (hotel la gran savana)
tabla de clientes
fech ID NOMBR Id. TLF ID. HAB. Dia preci
a clien E HA s o
pago
t B
02/02 2301 Juan 0012 01020305055 001 pequeñ 2 10$
a
02/02 2302 Marisol 2589 01022255256 003 median 1 10$
a
03/02 2303 Mario 4512 01025585596 027 median 3 30$
a
04/02 2301 Juan 4714 01020305055 001 pequeñ 3 15$
a
08/02 2309 pablo 2352 01020333554 027 grande 5 100$

Aplicando la FN1 que dice que no pueden haber grupos repetidos decimos que:
 Eliminamos los grupos repetidos como idhab,hab,días,precios
 Los colocamos en una tabla pk aparte.
habitaciones
ID HAB. HABITACION DIAS PRECIO
001 pequeña 2 10$
003 mediana 1 10$
027 mediana 3 30$
001 pequeña 3 15$
027 grande 5 100$

Clientes
fech ID NOMBRE TLF Id.
a client
pago
02/02 2301 Juan 01020305055 0012
02/02 2302 Marisol 01022255256 2589
03/02 2303 Mario 01025585596 4512
04/02 2301 Juan 01020305055 4714
08/02 2309 pablo 01020333554 2352

Aplicando la FN2 que dice: eliminar cualquier columna no llave que no dependa
de la llave primaria de la tabla. Los pasos a seguir son: Determinar cuáles
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.
habitacion
HABITACION DIAS PRECIO
pequeña 2 10$
mediana 1 10$
mediana 3 30$
pequeña 3 15$
grande 5 100$
Precios
ID HAB. DIAS PRECIO
001 2 10$
003 1 10$
027 3 30$
001 3 15$
027 5 100$

La tercera forma normal nos dice que tenemos que eliminar cualquier columna
no llave que sea dependiente de otra columna no llave.
Nuestra base de datos quedaría asi:
cliente
ID NOMBRE TLF
client
2301 Juan 01020305055
2302 Marisol 01022255256
2303 Mario 01025585596
2301 Juan 01020305055
2309 pablo 01020333554

Pago
fech ID Id.
a client
pago
02/02 2301 0012
02/02 2302 2589
03/02 2303 4512
04/02 2301 4714
08/02 2309 2352

También podría gustarte