Dirección General de Tecnologías de la
Información y Transformación Digital
Contenido:
Diseño de Base de Datos: Normalización
Proceso de Normalización
Primera Forma Normal (1FN)
Segunda Forma Normal (2FN)
Tercera Forma Normal (3FN)
Resumen de Normalización de la Primera a la Cuarta Forma Normal
La normalización es un proceso en el diseño de bases
de datos relacionales que tiene como objetivo
organizar los datos para minimizar la redundancia y
dependencia. Este proceso se lleva a cabo a través de
una serie de "formas normales" (1NF, 2NF, 3NF, BCNF,
etc.), cada una con reglas específicas para mejorar la
integridad de los datos y la eficiencia de la base de
datos.
Primera Forma Normal (1NF)
La Primera Forma Normal (1NF) requiere que todos los atributos contengan
solo valores atómicos y que cada registro sea único. No debe haber grupos
de valores o listas en ninguna columna, y cada columna debe tener un
nombre único y contener valores del mismo tipo de dato
Aplicación 1nf
Vamos a crear un ejemplo más complejo de una tabla desnormalizada de una base de datos de una
universidad y aplicaremos las cuatro formas normales paso a paso. La tabla desnormalizada incluirá
información sobre estudiantes, cursos, profesores y las calificaciones de los estudiantes en esos cursos.
Tabla RegistroAcademico (Desnormalizada):
Primera Forma Normal (1NF)
Para cumplir con la 1NF, cada columna debe contener valores atómicos y cada fila debe ser única.
La tabla RegistroAcademico ya cumple con la 1NF porque cada columna tiene valores atómicos y cada fila es
única
Segunda Forma Normal (2NF)
Segunda Forma Normal (2NF)
Una relación está en la Segunda Forma Normal (2NF) si está en 1NF y todos los atributos no clave dependen
completamente de la clave primaria. No debe haber dependencias parciales de ningún atributo no clave sobre cualquier
parte de una clave primaria compuesta .
Ejemplo de 2NF: Tabla Pedidos en 1NF (continuación del ejemplo anterior):
Segunda Forma Normal (2NF)
Para alcanzar la 2NF, la tabla debe estar en 1NF y todos los atributos no
clave deben depender completamente de la clave primaria . La clave
primaria compuesta de nuestra tabla podría ser (EstudianteID, CursoID,
Semestre). Sin embargo, ProfesorNombre y Departamento dependen solo
de ProfesorID, y CursoNombre depende solo de CursoID
Tercera Forma Normal (3NF)
Para cumplir con la 3NF, una tabla debe estar en 2NF y todos los atributos que no son clave deben ser mutuamente
independientes; es decir, no deben existir dependencias transitivas .
En la tabla Curso, el Departamento depende de ProfesorID, lo cual es una dependencia transitiva porque ProfesorID
depende de CursoID. Para eliminar esta dependencia transitiva, debemos separar la información del profesor y el curso
en dos tablas distintas:
Ahora, todas las tablas están en 3NF porque todos los atributos
no clave dependen directamente de las claves primarias y no
hay dependencias transitivas.
Cuarta Forma Normal (4NF)
Para alcanzar la 4NF, una tabla debe estar en 3NF y no debe tener dependencias multivaluadas no triviales . Una
dependencia multivaluada ocurre cuando dos o más atributos independientes se relacionan con una clave primaria, pero
no entre sí.
En nuestro ejemplo, después de aplicar la 3NF, no hay evidencia de dependencias multivaluadas en nuestras tablas. Por
lo tanto, podemos asumir que nuestras tablas ya están en 4NF. Sin embargo, para ilustrar una dependencia multivaluada,
consideremos una situación hipotética en la que un estudiante puede tener múltiples direcciones y múltiples teléfonos, y
estas dos entidades son independientes entre sí. En tal caso, tendríamos que dividir la información en dos tablas
separadas para cumplir con la 4NF.
Dado que no tenemos tal situación en nuestro ejemplo, nuestras tablas normalizadas son:
Estudiante (EstudianteID, EstudianteNombre)
Curso (CursoID, CursoNombre, Departamento)
Profesor (ProfesorID, ProfesorNombre)
CursoProfesor (CursoID, ProfesorID)
RegistroAcademico (EstudianteID, CursoID, ProfesorID, Calificación, Semestre)
Estas tablas cumplen con la 4NF porque no hay dependencias multivaluadas no triviales presentes