Normalización del Diseño de Bases de Datos – 1NF, 2NF, 3NF, BCNF, Anomalías, Relaciones
Este artículo es una explicación de conceptos sobre normalización de bases de datos, incluyendo preguntas de examen y etiquetas.
In a Nutshell
La normalización elimina redundancias y anomalías en bases de datos mediante la descomposición progresiva de relaciones en formas normales bien definidas, para garantizar la integridad y consistencia de los datos.
Descripción técnica compacta
La normalización es un proceso sistemático para restructurar bases de datos relacionales, eliminando redundancias y previniendo anomalías. La Primera Forma Normal (1NF) requiere valores atómicos y claves primarias únicas. La Segunda Forma Normal (2NF) exige 1NF y elimina dependencias parciales en atributos no clave. La Tercera Forma Normal (3NF) requiere 2NF y elimina dependencias transitivas. La Forma Normal de Boyce-Codd (BCNF) es una versión más restrictiva de 3NF donde todos los determinantes deben ser candidatos de clave. Mediante la normalización se evitan anomalías de inserción, actualización y eliminación, mejorando la integridad de los datos.
Puntos clave para examen
- 1NF: Valores atómicos, sin grupos repetitivos, claves primarias únicas
- 2NF: Cumple 1NF, sin dependencias parciales, atributos no clave totalmente dependientes
- 3NF: Cumple 2NF, sin dependencias transitivas
- BCNF: Todo determinante es un candidato de clave
- Dependencias funcionales: X → Y significa que Y es funcionalmente dependiente de X
- Evitar anomalías: anomalías de inserción, actualización, eliminación
- Relevante para IHK: Poder reconocer y aplicar formas normales
- Práctica: Reducir redundancias, optimizar rendimiento, asegurar consistencia
Componentes clave
- Valores atómicos y 1NF
- Dependencias funcionales
- Claves primarias y candidatos de clave
- Dependencias parciales y 2NF
- Dependencias transitivas y 3NF
- Determinantes y BCNF
- Anomalías (inserción, actualización, eliminación)
- Redundancias y sus consecuencias
- Relaciones y claves foráneas
- Desnormalización como contraparte
Ejemplo práctico
// Antes de normalización (problema con redundancias)
Pedido(NumeroPedido, NumeroCliente, NombreCliente, NumeroArticulo, NombreArticulo, Cantidad)
// Después de normalización a 3NF
Cliente(NumeroCliente, NombreCliente)
Articulo(NumeroArticulo, NombreArticulo)
Pedido(NumeroPedido, NumeroCliente, Fecha)
LineaPedido(NumeroPedido, NumeroArticulo, Cantidad)
Explicación: Redundancias eliminadas, cada dato almacenado una sola vez, anomalías evitadas.
Ventajas y desventajas
Ventajas
- Reduce redundancias y necesidad de almacenamiento
- Evita anomalías en la manipulación de datos
- Mejora la integridad y consistencia de los datos
- Permite cambios en la estructura de datos más flexibles
Desventajas
- Complejidad aumentada por múltiples tablas
- Pérdida de rendimiento por Joins
- Mayor esfuerzo de implementación
- Posible necesidad de desnormalización para optimizar rendimiento
Preguntas típicas de examen (con respuesta breve)
-
¿Qué requiere 1NF? Valores atómicos, sin grupos repetitivos, claves primarias únicas.
-
¿Cómo se diferencia 2NF de 1NF? 2NF requiere 1NF y elimina dependencias parciales en atributos no clave.
-
¿Qué es una dependencia transitiva en 3NF? El atributo A depende de B, B depende de C, pero A no depende directamente de C.
-
¿Es BCNF más restrictiva que 3NF? Sí, BCNF requiere que todo determinante sea un candidato de clave, una condición más estricta que 3NF.
-
¿Cómo evitar anomalías de inserción? Mediante normalización se pueden insertar nuevos datos sin duplicar datos existentes.
-
¿Qué significa la dependencia funcional X → Y? Para cada valor de X existe exactamente un valor correspondiente de Y.
-
¿Qué es una anomalía de actualización y un ejemplo? Cambiar el nombre de un cliente requiere actualizar todas sus pedidos, riesgo de inconsistencia.
-
¿Cuándo es útil la desnormalización? Ante problemas de rendimiento causados por Joins complejos, aceptando intencionalmente redundancias.
Fuentes más importantes
- https://es.wikipedia.org/wiki/Normalizaci%C3%B3n_(bases_de_datos)
- https://docs.microsoft.com/es-es/sql/relational-databases/normalization
- https://www.guru99.com/database-normalization.html
Literatura recomendada: Bases de datos
Keine Bücher für Kategorie "datenbanken" gefunden.



