Base de Datos I
Normalización
de base de datos
Profesora Rosalía Insaurralde
Definición de Normalización
de Bases de Datos
La normalización de bases de datos es un proceso
(conjunto de normas) que busca organizar los datos de una base de datos para:
• minimizar la redundancia y
• optimizar la integridad referencial
Este proceso involucra dividir tablas grandes en tablas más pequeñas y bien
estructuradas, donde las relaciones entre datos se definen claramente
mediante reglas conocidas como formas normales.
Cada forma normal se refiere a diferentes tipos y niveles de problemas
potenciales de redundancia de datos.
El objetivo es simplificar la estructura de la base de datos facilitando así su
mantenimiento y escalabilidad.
Introducción a las Formas Normales:
Primera, Segunda y Tercera Forma Normal
La normalización se
estructura en niveles
denominados
“formas normales”
(FN). Cada forma
normal tiene
requisitos específicos
que deben cumplirse
para alcanzar un
diseño más
organizado y menos
redundante de la
base de datos.
Primera Forma Normal (1NF)
Objetivos
Los principales objetivos de la 1NF son:
1. Eliminar Grupos Repetitivos: Asegurarse de que no haya grupos de campos que repitan información de
manera innecesaria.
2. Simplificar la Estructura de la Tabla: Crear una estructura tabular clara donde cada campo está bien definido
y todos los registros son consistentes en términos de estructura de datos.
3. Facilitar el Acceso y Manipulación de Datos: Al tener cada dato en su campo específico, se simplifica la
consulta y manipulación de la base de datos.
Criterios para Alcanzar la 1NF
Para que una tabla de base de datos alcance la 1NF, debe cumplir con los siguientes criterios:
• Atomicidad de los Campos: Cada campo debe contener solo valores indivisibles, no conjuntos de valores ni
valores múltiples.
• Uniformidad de Registros: Cada registro debe tener la misma cantidad de campos, evitando así cualquier
irregularidad en la estructura de datos.
• Identificación Única de Registros: Cada registro debe ser identificable de manera única a través de una clave
primaria.
Ejemplo de 1NF
Supongamos una tabla de contactos en una base de datos que inicialmente no está en 1NF porque
incluye múltiples números de teléfono en un solo campo:
ID Nombre Teléfonos
1 Ana Ruiz 1234567, 2345678
2 Luis Paz 3456789
Tabla de contactos en una base de datos que inicialmente no está en 1NF. Para convertirla a
1NF, debemos asegurarnos de que cada campo de teléfono contenga solo un número:
ID Nombre Teléfono
1 Ana Ruiz 1234567
1 Ana Ruiz 2345678
2 Luis Paz 3456789
Tabla normalizada con la 1NF
Segunda Forma Normal (2NF)
Relación con la 1NF
Para alcanzar la 2NF, una tabla primero debe cumplir con todos los requisitos de la 1NF. La 2NF lleva
la normalización un paso más adelante al abordar las dependencias parciales entre las claves
primarias compuestas y otros atributos no clave. Esencialmente, mientras que la 1NF se enfoca en
la estructura básica y la atomicidad de los campos, la 2NF trata sobre la dependencia funcional y la
relación entre la clave primaria y otros campos.
Criterios Específicos para 2NF
Para que una tabla esté en 2NF, debe cumplir con los siguientes criterios:
• Ya en 1NF: La tabla debe estar primero en 1NF.
• Eliminación de Dependencias Parciales: No debe haber dependencias de los atributos no clave
sobre una parte solamente de cualquier clave candidata compuesta.
Ejemplo de 2NF
Consideremos una tabla de registros de clases que no está en 2NF porque tiene dependencias parciales:
ProfesorID NombreProfesor ClaseID NombreClase
001 Ana Torres 101 Matemáticas
001 Ana Torres 102 Física
002 Luis Gómez 103 Literatura
Tabla de registros de clases que no está en 2NF porque tiene dependencias parciales.
Aquí, NombreProfesor depende solo de ProfesorID y no de toda la clave compuesta (ProfesorID, ClaseID)
Para convertirla en 2NF, podemos dividir la tabla en dos, Tabla de profesores y Tabla de clases:
ProfesorID NombreProfesor
001 Ana Torres
002 Luis Gómez
ProfesorID ClaseID NombreClase
001 101 Matemáticas
001 102 Física
002 103 Literatura
Tercera Forma Normal (3NF) y Forma Normal de
Boyce-Codd (BCNF):
Tercera Forma Normal (3NF)
La Tercera Forma Normal (3NF) es alcanzada cuando una tabla está en Segunda Forma Normal (2NF) y, además,
todos sus atributos no clave son mutuamente independientes entre sí y dependen directamente solo de la
clave primaria. La 3NF está diseñada para eliminar las dependencias transitivas; esto es, cuando un atributo no
clave depende de otro atributo no clave.
Objetivos de 3NF:
• Garantizar que todos los atributos no clave dependen solo de la clave primaria.
• Eliminar las dependencias transitivas que pueden llevar a redundancias innecesarias.
Forma Normal de Boyce-Codd (BCNF)
La Forma Normal de Boyce-Codd (BCNF) es una versión más estricta de la 3NF. Una tabla está en BCNF si, y solo
si, cada determinante es una clave candidata. Esto significa que BCNF aborda situaciones donde hay
dependencias funcionales en las que la clave no es una superclave, es decir, cualquier atributo que pueda
determinar otro debe ser una parte de la clave candidata.
Objetivos de BCNF:
• Manejar las anomalías y dependencias funcionales que la 3NF no puede resolver completamente.
• Asegurar que la tabla no tenga redundancias causadas por dependencias funcionales.
Diferencias y Similitudes entre 3NF y BCNF
Similitudes:
• Ambas forman parte del proceso de normalización diseñado para reducir la
redundancia en las bases de datos.
• Tanto la 3NF como la BCNF buscan asegurar que todos los atributos no clave
dependan únicamente de la clave primaria.
Diferencias:
• La BCNF es más estricta que la 3NF. Mientras que la 3NF elimina las dependencias
transitivas, la BCNF asegura que no existan dependencias funcionales a menos
que el determinante sea una clave candidata.
• BCNF puede requerir más descomposiciones que 3NF, lo cual puede resultar en
un mayor número de tablas.
Ejemplos de la Transición de 2NF a 3NF
Tabla normalizada con la 2NF
ProfesorID ProfesorNombre DepartamentoID DepartamentoNombre
001 Ana Torres D01 Matemáticas
002 Luis Gómez D02 Literatura
Aquí, DepartamentoNombre es una dependencia transitiva de ProfesorID a través de DepartamentoID
Tabla en 3NF: Descomponemos la tabla en dos para eliminar la dependencia transitiva, Tabla de
profesores y Tabla de departamentos:
ProfesorID ProfesorNombre DepartamentoID
001 Ana Torres D01
002 Luis Gómez D02
DepartamentoID DepartamentoNombre
D01 Matemáticas
D02 Literatura
Ejemplos de la Transición de BCNF
Supongamos ahora que, en un caso más complejo, DepartamentoID y ProfesorID determinan
DepartamentoNombre, pero DepartamentoID por sí solo también puede
determinar DepartamentoNombre.
Tabla no en BCNF
ProfesorID DepartamentoID DepartamentoNombre
001 D01 Matemáticas
002 D01 Matemáticas
Aquí, DepartamentoID es un determinante no candidato que viola BCNF.
Tabla en BCNF: Separamos la información para que cada determinante sea una clave candidata, Tabla de
profesores y Tabla de departamentos:
ProfesorID DepartamentoID
001 D01
002 D01
DepartamentoID DepartamentoNombre
D01 Matemáticas
Formas Normales Superiores:
Cuarta y Quinta Forma Normal
• Conceptos Avanzados de Normalización
• Las formas normales superiores, específicamente la Cuarta Forma Normal (4NF) y
la Quinta Forma Normal (5NF), también conocida como Proyección-Join Normal
Form (PJNF), se enfocan en resolver problemas más complejos de dependencias
entre los datos que no son abordados por las formas normales anteriores.
• Cuarta Forma Normal (4NF): Una tabla está en 4NF si está en la Tercera Forma
Normal (3NF) y además no posee dependencias multivaluadas. Esto significa que
no debe haber conjuntos de datos que, siendo independientes entre sí, estén
contenidos en un solo registro.
• Quinta Forma Normal (5NF): Una tabla está en 5NF si está en 4NF y además, cada
join-dependency en la tabla es implícita por las claves candidatas de la tabla. Esto
se refiere a que cualquier subdivisión de la tabla y su posterior recombinación
(join) no debe introducir redundancias.
Ejemplo de 4NF
Situaciones y ejemplos donde estas Formas son Necesarias
Supongamos una tabla que registra los hobbies e EmpleadoID Hobbies Idiomas
idiomas de los empleados. Un empleado puede tener 1 Fotografía Español
varios hobbies e idiomas, pero estos no están
relacionados entre sí (dependencia multivaluada) 1 Fotografía Inglés
1 Buceo Español
1 Buceo Inglés
Para convertirla a 4NF, se debe eliminar la
dependencia multivaluada dividiendo la tabla en dos:
Tabla de Hobbies y Tabla de Idiomas
EmpleadoID Hobbies EmpleadoID Idiomas
1 Fotografía 1 Español
1 Buceo 1 Inglés
Ejemplo de 5NF
Considere una tabla que registra información sobre los cursos que los profesores enseñan en
diferentes ciudades:
ProfesorID CursoID CiudadID
001 100 A
001 101 A
001 100 B
001 101 B
Aunque esta tabla puede estar en 4NF, no está en 5NF si las combinaciones de curso-ciudad son
independientes del profesor. Para alcanzar la 5NF, se podría dividir la tabla en más partes que
representen relaciones independientes.
Uso de las formas normales superiores
Las formas normales superiores son cruciales en escenarios donde la integridad de
los datos y la minimización de redundancias son críticas, especialmente en bases de
datos complejas con múltiples relaciones entrelazadas. Aunque el uso de 4NF y 5NF
puede ser menos común que las primeras tres formas normales debido a su
complejidad y al rendimiento de consultas en bases de datos grandes, son
esenciales en situaciones que requieren una gran precisión y eficiencia en el
manejo de datos. Esto es particularmente relevante en entornos de grandes datos,
donde las estructuras de datos bien normalizadas pueden facilitar operaciones de
procesamiento y análisis más eficientes y efectivas.
Se debe considerar el equilibrio entre la normalización
y el rendimiento.
Ventajas de un Diseño Normalizado
[Link] de Datos: La normalización ayuda a asegurar la integridad de los datos
mediante la eliminación de redundancias. Esto reduce la posibilidad de
inconsistencias de datos, ya que cada pieza de información se almacena solo una
vez.
[Link] Anomalías: La normalización previene anomalías en la inserción,
actualización y eliminación, lo que facilita el mantenimiento de la base de datos
sin comprometer la integridad de los datos.
[Link] Eficiente del Espacio de Almacenamiento: Al eliminar la información
duplicada, la normalización puede reducir el espacio total necesario para
almacenar los datos, lo que puede ser crítico en sistemas de gran escala.
[Link] en el Diseño: Un diseño de base de datos normalizado puede simplificar
el esquema de la base de datos, haciendo que sea más fácil de entender y
trabajar con él para desarrolladores y analistas.
[Link] la Escalabilidad: Las bases de datos normalizadas son generalmente más
fáciles de expandir que las no normalizadas, permitiendo que se añadan nuevos
tipos de datos y estructuras sin alterar demasiado el diseño existente.
Desafíos y Complicaciones que Pueden
Surgir de la Normalización Excesiva
[Link] en Consultas: Un alto grado de normalización puede llevar a
un esquema con muchas tablas pequeñas, lo que puede complicar las
consultas que necesitan unir múltiples tablas y potencialmente degradar el
rendimiento de la consulta.
[Link] de Consultas: La necesidad de múltiples uniones (joins) para
recuperar datos relacionados puede ser costosa en términos de
rendimiento, especialmente en bases de datos muy grandes y en
operaciones que deben ser muy rápidas.
[Link] y Mantenimiento: Aunque un diseño bien normalizado puede
ser más fácil de mantener en términos de integridad de datos, el aumento
en la cantidad de tablas y la complejidad de las relaciones puede hacer que
el desarrollo y mantenimiento de la base de datos sea más laborioso y
técnico.
Normalización excesiva Vs Rendimiento
El equilibrio entre la normalización y el rendimiento es una consideración crítica en
el diseño de bases de datos, especialmente en aplicaciones de alto volumen y alta
disponibilidad:
• Denormalización Selectiva: A veces, puede ser beneficioso denormalizar
intencionadamente algunas partes de la base de datos para mejorar el
rendimiento de las consultas, especialmente para operaciones de lectura
intensiva.
• Uso de Técnicas de Caché y Almacenamiento en Memoria: Implementar cachés
y almacenamientos en memoria puede ayudar a mitigar el impacto en el
rendimiento de una base de datos altamente normalizada.
• Monitoreo y Ajuste del Rendimiento: Es importante monitorear el rendimiento
de la base de datos y ajustar tanto el esquema como las configuraciones de
sistema basándose en patrones de uso reales y cargas de trabajo.
La normalización es una herramienta poderosa para mejorar la integridad y
coherencia de los datos, pero debe ser implementada con consideración de las
necesidades específicas de rendimiento y funcionalidad del sistema de base de
datos en cuestión. Elegir el nivel adecuado de normalización puede ser tanto un
arte como una ciencia, requiriendo un equilibrio cuidadoso entre múltiples
factores.