Segunda Forma Normal (2FN): Guía con Ejemplos Reales

Hola a todos, hoy os voy a explicar como validar que nuestra tabla este en segunda forma normal (2FN) 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 segunda forma normal o 2FN.

Condiciones para que cumpla la segunda forma normal

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

La tabla cumple la 1FN

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

https://discoduroderoer.es/primera-forma-normal-1fn-guia-con-ejemplos-reales

Todos los atributos que no forman parte de la clave primaria deben depender completamente de toda la clave primaria y no solo de una parte de ella.

Esto se conoce como dependencia parcial.

A lo que se refiere, es que los campos no primarios deben depender de TODA la clave primaria y no en parte, esto es bastante habitual en tablas con varias claves primarias.

Ejemplo

Veamos un ejemplo con empleado y departamento:

segunda forma normal 1Supongamos que estar en un departamento se le da al empleado un plus.

Veamos un caso real en base de datos:

segunda forma normal 2

En este caso concreto, vemos que hay una dependencia parcial entre codigo_departamento y plus.

Por ejemplo, cada vez que codigo_departamento es 1, repetimos el valor 100 en plus.

La forma de arreglarlo es mover el campo no primario a otra tabla, puede ser una nueva u otra ya existente.

En nuestro caso, se quedaría así:

segunda forma normal 3

Así quedaría en base de datos:

segunda forma normal 4

Si el plus fuera diferente según el empleado y el departamento, entonces se cumpliría la 2FN, ya que no habría una dependencia parcial.

Un caso que suele generar dudas en cuando vimos las relaciones N:M que comentamos que podíamos crear un campo nuevo.

Adaptemos el modelo relacional, añadiendo un código y haciendo a los campos codigo_empleado y codigo_departamento foráneos.

segunda forma normal 5

En este caso, cumple 2FN, ya que no hay una dependencia parcial entre el campo primario y el resto.

Con los campos codigo_departamento y plus, habría una dependencia transitiva, esto ya seria 3FN.

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