Tercera Forma Normal (3FN): Guía con Ejemplos Reales

Hola a todos, hoy os voy a explicar como validar que nuestra tabla este en tercera forma normal (3FN) con ejemplos reales.

El objetivo de la normalización es eliminar redundancias y asegurar que los datos estén organizados de forma consistente y sin inconsistencias.

Para ello tenemos diferentes formas normales, en este post, vamos a ver la tercera forma normal o 3FN.

Condiciones para que cumpla la tercera forma normal

Cuando tenemos una tabla de base de datos, si queremos comprobar que cumple la tercera forma normal, debe cumplir las siguientes condiciones:

La tabla cumple la 2FN

Debe cumplir las condiciones para estar en 2FN. Esto lo vimos en otra entrada:

https://discoduroderoer.es/segunda-forma-normal-2fn-guia-con-ejemplos-reales

Todos los atributos no clave deben depender solo de la clave primaria, no de otros campos intermedios.

Esto se conoce como dependencia transitiva.

A lo que se refiere a que el valor de cada una de los campos no primarios tiene que depender de la clave primaria, si este depende de uno no primario, no cumple la 3FN.

Ejemplo 1

Veamos un ejemplo con empleado y oficina:

tercera forma normal 1

Veamos un ejemplo real de base de datos:

Entre ciudad y cod_postal existe una dependencia transitiva.

Porque cada vez que ponga 50018 como código postal, siempre tendré que poner Zaragoza como ciudad.

Se soluciona pasando creando una nueva tabla con ambos campos.

En oficina, dejamos solo uno de ellos, en este caso cod_postal como campo foráneo, que apunta al campo primario de la nueva tabla.

tercera forma normal 3

Así quedaría en base de datos:

Ejemplo 2

Algo que es habitual, es que el campo sea una cadena.

Veamos un ejemplo:

tercera forma normal 5

Veamos un ejemplo real de base de datos:

tercera forma normal 6

Como vemos tenemos una dependencia transitiva entre empresa y empresa_pais, con lo que hemos visto hasta ahora, lo transformamos así:

tercera forma normal 7

Veamos como quedaría en la base de datos:

tercera forma normal 8

A nivel de normalización es correcto pero si en una de las dos tablas no es igual, no estarán relacionadas.

Por ejemplo, si en Empleado tenemos TechNova S.A. y en Empresa TechNova sa  aunque entendamos que es el mismo, son diferentes.

Para solucionar esto, recomiendo crear un código propio.

tercera forma normal 9

Veamos como quedaría en la base de datos:

tercera forma normal 10

De esta forma, es mas fácil asociar registros de una tabla a otra sin riesgo a equivocarse.

Te lo dejo en video donde lo comentamos.

https://youtu.be/PxaGQ0mA4-w

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539