Tercera Forma Normal (3FN): Definición, reglas y ejemplos en bases de datos

Tercera Forma Normal (3FN): guía clara con definición, reglas y ejemplos prácticos para normalizar tablas en bases de datos y evitar redundancias y anomalías.

Autor: Leandro Alegsa

La tercera forma normal (3NF) es una propiedad de un modelo relacional, concretamente de las tablas, que constituye un criterio de normalización de las bases de datos.

El primer criterio para ser tercera forma normal es que la tabla sea segunda forma normal.

Dentro de una tabla que está en tercera forma normal, los datos de cada columna de cada fila dependen sólo de las columnas que forman parte de la clave primaria. Una clave primaria es una o más columnas de una fila que se utiliza para identificar e indexar esa fila de la tabla. Las columnas que no están relacionadas con ninguna columna de la clave primaria se eliminan.

Definición formal

Una relación R está en tercera forma normal (3NF) si, para toda dependencia funcional no trivial X → A que se cumpla en R, se verifica al menos una de las siguientes condiciones:

  • X es una superclave de R (es decir, X determina toda la tupla), o
  • A es un atributo primo (es decir, A forma parte de alguna clave candidata de R).

De forma práctica, esto se traduce en eliminar las dependencias transitivas entre atributos no clave: ningún atributo no primo debe depender de otro atributo no primo a través de una cadena de dependencias.

Reglas y criterios

  • La tabla debe estar en segunda forma normal (2NF) (es decir, sin dependencias parciales sobre partes de una clave compuesta).
  • No deben existir dependencias transitivas en las que un atributo no clave determine a otro atributo no clave.
  • Las claves candidatas y la clave primaria deben estar claramente identificadas.
  • La descomposición que se haga para alcanzar 3NF debe ser sin pérdida de información (lossless) y, preferiblemente, mantener la preservación de dependencias.

Ejemplo práctico

Situación inicial: tabla Empleados(EmpID, Nombre, DeptID, DeptNombre)

Dependencias funcionales reales:

  • EmpID → Nombre, DeptID
  • DeptID → DeptNombre

Observación: DeptNombre depende de DeptID, que a su vez depende de EmpID. Esto es una dependencia transitiva (EmpID → DeptID → DeptNombre). DeptNombre es un atributo no clave que no depende directamente de la clave primaria (EmpID), por lo que la tabla no está en 3NF.

Descomposición en 3NF:

  • Empleados(EmpID, Nombre, DeptID)
  • Departamentos(DeptID, DeptNombre)

Ahora DeptNombre depende directamente de DeptID en la tabla Departamentos, y en Empleados sólo quedan atributos que dependen de la clave primaria EmpID. La descomposición es sin pérdida si se conserva DeptID como clave foránea en Empleados para enlazar con Departamentos.

Proceso práctico para normalizar a 3NF

  • Identificar todas las dependencias funcionales (DF) en la relación.
  • Determinar las claves candidatas y la clave primaria.
  • Verificar que no existan dependencias parciales (cumplir 2NF).
  • Detectar dependencias transitivas: A → B y B → C, donde A es clave o parte de ella y C es atributo no clave.
  • Descomponer la relación en nuevas relaciones donde cada DF relevante tenga un determinante que sea superclave o el dependiente sea atributo primo.
  • Asegurar que la descomposición sea lossless y, si es posible, preserve dependencias.

Ventajas y desventajas

  • Ventajas: reduce redundancia, evita anomalías de inserción/actualización/eliminación, mejora consistencia de los datos.
  • Desventajas: puede aumentar el número de tablas y, por tanto, la necesidad de hacer JOINs en consultas, lo que puede afectar al rendimiento en determinadas cargas de trabajo.

Relación con otras formas normales

  • 3NF es más estricta que 2NF (elimina dependencias transitivas) pero menos estricta que BCNF (Boyce-Codd Normal Form). En BCNF, toda dependencia X → A exige que X sea superclave; en 3NF se permite que A sea primo aunque X no sea superclave.
  • En la práctica, se suele buscar 3NF para un equilibrio entre normalización y rendimiento; si aparecen dependencias problemáticas adicionales, puede considerarse BCNF aunque a veces implique pérdida de preservación de dependencias.

Consejos prácticos

  • Priorizar la identificación de dependencias funcionales reales basadas en las reglas del negocio.
  • Comprobar siempre que la descomposición sea lossless (mediante pruebas con claves o algoritmos de unión).
  • Valorar la denormalización controlada cuando el rendimiento de lectura lo requiera, documentando claramente las razones.


Buscar dentro de la enciclopedia
AlegsaOnline.com - 2020 / 2025 - License CC3