domingo, 13 de mayo de 2012

Ahí va, la 4FN, y la 5FN

Ronald Fagin
Llevamos un par de cursos introduciendo la cuarta y quinta formas normales. Siempre hemos dicho que esto de las formas normales, a partir de la tercera, es cosa de tesinandos que buscan la idea original que les dé la salida a su sufrimiento académico. Exagerando hasta la caricatura, claro. 

El caso es que rescato un comentario en la entrada sobre la 4FN de Wikipedia que me ha parecido curioso.(1)(2)

4NF en la práctica

Un artículo de 1992 de Margaret S. Wu observa que la enseñanza de la normalización de la base de datos se detiene típicamente justo antes de la 4NF, quizás debido a una creencia que las tablas que violan la 4NF (pero que hacen frente a todas las formas normales más bajas) son raramente encontradas en aplicaciones empresariales. Sin embargo, esta creencia puede no ser exacta. Wu reporta que en un estudio de cuarenta bases de datos de organizaciones, más del 20% contenía una o más tablas que violaban la 4NF mientras que satisfacen todas las formas normales más bajas.(3) 


Venga, supongamos que una muestra de 40 bases de datos (de ... ¿"tropecientos" millones que "andarán" por ahí?) es lo suficientemente grande como para que el dato resulte estadísticamente significativo.

Si pensamos un poco en ello, parece que todo termina por engarzarse. Decimos que una de las ventajas de modelar en Entidad-Relación (E-R) es que obtiene tablas en 3FN. Dicho así, ¿y por qué no en 5FN? Si nos detenemos un momento a observar diferencias entre la 3FN (y su hermana, la de Boyce-Codd) y las formas normales superiores, un dato interesante es que estas últimas se definen por relaciones posibles en modelo relacional (MR) pero que nunca nos saldrían de un correcto diseño en E-R. Si trabajamos directamente en MR podemos llegar a obtener estas tablas y no tienen ningún fallo aparente de diseño; E-R, simplemente, obliga a utilizar otras pautas de diseño (que no se entienda que estamos diciendo que E-R es "peor" que MR, o viceversa, que no es así).

También es notorio que la normalización hasta 3FN es sistemática, siempre das los mismos pasos hasta el resultado final que, además, es determinista, siempre obtienes la misma solución (suponiendo que las dependencias funcionales están bien definidas). Pero a partir de Boyce-Codd ya empieza la cosa a complicarse, a veces tienes que retocar tablas porque una columna se ha movido de sitio. Y en 4FN y 5FN no se generan claves ajenas, ya no se habla de proyectar (en el sentido del operador de álgebra relacional) columnas sino de "descomponer".

En realidad, los problemas resueltos por 4FN y 5FN surgen porque se han diseñado tablas que respetan la optimización de las dependencias funcionales pero en las que se detecta una cierta redundancia de datos: "estas tablas están en 3FN, están bien, pero si hago esto y lo otro...". Se trata de que, respetando los requisitos del sistema de información, se elimine todo lo que se pueda la facilidad de introducir inconsistencias en la base de datos. Con todo, la diferencia puede llegar a ser tan sutil que a veces no merece la pena ni descomponer por 4FN o 5FN, será cosa de los administradores de la base de datos decidir si se hace o no dependiendo de la cantidad de filas a manejar y de la ganancia que se pueda obtener.

Todo eso, y que los casos en que se hace necesario aplicar 4FN y 5FN son poco habituales (comparando con la 3FN) hace que sea muy goloso detenerse antes de entrar a explicar en qué consisten. En definitiva, un apunte que parece corroborar aquello de que "una cosa es la teoría y otra la práctica" pero, en este caso, parece, acercándolas la una a la otra.

(1) No, la foto no es de Margaret S. Wu.

(2) Por una vez, las versiones en español e ingles son casi idénticas. Será porque no era muy largo.

(3) Lo cierto es que no he podido comprobar la cita porque el artículo está publicado en la ACM Digital Library y hay que pagar para descargarse el artículo. Manía de los investigadores y congresistas de publicar en revistas de pago. Bueno, y mi vagancia en no buscarlo "más detenidamente" o no conectarme desde un ordenador de la UA, que está suscrita (o sea, que se paga igualmente por conocimiento supuestamente universal).