Normalización de bases de datos (Parte 5): Cuarta Forma de Normalización (4NF)


Hasta ahora ya hemos andado el camino de la Primera Forma de Normalización (1NF), la Segunda Forma de Normalización (2NF), la Tercera Forma de Normalización (3NF) y la Forma de Normalización Boyce-Codd (BCNF). En esta ocasión vamos a analizar la Cuarta Forma de Normalización (4NF). Por lo general, cuando las bases de datos cumplen hasta con la 4NF ya están bastante bien normalizadas. Las siguientes formas de normalización se dan en circunstancias bastante especiales, pero, como en todo, es posible que ocurran. Para poderse cumplir, la 4NF debe satisfacer las siguientes condiciones:
  1. Debería cumplir con la Forma de normalización Boyce-Codd (BCNF) y, por ende, la 3NF.
  2. Y las tablas no deberían tener dependencias multivalor.
Lo anterior significa que una tabla viola el estándar de la 4NF dado que genera redundancias innecesarias que pueden contribuir a tener datos inconsistentes. Para que, entonces, la tabla cumpla con la 4NF hay que escindirla en dos tablas.

Cabe hacer notar que para que una tabla pueda romper con la 4NF al menos debe tener tres columnas o campos: A, B y C, donde A->B y A->C, sin embargo B y C son independientes entre sí. Ahora bien, cuando se rompe 4NF es cuando A->>B, es decir, que para cada valor de A hay más de un valor de B y A->>C, es decir que también por cada valor de A hay más de un valor de C.

Como ejemplo, tenemos la siguiente tabla:
Áreas de reparto
PizzeríaVariedad de PizzaÁrea de entrega
PizzaPlanetaPan GruesoCentro
PizzaPlanetaPan GruesoGuerrero
PizzaPlanetaPan GruesoJuárez
PizzaPlanetaPan RellenoCentro
PizzaPlanetaPan RellenoGuerrero
PizzaPlanetaPan RellenoJuárez
PizzasToñoPan DelgadoJuárez
PizzasToñoPan RellenoJuárez
PizzasLorenaPan GruesoCentro
PizzasLorenaPan GruesoGuerrero
PizzasLorenaPan DelgadoCentro
PizzasLorenaPan Delgado
Guerrero

En esta tabla, cada pizzería puede entregar cierta variedad de pizza en cierta área. Esta tabla cumple hasta con BCNF y todos los atributos conforman a la Clave principal. No obstante, si asumimos que las variedades de pizza ofrecidas por una pizzería no están afectadas por el área de entrega (es decir, que un restaurante ofrece todas las variedades de pizza en todas las áreas que atiende), entonces, no cumpliría con la 4NF. El verdadero problema está en que esta tabla tiene dos dependencias con múltiples valores. Estas dependencias son: Restaurante ->> Variedad de Pizza, y Restaurant ->> Área de entrega. Variedad de Pizza y Área de entrega son independientes entre sí. Esto trae consigo redundancia en la tabla que podría traer resultados desastrosos a la hora de darle mantenimiento a la tabla. Es decir, si agregaremos un pan de queso a PizzaPlaneta, tendremos que agregarlo a todas las zonas y, quizá, podríamos errar al agregar todas las áreas de reparto.

Para que esto se resuelva, necesitaremos escindir ésta en dos tablas:

Variedades por pizzería
PizzeríaVariedad de pizza
PizzaPlanetaPan Grueso
PizzaPlanetaPan Relleno
PizzasToñoPan Delgado
PizzasToñoPan Relleno
PizzasLorenaPan Grueso
PizzasLorenaPan Delgado
Áreas de entrega por pizzería
PizzeríaÁrea de entrega
PizzaPlanetaCentro
PizzaPlanetaGuerrero
PizzaPlanetaJuárez
PizzasToñoJuárez
PizzasLorenaCentro
PizzasLorenaGuerrero











Si se requiriera que una pizza ofrecida sólo variase de un área de entrega a la otra, entonces la tabla original de tres columnas satisfaría la 4NF.

A estas alturas, nuestra tabla de Códigos Postales cumple con 4NF. Una vez que una tabla cumple con 4NF es muy difícil que no cumpla con 5NF, pero existe el caso.

Otro de los detalles que son propios de 4NF es evitar que se almacenen datos originados por cálculos en las tablas. Estos datos podrían fácilmente desincronizarse de las tablas si alguno de los valores que se han calculado, cambian. El resultado podría ser desastroso.

Ya veremos de qué se trata 5NF, que sería la última Forma de normalización estándar. ¡Nos seguimos leyendo!


Comentarios

Entradas más populares de este blog

Toshiba Satellite T215-SP1004M

Consecuencias de la falta de mantenimiento en el equipo de cómputo

Normalización de bases de datos (Parte 6 y última): Quinta y sexta formas de normalización (5NF) (6NF)