Normalización
En esta página
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:
- 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.
- 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.