Ir al contenido principal

Formas Normales (1FN, 2FN, 3FN y FNBC)

Las formas normales son conjuntos de criterios que utilizamos para «normalizar» (es decir, mejorar la estructura) de las bases de datos.


Vamos a repasar las tres primeras formas normales.

1FN – Primera Forma Normal

Una tabla está en Primera Forma Normal si:

Todos los atributos son «atómicos». Por ejemplo, en el campo teléfono no tenemos varios teléfonos.
La tabla contiene una clave primaria única. Por ejemplo el NIF para personas, la matrícula para vehículos o un simple id autoincremental. Si no tiene clave, no es 1FN.
La clave primaria no contiene atributos nulos. No podemos tener filas para las que no haya clave (por ejemplo, personas sin RFC o vehículos sin matrícula).
No debe existir diferencia en el número de columnas. Si algunas filas tienen 8 columnas y otras 3, pues no estamos en 1FN.

Los campos no clave deben identificarse por la clave. Es decir, que los campos no clave dependen funcionalmente de la clave. Esto es prácticamente lo mismo que decir que existe clave primaria.

Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados. Por ejemplo, si en la columna 1 tenemos el primer apellido y en la columna 2 tenemos el segundo, pues no estamos en 1FN. Igualmente si en la tercera fila tenemos el tercer mejor expediente y en la quinta fila el quinto, no estamos en 1FN.

2FN – Segunda Forma Normal

Una tabla está en 2FN si además de estar en 1FN cumple que los atributos no clave depende de TODA la clave principal.

Por ejemplo, si tenemos una tabla con Personas, identificadas por su NIF y recogemos su empresa y dirección de trabajo, la clave sería NIF-Empresa. Pero nos encontraremos con que una misma persona puede trabajar en varias empresas. Y vemos que la dirección de trabajo no depende de TODA la clave primaria, sino solo de la empresa. Por lo tanto, no estamos en 2FN.

3FN – Tercera Forma Normal

Una tabla está en 3FN si además de estar en 2FN no existe ninguna dependencia transitiva entre los atributos que no son clave.

Vamos a explicarlo. Como dijo Bill Kent
, «todo atributo no clave debe proporcionar información sobre la clave, sobre toda la clave y nada más que la clave… con la ayuda de Codd».

Bueno, en serio, supongamos que tenemos una tabla de ganadores de torneos de tenis. En ella figura el nombre del torneo, el año, el nombre del ganador y su nacionalidad. La clave sería Torneo-Año. Pues esta tabla no está en 3FN porque el atributo nacionalidad, que no es de la clave, depende del nombre del ganador (también depende de la clave). Digamos que nacionalidad aporta información sobre el ganador, pero no sobre la clave. Es una dependencia transitiva porque nacionalidad depende de ganador que a su vez depende de Torneo-Año.

FN de Boyce-Codd

Es una FN ligeramente más estricta que la 3FN. En concreto requiere esté en 3FN y que que no existan dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave candidata. O dicho de otra forma: una tabla está en FNBC si está en 3FN y los únicos determinantes (atributo que depende de otro atributo) son claves candidatas.

Es muy difícil que una tabla que está en 3FN no esté en FNBC, pero podemos «lograrlo» eligiendo mal las claves de nuestras tablas. Por ejemplo, si tenemos una tabla con idTrabajadoridDepartamentoidResponsable, donde el idResponsable es la persona responsable del trabajador. La clave sería, si cada trabajador puede trabajar en varios departamentos y tener distintos responsables (idTrabajadoridDepartamentoidResponsable). Pero si resulta que cada responsable lo es de un único departamento, entonces idResponsable dependería de idDepartamento, lo que convierte a idResponsable en «determinante» (atributo que depende de otro atributo), pero no es clave candidata.

Este problema se solucionaría creando otra tabla (idDepartamentoidResponsable) y eliminando idResponsable de la entidad anterior.

Otras Formas Normales
Hay todavía más formas normales: 4FN5FN y Forma Normal de Dominio/Clave (DKFN).

Comentarios

Entradas más populares de este blog

El Portal de Facebook es finalmente un éxito, gracias a una pandemia y a tus abuelos.

El vídeo chat está de moda ahora que las personas tienen que quedarse en casa. James McConnell no sabía mucho sobre el Portal de Facebook hasta que Nan Owen, su vecina de 91 años, necesitó ayuda para configurar su dispositivo de vídeo chat el mes pasado cuando el Reino Unido y el mundo se cerró para combatir el coronavirus . La activa vida social de Owen (amigos y familiares se detenían en su casa de Londres todos los días por una copa de vino o dos) se había detenido, dejándola sola. Después de recurrir a WhatsApp, una aplicación de mensajería de Facebook, para mantenerse en contacto, su hijo le envió un Portal porque el dispositivo de vídeo chat de la red social funciona con el servicio. El único problema: Owen no sabía cómo usarlo. Así es como McConnell, que dirige una empresa de automatización del hogar llamada Homesmart Solutions, se involucró. Manteniendo la distancia social, el hombre de 55 años le mostró a Owen las instrucciones para usar el Portal. Llevaba guantes y una má...

Redes de Computadora

¿Qué es una red de ordenadores? Una red o red informática, es un conjunto de equipos conectados por medio de cables, señales, ondas o cualquier otro método de transporte de datos, que comparten información , recursos , servicios (acceso a internet, e-mail, chat, juegos), etc. incrementando la eficiencia y productividad de las personas. ¿Qué tipos de redes existen? Red pública Red privada Red de área Personal (PAN) Red de área local (LAN) Red de área local virtual (VLAN) Red del área del campus (CAN) Red de área metropolitana (MAN) Red de área amplia (WAN) Red de área de almacenamiento (SAN) Red irregular Red WAN Centralizado, Distribuido ¿Qué es una red de área local? Un red de área local es la interconexión de varios ordenadores y periféricos. Su extensión está limitada físicamente a un edificio o a un entorno de 200 metros ¿Qué es la dirección IP de un ordenador? Una dirección IP es un número que identifica de manera lógica y jerárquica a una i...