Segunda Forma Normal (2NF)

La Segunda Forma Normal (2NF) se enfoca en eliminar dependencias parciales, asegurando que todos los atributos no clave dependan completamente de la clave primaria. Este paso garantiza una estructura más limpia y eficiente en el modelo de datos. Una dependencia parcial ocurre cuando un atributo depende solo de una parte de una clave primaria compuesta.

Por ejemplo:

Para implementar la 2NF:

  1. Identificar dependencias parciales: Examinar si los atributos no clave están vinculados completamente a la clave primaria.

  2. Crear nuevas entidades para resolver estas dependencias:

    CREATE OR REPLACE TABLE manufacturers (
        manufacturer_id NUMBER(10,0) PRIMARY KEY,
        manufacturer_name VARCHAR(255)
    );
    
    CREATE OR REPLACE TABLE details (
        detail_id NUMBER(10,0) PRIMARY KEY,
        detail_description VARCHAR(255)
    );
    
    
  3. Poblar las entidades nuevas con datos únicos:

    INSERT INTO manufacturers (manufacturer_id, manufacturer_name)
    SELECT DISTINCT manufacturer_id, manufacturer_name
    FROM products;
    
    
  4. Actualizar las relaciones en las tablas originales: Usar claves foráneas para enlazar las nuevas entidades.


Tercera Forma Normal (3NF)

La Tercera Forma Normal (3NF) elimina dependencias transitivas. Una dependencia transitiva ocurre cuando un atributo no clave depende de otro atributo no clave, en lugar de depender directamente de la clave primaria. Este paso mejora aún más la organización y elimina redundancias.

Por ejemplo:

Pasos para implementar la 3NF:

  1. Identificar dependencias transitivas: Revisar atributos no clave que dependan de otros atributos no clave.

  2. Crear nuevas entidades para almacenar estos datos:

    CREATE OR REPLACE TABLE locations (
        location_id NUMBER(10,0) PRIMARY KEY,
        location VARCHAR(255)
    );
    
    
  3. Transferir datos únicos a la nueva entidad:

    INSERT INTO locations (location_id, location)
    SELECT ROW_NUMBER() OVER (ORDER BY location), location
    FROM manufacturers
    GROUP BY location;
    
    
  4. Eliminar columnas redundantes en la tabla original:

    ALTER TABLE manufacturers
    DROP COLUMN location;
    
    
  5. Actualizar las relaciones entre entidades: Establecer claves foráneas que vinculen las nuevas entidades con las tablas originales.