Primera Forma Normal (1FN): Guía con Ejemplos Reales

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

Condiciones para que cumpla la primera forma normal

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

Cada registro debe ser único.

Cada uno de los registros debe tener una clave primaria (o varias) para ser identificado.

Los valores de los campos deben ser atómicos.

Cada campo debe tener un valor único, no puede tener una lista de valores dentro del mismo. Por ejemplo, los campos multivaluados incumplen esta condición.

Alterar el orden de los registros y los campos no altera el significado de la tabla.

Si cojo un registro y lo cambio de posición, no debe afectar al significado de la tabla. Lo mismo con las columnas dentro de un registro.

Todas las columnas son regulares.

No se deben crear columnas ocultas.

De todas estas condiciones, la más habitual que suele incumplirse es la 2º.

Ejemplo 1

Vamos a ver un pequeño ejemplo con una tabla empleado:

primera forma normal 1

En este caso, supongamos que telefonos es un atributo multivaluado.

Veamos un ejemplo real en base de datos:

primera forma normal 2

No cumpliría la 1FN porque el campo telefonos no es atómico.

La solución es crear una tabla nueva con el código del empleado y el teléfono, siendo ambas primarias y codigo apuntaría a empleado.

El campo telefono se quitaría de la tabla empleado.

primera forma normal 3

Así se representaría en base de datos:

primera forma normal 4

Ejemplo 2

Veamos otro ejemplo:

primera forma normal 5Tenemos nuestra tabla empleado que tiene un campo multivaluado que puede tener varios valores (liderazgo, comunicación, etc)

Veamos un ejemplo real en base de datos:

primera forma normal 6

Así quedaría si lo separamos en una tabla nueva:

primera forma normal 7

Así se representaría en base de datos:

primera forma normal 8

El problema de este caso, es que pueden haber varios empleados que tengan la misma habilidad.

Además, en esta caso, al ser cadenas, puede complicar su modificación.

Para este tipo de casos, se suele crear un nueva tabla donde tengamos un campo codigo y un campo nombre.

En la tabla que hemos creado antes, cambiaremos el campo que venia de empleado y lo cambiaremos por un codigo.

Este campo será foráneo apuntando a nuestra nueva tabla.

Así quedaría:

primera forma normal 9

Así se representaría en base de datos:

primera forma normal 10

Te lo dejo en video donde lo comentamos.

https://youtu.be/3pkktjWimhE

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