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:
Supongamos que estar en un departamento se le da al empleado un plus.
Veamos un caso real en base de datos:

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í:

Así quedaría en base de datos:

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.

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.
Deja una respuesta