Saltar la navegación

3. Formas Normales

Contenido

Primera Forma Normal

Una tabla está en primera forma normal (1FN) si, y sólo si, todos los dominios de sus atributos contienen valores atómicos, es decir, no hay grupos repetitivos. Un grupo repetitivo es un atributo que puede tener múltiples valores para cada fila de la relación. Son los atributos que tienen forma de tabla. Si una tabla no está en 1fn, hay que eliminar de ella los grupos repetitivos.

La forma de eliminar los grupos repetitivos consiste en poner cada uno de ellos como una tabla aparte, heredando la clave primaria de la tabla en la que se encontraban. La clave primaria de esta nueva tabla estará formada por la combinación de la clave primaria que tenía cuando era un grupo repetitivo y la clave primaria que ha heredado en forma de clave ajena. Se dice que conjunto de tablas se encuentra en 1fn si ninguna de ellas tiene grupos repetitivos. (Marqués, 2011).

Segunda Forma Normal

Una tabla está en segunda forma normal (2FN) si, y sólo si, está en 1fn y, además, cada atributo que no forma parte de la clave primaria es completamente dependiente de la clave primaria. La 2FN se aplica a las tablas que tienen claves primarias compuestas por dos o más atributos. Si una tabla está en 1fn y su clave primaria es simple (tiene un solo atributo), entonces también está en 2FN.

Las tablas que no están en 2FN pueden sufrir anomalías cuando se realizan actualizaciones sobre ellas. Para pasar una tabla en 1fn a 2FN hay que eliminar las dependencias parciales de la clave primaria. Para ello, se eliminan los atributos que son funcionalmente dependientes y se ponen en una nueva tabla con una copia de su determinante. Su determinante estará formado por los atributos de la clave primaria de los que depende. (Marqués, 2011).

Tercera Forma Normal

Una tabla está en tercera forma normal (3fn) si, y sólo si, está en 2fn y, además, cada atributo que no forma parte de la clave primaria no depende transitivamente de la clave primaria. La dependencia x −→ z es transitiva si existen las dependencias x −→ y, y −→ z, siendo x, y, z atributos o conjuntos de atributos de una misma tabla.

Aunque las relaciones en 2fn tienen menos redundancias que las relaciones en 1fn, todavía pueden sufrir anomalías frente a las actualizaciones. Para pasar una relación en 2fn a 3fn hay que eliminar las dependencias transitivas. Para ello, se eliminan los atributos que dependen transitivamente y se ponen en una nueva relación con una copia de su determinante (el atributo o atributos no clave de los que depende). (Marqués, 2011)

Forma normal de Boyce-Codd

Una tabla está en la forma normal de Boyce-Codd (BCFN) si, y sólo si, todo determinante es una clave candidata. La 2fn y la 3fn eliminan las dependencias parciales y las dependencias transitivas de la clave primaria. Pero este tipo de dependencias todavía pueden existir sobre otras claves candidatas, si éstas existen.

La BCFN es más fuerte que la 3fn, por lo tanto, toda tabla en BCFN está en 3fn. La violación de la BCFN es poco frecuente ya que se da bajo ciertas condiciones que raramente se presentan. Se debe comprobar si una tabla viola la BCFN en caso de tener dos o más claves candidatas compuestas que tienen al menos un atributo en común. (Marqués, 2011)

Cómo saber si se ha hecho bien la normalización

En primer lugar, hay que fijarse en que las dependencias funcionales no deseadas han desaparecido. Las únicas dependencias que deben quedar son las que son de la clave primaria completa.

Al normalizar una tabla (2FN y 3FN) lo que se hace es obtener distintas proyecciones de ella, para repartir sus columnas en varias tablas de modo que se eliminen las dependencias no deseadas que no son más que redundancias de datos. (Marqués, 2011)

La simplificación debe darse sin que haya perdida de información.