Normalización

Primera forma normal (1FN)

Una relación (o esquema de relación) en una base de datos determinada está en la “primera forma normal”, si el dominio de todos los “atributos” de esa relación es atómico. Un dominio es atómico si todos los elementos de ese dominio se consideran unidades indivisibles. Supongamos que una relación empleado, tiene el atributo nombre, entonces la relación no está en primera forma normal, porque los elementos de dominio del atributo nombre, se pueden dividir en nombre y apellido `.

En pocas palabras, si una relación tiene atributos compuestos, entonces no está en la primera forma normal. Supongamos que tenemos la siguiente relación:

EmpId primer nombre apellido salario posición
Deptox-101 Juan herrero 12000 intermedio
Departamento-201 Carolina Williams 18900 gerente

El EmpId de la primera fila se puede dividir en: Deptx (que se usa para identificar el departamento) y 101, es un número único asignado dentro de la organización. Claramente, el dominio del atributo EmpId no es atómico y por lo tanto nuestra relación no está en primera forma normal.

Desventajas enfrentadas:

  1. Cuando se utilizan dichos identificadores de empleados, se puede encontrar el departamento de un empleado escribiendo un código que divide la estructura de ‘EmpId’ en ‘Deptx’ y ‘101’, lo que requiere programación adicional. Además, la información se codifica en el programa en lugar de en la base de datos.
  2. Supongamos que un empleado en particular tiene que cambiar de departamento, entonces el atributo EmpId tendría que actualizarse en todos los lugares donde se usa.

Podemos hacer que nuestra relación satisfaga la “primera forma normal”, dividiéndola en las siguientes dos relaciones:

Relación 1

EmpId primer nombre apellido departamento
101 Juan herrero Departamento
201 Carolina Williams Departamento

Relación 2

EmpId salario posición
101 12000 intermedio
201 18900 gerente

Ahora bien, si tenemos que cambiar de departamento, lo tenemos que hacer una sola vez en la relación 1, además ahora es más fácil determinar el departamento.

Segunda forma normal (2NF)

Para normalizar la base de datos en la segunda forma, no debe haber ninguna dependencia parcial de ninguna columna en la clave principal.

Consideremos el siguiente ejemplo:

identificación nombre fecha de nacimiento tema
1 marca 1-1-1981 Física
2 gato 2-2-1982 matemáticas
2 gato 2-2-1982 biología
3 Juan 3-3-1983 matemáticas

Se considera que esta tabla tiene una clave principal compuesta (id y asunto), pero las columnas *nombre y dob solo dependen del id, no del asunto, por lo que tienen una dependencia parcial del Clave primaria. Como resultado, podemos ver la redundancia de información en la tabla. Para normalizar la base de datos en la segunda forma, debemos dividir esta tabla en dos tablas como esta:

Mesa de estudiantes

identificación nombre fecha de nacimiento
1 marca 1-1-1981
2 gato 2-2-1982
3 Juan 3-3-1983

Tabla de materias

estudiante_id tema
1 Física
2 matemáticas
2 biología
3 matemáticas

La columna student_id de la tabla Subjects es una clave externa que hace referencia a la clave principal id de la tabla Students.