¿Qué sabes sobre las formas normales en bases de datos?
sobes.tech AI
Respuesta de la IA
Las formas normales (FN) son un conjunto de reglas y recomendaciones para diseñar la estructura de una base de datos relacional, dirigidas a minimizar la redundancia de datos y prevenir anomalías al insertar, actualizar y eliminar.
Formas normales principales:
-
Primera forma normal (1FN):
- Cada atributo (columna) debe contener valores atómicos (indivisibles).
- Ausencia de grupos repetitivos de atributos.
- Cada fila debe ser única (presencia de clave primaria).
-
Segunda forma normal (2FN):
- Está en 1FN.
- Cada atributo no clave debe depender completamente de toda la clave primaria (si la clave primaria es compuesta).
-
Tercera forma normal (3FN):
- Está en 2FN.
- Ausencia de dependencias transitivas de atributos no clave desde la clave primaria (un atributo no clave no debe depender de otro atributo no clave).
-
Forma de Boyce-Codd (FBC/BCNF):
- Versión más estricta de 3FN.
- Cada dependencia no trivial $X \to Y$ debe tener $X$ como superclave.
-
Cuarta forma normal (4FN):
- Está en FBCNF.
- Ausencia de dependencias multivaluadas.
-
Quinta forma normal (5FN):
- Está en 4FN.
- Ausencia de dependencias de unión.
Objetivos de la normalización:
- Reducir la redundancia de datos.
- Prevenir anomalías (inserciones, actualizaciones, eliminaciones).
- Garantizar la integridad de los datos.
- Simplificar la estructura de la base de datos.
Ejemplo:
Tabla con redundancia (no en 1FN):
| OrderID | Producto | Precio |
|---|---|---|
| 1 | Laptop, Ratón | 1000, 20 |
| 2 | Teclado | 50 |
Tabla normalizada (en 1FN y superiores):
Tabla "Pedidos":
| OrderID |
|---|
| 1 |
| 2 |
Tabla "Líneas de pedido":
| LineID | OrderID | Producto | Precio |
|---|---|---|---|
| 1 | 1 | Laptop | 1000 |
| 2 | 1 | Ratón | 20 |
| 3 | 2 | Teclado | 50 |
La normalización es una etapa importante en el diseño, pero una normalización excesiva puede llevar a un aumento en la cantidad de uniones en las consultas, lo que puede afectar negativamente el rendimiento. La elección del nivel óptimo de normalización depende de los requisitos específicos y los compromisos. La desnormalización a veces se usa para optimizar el rendimiento en ciertos escenarios, violando conscientemente las reglas de las formas normales.