Bases de Datos: Formas Normales (Optimizar Tablas)
La normalización es un proceso que pretende conseguir tablas con una estructura óptima y eficaz. El
proceso de normalización está basado en lograr la independencia de los datos respecto a las aplicaciones
que los usan.
Antes de empezar el proceso, se han de conocer las tablas que intervendrán y las relaciones que las unen.
Si no se conocen a partir del análisis previo, se buscan todos los nombres (sustantivos) que han sido
empleados en la definición del problema. Algunos de esos nombres serán las entidades, otros dependerán
de ellas y serán los atributos. Otros no formarán parte ni de las entidades ni de los atributos, son parte del
lenguaje necesario para describir el problema a solucionar mediante la creación de una base de datos.
Ejemplo práctico.
<<...a cada cliente, al pasar por Caja... se marcan por la caja registradora los artículos
que ha comprado. Con los datos de los artículos se hace una factura por el importe
total de las mercancías adquiridas que se imprime y se entrega al cliente. Los datos de
la factura se almacenan para su posterior tratamiento informático que comprende...>>.
Las tablas son sustantivos, por lo que tenemos los siguientes: cliente, Caja, caja registradora, artículos,
datos de los artículos, factura, importe total, mercancías adquiridas, datos de la factura. De estos nombres,
algunos son atributos de otros: datos de los artículos y artículos, datos de la factura, importe total y factura.
De cada cliente no se piden datos, por lo que aunque sea una tabla, si no se necesitan sus datos, no se
creará esa entidad. Caja con mayúscula se refiere a un objeto con el que se realizan procesos, por lo que
no se necesita almacenar información de ellos. De cada una de las cajas registradoras, tal vez se necesite
para las facturas, el número de caja, por lo que se considera una entidad más. Mercancías adquiridas y
artículos que ha comprado son sinónimos, por lo que solo se tratará de artículos.
Las tablas encontradas tras el análisis son: artículos, factura y caja registradora. Caja registradora se puede
considerar un atributo de factura, por lo que tenemos dos tablas.
Las relaciones se pueden encontrar conociendo todos los verbos que aparecen en la definición del
problema. Se eliminan aquellos verbos que son necesarios para el lenguaje y se buscan aquellos que
implican dos o más entidades (sustantivos) que ya se han encontrado.
En el ejemplo han aparecido los verbos: pasar, se marcan, ha comprado, se hace una factura, imprime,
entrega, almacena. De estos verbos, los que asocian entidades son: marcar, comprar. Los verbos pasar,
hacer factura, imprimir, entregar, almacenar, se refieren a procesos que se van a realizar, no a asociaciones
entre entidades.
Se han obtenido las siguientes entidades con sus relaciones: clientes, comprar artículos y marcar artículos
en factura. Como no se necesitan los datos de los clientes, queda la relación marcada (en la caja
registradora) que une las tablas artículos, y factura. La operación marcar en la caja registradora significa
que los artículos se incluyen en una factura que se entregará al cliente para su liquidación, consiguiéndose
obtener el modelo entidad-relación siguiente:
Hay cinco niveles de normalización, siendo cada vez más complejo el proceso de obtención de tablas
normalizadas. Para bases de datos relativamente sencillas se puede terminar la normalización en el tercer
nivel o tercera forma normal.
El proceso de normalización se basa en la descomposición sin pérdida de las tablas que están en una forma
normal inferior, obteniéndose una forma normal superior. El proceso de descomposición sin pérdida,
significa que se ha de dividir o descomponer la tabla en otras con menor cantidad de atributos sin que haya
perdida de información.
Formas normales y dependencias funcionales.
Primera Forma Normal o 1FN:
La Primera Forma Normal, o 1FN, es la más elemental de todas. Una tabla está en 1FN si el valor que
contiene un atributo de un registro, un campo, es único y elemental. En cada uno de los atributos sólo se
puede incluir un dato, aunque sea compuesto, pero no se pueden incluir una lista de datos. Por ejemplo, no
se pueden incluir en el atributo Dirección el domicilio habitual y el de vacaciones; habría que crear dos
registros que se diferenciarán por el atributo Dirección:
Tabla de una base de datos
NIF Ape Nom Dir CPost Pobl Prov
1 García Francisco C/Marín 16 33698 Oviedo Asturias
2 Sanchez Luisa C/Tenerías 34
C/Ramorta 65
85458
54585
Cigales
Bueu
Valladolid
Pontevedra
Esta tabla no está en 1FN, ya que el cliente con Id 2 tiene dos direcciones. Para poder tener esta tabla en
1FN se hace el siguiente cambio:
Tabla de una base de datos
NIF Ape Nom Dir CPost Pobl Prov
1 García Francisco C/Marín 16 33698 Oviedo Asturias
2 Sanchez Luisa C/Tenerías 34 85458 Cigales Valladolid
2 Sanchez Luisa C/Ramorta 65 54585 Bueu Pontevedra
Segunda Forma Normal o 2FN:
Se dice que un atributo o conjunto de atributos tiene dependencia funcional de otro u otros si a cada uno de
los primeros le corresponde sólo uno de los segundos.
Por ejemplo, hay una dependencia funcional entre CIF y el atributo Razón Social, ya que a cada CIF le
corresponde una única Razón Social.
Una tabla está en Segunda Forma Normal o 2FN cuando está en 1FN y todo atributo que no pertenece a la
clave primaria tiene una dependencia funcional de la clave completa y no de parte de ella. Luego, si la clave
principal está formada por un solo atributo y ya está en 1FN, ya estará en 2FN.
Para transformar una tabla con dependencias funcionales, cuya clave está formada por más de un campo,
en una tabla en 2FN se necesitan crear tablas nuevas para eliminar las dependencias funcionales, las tablas
nuevas tendrán los atributos que dependen funcionalmente de la clave y los que forman la parte de la clave
de la que dependen. Una vez creadas las nuevas tablas, se eliminan de la tabla primera los atributos que
tenían dependencias funcionales.
En el ejemplo anterior, tanto el nombre como los apellidos dependen del NIF. Se crea una nueva tabla que
contiene los atributos: NIF, nombre y apellidos, eliminándose de la tabla cliente los atributos nombre y
apellidos, quedando las siguientes tablas:
Tabla en segunda forma normal
NIF Dir CPost Pobl Prov
1 C/ Marín nº16 33698 Oviedo Asturias
2 C/ Tenerías nº34 85458 Cigales Valladolid
2 C/ Ramorta nº65 54585 Bueu Pontevedra
Tabla en segunda forma normal
NIF Ape Nom
1 García Francisco
2 Sanchez Luisa
Tercera Forma Normal o 3FN:
Se dice que hay dependencia funcional transitiva entre dos atributos cuando un atributo que no pertenece a
la clave primaria permite conocer el valor de otro atributo.
Por ejemplo: dada la tabla clientes, entre los atributos provincia y prefijo telefónico hay una dependencia
funcional transitiva, ya que el primero permite conocer el valor del segundo.
Una tabla está en Tercera Forma Normal o 3FN si está en 2FN y no existen atributos que no pertenezcan a
la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria,
es decir, no hay dependencias funcionales transitivas.
Siguiendo con el ejemplo anterior, cuando hay dependencias funcionales transitivas, se crea una nueva
tabla con los atributos que tienen dependencia funcional transitiva, eliminándose el atributo dependiente de
la tabla original.
Si nos fijamos en esta tabla:
Tabla en segunda forma normal
NIF Dir CPost Pobl Prov
1 C/ Marín nº16 33698 Oviedo Asturias
2 C/ Tenerías nº34 85458 Cigales Valladolid
jueves, 23 de julio de 2009
Suscribirse a:
Enviar comentarios (Atom)
El articulo anterior trata sobre los 5 pasos para normalizar una base de datos, en resumen son los siguientes:
ResponderEliminar1. Para que una base de datos este en primera forma normal es necesario verificar que los atributos de la base de datos corresponda solo a un dato, como decia el ejemplo, que el atributo direccion corresponde a solo al de residencia de la persona mas no el de las vacaciones.
2. La segunda forma normal es la de integridad referencial, que significa que todos los atributos de las tablas deben de estar relaconadas con la misma, es decir que los atributos de la tabla si correspondan a la misma....
3. La tercera forma normal es la de clave primaria, que significa que toda tabla debe tener aunque sea una clave primaria que permita la relación con otras tablas....
4. La cuarta formal normal es la de la transitividad, que significa que cuando una tabla A esta relacionada con una B y la B esta relacionada con la C la A no necesita relacionarse con la C por que ya hay una coneccion entre ellas por medio de la B.....
5. Y por ultimo la quinta forma normal es que se debe definir una metodologia o sinta xispara darle los atributos a la base de datos.
Gabriel Esteban Gonzalez Aislant
me parece que le hacen falta campos a las tablas expuestas y la tabla actor a mi parecer,no es necesaria por que la mayoria de las peliculas adoptan dos o tres actores principales y los usuarios se connfundirían bastante, en el tema de las consultas en caso de consultar la disponibilidad u otra cosa.
ResponderEliminarel texto anterior habla de las formas normales.
ResponderEliminarla primera habla de evitar redundancia entre los datos.
la segunda se llama integridad referencial, y trata de que todos los campos de una tabla deben estar relacionados con la misma.
la tercera se llama clave primaria y trata de que toda tabla debe de tener una clave primaria que la identifique.
la cuarta se llama transitividad y trata de uqe si una tabla A se relaciona con un atabla B y la tabla B se relaciona con un atabla C entonces por la norma de transitividad la tabla A ya esta relacionada con la tabla B.
y la quinta forma normal es que cada relación de dependencia se encuentra definida por las claves candidatas.
jenny montoya 20176