Blue Flower

La Primera Forma Normal (1NF) es un concepto fundamental en la teoría de bases de datos relacionales. Una base de datos está en Primera Forma Normal (1NF) si cumple con las siguientes condiciones:

  1. Los atributos son atómicos (no pueden ser divididos): Esto significa que cada valor en una columna debe ser indivisible. No puede haber listas, conjuntos o valores compuestos en una sola celda.

  2. No hay duplicados de filas: Cada fila debe ser única, es decir, debe haber una clave primaria o un identificador único para cada registro.

  3. Cada campo contiene un solo valor: No se permiten grupos de atributos repetitivos o múltiples valores en una celda. Por ejemplo, si se tiene una lista de teléfonos en una celda, se debe separar esa lista en varias filas o tablas.

Ejemplo:

Supón que tienes una tabla de Estudiantes con la siguiente estructura:

ID Nombre Teléfonos
1 Juan 1234, 5678
2 María 2345, 6789, 1122

Esta tabla no está en 1NF porque el campo "Teléfonos" contiene múltiples valores (una lista de números).

Para convertirla a 1NF, deberíamos crear una tabla donde cada teléfono se represente en una fila separada:

ID Nombre Teléfono
1 Juan 1234
1 Juan 5678
2 María 2345
2 María 6789
2 María 1122

Ahora, la tabla está en Primera Forma Normal (1NF) porque cada celda contiene un solo valor atómico y no hay listas ni conjuntos.

Ejemplo : Tabla de Pedidos

Imagina una tabla que registra pedidos de clientes, donde cada pedido puede contener varios productos. Supongamos que la tabla original es la siguiente:

Pedido_ID Cliente Productos
1 Juan Camisa, Pantalones
2 María Zapatos, Sombrero
3 Carlos Pantalones, Chaqueta

Esta tabla no está en 1NF porque la columna "Productos" contiene múltiples valores (varios productos) en una sola celda.

Para poner la tabla en 1NF, debemos descomponer la columna "Productos" en filas separadas. Así que la tabla corregida se verá de esta manera:

Pedido_ID Cliente Producto
1 Juan Camisa
1 Juan Pantalones
2 María Zapatos
2 María Sombrero
3 Carlos Pantalones
3 Carlos Chaqueta

Ahora, cada celda contiene solo un valor, y la tabla está en 1NF.

Ejemplo: Tabla de Cursos de Estudiantes

Supón que tienes una tabla que almacena la información de los cursos que están tomando los estudiantes, donde cada estudiante puede estar inscrito en varios cursos:

Estudiante_ID Nombre Cursos
101 Ana Matemáticas, Historia
102 Luis Química, Biología
103 Marta Física, Química, Historia

En esta tabla, la columna "Cursos" contiene múltiples valores para un solo estudiante, lo que viola la regla de la Primera Forma Normal (1NF).

Para convertir esta tabla a 1NF, debemos separar los cursos en filas individuales:

Estudiante_ID Nombre Curso
101 Ana Matemáticas
101 Ana Historia
102 Luis Química
102 Luis Biología
103 Marta Física
103 Marta Química
103 Marta Historia

Con esta reorganización, la tabla ahora está en Primera Forma Normal (1NF), ya que cada celda contiene un solo valor, y no hay listas ni grupos de valores.

Ejemplo: Tabla de Clientes y Direcciones

Imagina una tabla donde los clientes pueden tener múltiples direcciones, pero en la tabla original se guardan todas las direcciones en una sola columna.

Cliente_ID Nombre Direcciones
1 Juan Calle Falsa 123, Av. Libertad 456
2 María Calle Real 789
3 Carlos Calle Luna 101, Calle Sol 202

En este caso, la columna "Direcciones" contiene varias direcciones para un solo cliente, lo cual no está en 1NF.

Para cumplir con la Primera Forma Normal (1NF), debemos separar las direcciones en filas distintas. El resultado sería el siguiente:

Cliente_ID Nombre Dirección
1 Juan Calle Falsa 123
1 Juan Av. Libertad 456
2 María Calle Real 789
3 Carlos Calle Luna 101
3 Carlos Calle Sol 202

Ahora, la tabla está en 1NF, ya que cada celda contiene un solo valor y no hay listas de direcciones.

Ejemplo : Tabla de Empleados y Proyectos

Imagina una tabla donde los empleados están trabajando en múltiples proyectos, pero en la tabla original se listan todos los proyectos de un empleado en una sola celda.

Empleado_ID Nombre Proyectos
101 Alicia Proyecto A, Proyecto B
102 Roberto Proyecto C
103 Ana Proyecto D, Proyecto E, Proyecto F

Aquí, la columna "Proyectos" contiene múltiples proyectos para un solo empleado, lo cual no cumple con la Primera Forma Normal (1NF).

Para cumplir con la 1NF, debemos dividir los proyectos en filas separadas, como se muestra a continuación:

Empleado_ID Nombre Proyecto
101 Alicia Proyecto A
101 Alicia Proyecto B
102 Roberto Proyecto C
103 Ana Proyecto D
103 Ana Proyecto E
103 Ana Proyecto F

De esta forma, cada celda contiene un solo valor, y la tabla cumple con la Primera Forma Normal (1NF).