Normalización de bases de datos
La normalización es el proceso, dentro del diseño lógico del modelo relacional, que consiste en organizar los datos en tablas (relaciones) para eliminar la redundancia y las dependencias no deseadas, evitando la duplicidad de datos y garantizando la integridad. Su objetivo principal es eliminar redundancias y garantizar la integridad de los datos; dicho de otro modo, el principal problema que busca resolver es la redundancia de datos. Como técnica del diseño lógico relacional, asegura que las relaciones (tablas) del modelo no contengan datos redundantes y organiza los datos en grupos lógicos, cada uno describiendo una pequeña parte del todo.
La normalización debe abordarse en el momento adecuado: antes de crear las tablas, tras haber realizado un análisis de requisitos. Es una técnica propia del diseño lógico previa a la implementación física.
Por qué normalizar: anomalías y consecuencias
Una base de datos mal normalizada sufre anomalías. Las tres anomalías clásicas son de inserción, actualización y borrado (la denominada anomalía de actualización es una de las más citadas). No existe la anomalía de consulta: consultar no modifica datos, por lo que la «anomalía de consulta» NO es un tipo de anomalía de una base de datos sin normalizar.
Las consecuencias principales de que una base de datos NO esté normalizada adecuadamente son errores de inconsistencias, incoherencias, actualización y redundancia de datos, además de inexactitud de los sistemas de bases de datos (todas las anteriores). En cambio, garantizar la disponibilidad de la base de datos NO es una consecuencia de la falta de normalización. Normalizar correctamente evita errores de inconsistencias, incoherencias, actualización y redundancia, y por ello mejora la eficiencia y la integridad, algo especialmente relevante en el procesamiento transaccional en línea (OLTP).
Importante: entre los objetivos de la normalización NO figura mejorar el rendimiento; de hecho descomponer en más tablas puede exigir más reuniones. Tampoco es cierto que la normalización minimice las relaciones entre tablas (esa afirmación es INCORRECTA): la normalización descompone en más relaciones bien formadas.
Dependencia funcional
La dependencia funcional es la relación en la que el valor de una columna (o conjunto de columnas) determina de manera única el valor de otra columna dentro de la misma tabla. Según Métrica v3: «un atributo Y se dice que depende funcionalmente de otro X si, y sólo si, a cada valor de X le corresponde un único valor de Y» (se escribe X → Y; X es el determinante o implicante). Un atributo Y tiene dependencia funcional completa respecto de X si depende de él en su totalidad y no de una parte de X.
Las formas normales
Las formas normales más comunes son la primera, segunda y tercera (1FN, 2FN y 3FN). En la práctica, la 3FN es la que ofrece el mejor equilibrio entre eliminación de redundancia y eficiencia, y es la generalmente recomendada en el diseño relacional.
Primera Forma Normal (1FN)
Una relación está en 1FN si no tiene grupos repetitivos: cada atributo toma un único valor de un dominio simple. Aplicar la 1FN supone la eliminación de atributos multivaluados (y de grupos repetitivos).
Segunda Forma Normal (2FN)
La 2FN elimina las dependencias parciales. Según Métrica v3: «una entidad está en 2FN si está en 1FN y todos los atributos que no forman parte de las claves candidatas tienen dependencia funcional completa respecto de éstas». Es decir, se alcanza la 2FN cuando todos los atributos dependen funcionalmente de la totalidad de las claves candidatas (no de una parte).
Tercera Forma Normal (3FN)
La 3FN elimina las dependencias transitivas. Una relación está en 3FN si está en 2FN y ningún atributo no primario depende transitivamente de otros atributos no clave; equivalentemente, todos los atributos no principales dependen directamente de la clave y no existen dependencias funcionales transitivas. Ante FDs como F = {AB→C, BC→AD, CD→E} sobre R(A,B,C,D,E), la descomposición en 3FN preserva las dependencias generando una relación por cada dependencia: R1(A,B,C), R2(B,C,A,D) y R3(C,D,E).
Forma Normal de Boyce-Codd (FNBC)
Una tabla está en FNBC si está en 3FN y cada dependencia funcional no trivial tiene una clave candidata como determinante. Es una versión más estricta de la 3FN.
Cuarta Forma Normal (4FN) y dependencia multivaluada
La 4FN se apoya en la dependencia multivaluada: existe cuando hay una restricción entre dos conjuntos de atributos de una relación que exige que ciertas tuplas estén presentes en ella (un valor de X determina un conjunto de valores de Y con independencia del resto de atributos). Una relación en 4FN está en FNBC y no contiene dependencias multivaluadas no triviales.
Quinta Forma Normal (5FN) y dependencia de reunión
Cuando una relación puede reconstruirse sin pérdida de información a partir de la combinación de algunas de sus proyecciones, se dice que tiene una dependencia de reunión (join). Una tabla está en 5FN si, y sólo si, está en 4FN y no existen dependencias de reunión (join) no triviales que no se generen desde las claves (candidatas).
Desnormalización
La desnormalización es el proceso inverso: introduce redundancia de forma controlada. Mientras la normalización elimina redundancias, la desnormalización las introduce para mejorar el rendimiento en ciertas situaciones (por ejemplo, reducir reuniones en entornos de consulta intensiva).
Fuentes
-
Ministerio de Hacienda / MAP — Métrica Versión 3, técnica de Normalización (definiciones oficiales de dependencia funcional, dependencia funcional completa, 1FN, 2FN y 3FN). Alojamiento académico del texto oficial: https://alarcos.esi.uclm.es/ipsw/metrica3/metrica_3/guidances/guidelines/normalizacion_AF788CBF.html
-
Métrica v3 — Técnica de Normalización (referencia consolidada): https://manuel.cillero.es/doc/metodologia/metrica-3/tecnicas/normalizacion/
-
Portal de Administración Electrónica (PAe), Gobierno de España — Metodología Métrica v3: https://administracionelectronica.gob.es/pae_Home/pae_Documentacion/pae_Metodolog/pae_Metrica_v3.html