¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
Tercera Forma Normal (3FN) en Bases de Datos MySQL
Anuncios
Publicidad

Tercera Forma Normal (3FN) en Bases de Datos MySQL: explicación y ejemplos prácticos

Cuando diseñamos una base de datos relacional en MySQL, es fundamental aplicar el proceso de normalización para evitar redundancias y garantizar la coherencia de los datos.
Dentro de este proceso, una de las etapas más importantes es alcanzar la Tercera Forma Normal (3FN).

En este artículo te explicaré qué es la 3FN, cuándo se aplica, sus ventajas y te mostraré ejemplos prácticos en MySQL para que la entiendas fácilmente.


¿Qué es la Tercera Forma Normal (3FN)?

La Tercera Forma Normal (3FN) es una etapa del proceso de normalización que tiene como objetivo eliminar dependencias transitivas dentro de una tabla.

En palabras más sencillas:

Una tabla está en Tercera Forma Normal si ya cumple con la Segunda Forma Normal (2FN) y ninguna columna que no sea clave depende de otra columna que tampoco sea clave.


Requisitos para cumplir la 3FN

Para que una tabla esté en 3FN, debe cumplir con:

  1. Primera Forma Normal (1FN):
    No hay columnas repetidas y cada campo contiene un solo valor (datos atómicos).
  2. Segunda Forma Normal (2FN):
    Todos los atributos dependen completamente de la clave primaria (no hay dependencias parciales).
  3. Tercera Forma Normal (3FN):
    No existen dependencias transitivas, es decir, ningún campo no clave depende de otro campo no clave.

Ejemplo práctico paso a paso

Imaginemos que tenemos una tabla llamada empleados en MySQL con la siguiente estructura:

CREATE TABLE empleados (
    id_empleado INT PRIMARY KEY,
    nombre VARCHAR(50),
    id_departamento INT,
    nombre_departamento VARCHAR(50),
    ciudad_departamento VARCHAR(50)
);

Problema

En esta tabla, los campos nombre_departamento y ciudad_departamento dependen del campo id_departamento, y no directamente de id_empleado.
Esto genera una dependencia transitiva:

id_empleado → id_departamento → nombre_departamento, ciudad_departamento

Si modificamos el nombre o ciudad de un departamento, tendríamos que actualizarlo en todos los empleados que pertenezcan a él.
Esto viola la 3FN y genera redundancia de datos.


Cómo llevar la tabla a Tercera Forma Normal

Para cumplir con la 3FN, debemos separar las dependencias transitivas en tablas distintas.

Paso 1: Crear la tabla departamentos

CREATE TABLE departamentos (
    id_departamento INT PRIMARY KEY,
    nombre_departamento VARCHAR(50),
    ciudad_departamento VARCHAR(50)
);

Paso 2: Modificar la tabla empleados

CREATE TABLE empleados (
    id_empleado INT PRIMARY KEY,
    nombre VARCHAR(50),
    id_departamento INT,
    FOREIGN KEY (id_departamento) REFERENCES departamentos(id_departamento)
);

Paso 3: Insertar algunos datos de ejemplo

INSERT INTO departamentos (id_departamento, nombre_departamento, ciudad_departamento)
VALUES
(1, 'Recursos Humanos', 'Madrid'),
(2, 'Contabilidad', 'Barcelona'),
(3, 'IT', 'Valencia');

INSERT INTO empleados (id_empleado, nombre, id_departamento)
VALUES
(101, 'Laura Gómez', 1),
(102, 'Carlos Pérez', 2),
(103, 'Ana Torres', 3);

Resultado

Ahora tenemos:

  • La tabla empleados contiene solo datos del empleado y su referencia al departamento.
  • La tabla departamentos almacena la información de cada departamento sin duplicarse.

Si queremos consultar los datos de los empleados junto con su departamento, usamos una JOIN:

SELECT e.nombre, d.nombre_departamento, d.ciudad_departamento
FROM empleados e
JOIN departamentos d
ON e.id_departamento = d.id_departamento;

Ventajas de aplicar la Tercera Forma Normal

Evita redundancia de datos: la información del departamento solo se guarda una vez.
Facilita las actualizaciones: si cambia el nombre del departamento, solo se actualiza en una tabla.
Aumenta la integridad de los datos: se eliminan inconsistencias y dependencias innecesarias.
Mejora la eficiencia de las consultas: las relaciones están bien estructuradas y las búsquedas son más precisas.


Desventajas o limitaciones

Aunque la 3FN mejora la consistencia, a veces puede aumentar la complejidad de las consultas, ya que hay que unir varias tablas (JOINs).
Por eso, en proyectos muy grandes o con alta carga de lectura, se puede optar por una desnormalización parcial para optimizar el rendimiento.


La Tercera Forma Normal (3FN) es clave para tener una base de datos bien estructurada, eficiente y coherente en MySQL.
Aplica esta forma normal cuando diseñes tus tablas para evitar problemas de redundancia y mantener la integridad de tus datos a largo plazo.

En resumen:

Una tabla está en 3FN cuando cada campo depende únicamente de la clave primaria y no de otros campos no clave.

Te puede interesar:

Guía Completa de las Formas Normales en Bases de Datos MySQL

Seguir leyendo:

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Deja una respuesta

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
error: Content is protected !!
Hablemos de informática
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.