Formas normales para bases de datos con ejemplos

Solo disponible en BuenasTareas
  • Páginas : 5 (1123 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de noviembre de 2010
Leer documento completo
Vista previa del texto
DESCOMPOSICION
La Normalización sugiere un proceso de descomposición, lo que significa cambio de un atributo a una tabla ya existente o a una nueva tabla. Un mal diseño sugiere que se deben descomponer los esquemas de la relación que tienen muchos atributos en varios esquemas con menos atributos.
Este tiene dos propiedades:
1.- No pérdida de información.
2.- No pérdidas de dependenciasfuncionales

FORMAS NORMALES
PRIMERA FORMA NORMAL (1FN)
Una relación R se encuentra en 1FN si y solo si para cada atributo existe un valor atómico (indivisible) y por cada relación o tabla se puede identificar, al menos uno de sus atributos como llave primaria (PRIMARY KEY).
Ejemplo
Por ejemplo, no se pueden incluir en el atributo Dirección el domicilio habitual y el de vacaciones; habría quecrear dos registros que se diferenciarán por el atributo Dirección:

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:

SEGUNDA FORMA NORMAL (2FN)
Una relación R esta en 2FN si y solo si están en 1FN y los atributos no llave dependen funcionalmente de la llave primaria.

Ejemplo
En el ejemploanterior, 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:

TERCERA FORMA NORMAL (3FN)
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 puedanser conocidos mediante otro atributo que no forma parte de la clave primaria, es decir, no hay dependencias funcionales transitivas.

Ejemplo
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 estatabla:

La dirección, la población y la provincia dependen del código postal, que no forma parte de la clave primaria. Descomponiendo sin pérdida una vez más, obtenemos estas dos tablas:

Para solucionar algunos problemas de dependencias funcionales, que no se podían resolver solo con la normalización en 3FN, se han propuesto tres formas normales adicionales. La normalización más allá de 3FN quedaal juicio del diseñador de la base de datos. A partir de esa forma normal, la eliminación de dependencias funcionales pasa por la creación de tablas con multitud de información redundante, con un posible aumento de tamaño, por lo que se ha de optar entre una optimización del diseño y una optimización del tamaño. Llegándose a diversas soluciones de compromiso entre ambos parámetros. Salvoexcepciones, con la 3FN o a lo sumo, la FNBC (que veremos a continuación) es más que suficiente, y llevar la normalización más allá será más perjudicial que beneficioso.

Forma Normal de Boyce-Codd o FNBC:
Una tabla está en Forma Normal de Boyce-Codd o FNBC si solo existen dependencias funcionales elementales que dependan de la clave primaria o de cualquier clave alternativa. Si la clave primaria estáformada por un solo atributo y está en 3FN, ya está en FNBC.

Un ejemplo típico para mostrar una tabla que, estando en 3FN, mantiene dependencias funcionales, sin relación con el ejemplo seguido hasta este momento, es una tabla que posee los atributos dirección, código postal y población, suponiendo que a poblaciones diferentes le corresponden códigos postales distintos.

En este caso haydependencia entre el código postal y la población, ya que, conocido el código postal se puede conocer la población, y conocida la dirección y la población, se conoce el código postal. Para transformar la tabla en una tabla en FNBC se crea una tabla de códigos postales y poblaciones, eliminando de la tabla original la población, obteniéndose dos tablas, una con los atributos dirección y código postal...
tracking img