Sobes.tech
Middle

¿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.