Skip to main content

Poner una base de datos en segunda forma normal (2NF)

Base de datos #13 | Normalización (1FN, 2FN y 3FN) (Abril 2025)

Base de datos #13 | Normalización (1FN, 2FN y 3FN) (Abril 2025)
Anonim

Hemos examinado varios aspectos de la normalización de una tabla de base de datos. Primero, discutimos los principios básicos de la normalización de la base de datos. La última vez, exploramos los requisitos básicos establecidos por la primera forma normal (1NF). Ahora, continuemos nuestro viaje y cubramos los principios de la segunda forma normal (2NF).

Los requisitos generales de 2NF

  • Elimine los subconjuntos de datos que se aplican a varias filas de una tabla y colóquelos en tablas separadas.
  • Cree relaciones entre estas nuevas tablas y sus predecesoras mediante el uso de claves externas.

Estas reglas se pueden resumir en una declaración simple: 2NF intenta reducir la cantidad de datos redundantes en una tabla extrayéndola, colocándola en nuevas tablas y creando relaciones entre esas tablas.

Veamos un ejemplo. Imagine una tienda en línea que mantiene la información del cliente en una base de datos. Es posible que tengan una sola tabla llamada Clientes con los siguientes elementos:

  • CustNum
  • Nombre de pila
  • Apellido
  • Dirección
  • Ciudad
  • Estado
  • cremallera

Un breve vistazo a esta tabla revela una pequeña cantidad de datos redundantes. Estamos almacenando las entradas "Sea Cliff, NY 11579" y "Miami, FL 33157" dos veces cada una. Ahora, puede que no parezca un almacenamiento demasiado agregado en nuestro simple ejemplo, pero imagine el espacio desperdiciado si tuviéramos miles de filas en nuestra tabla. Además, si el código postal de Sea Cliff cambiara, tendríamos que hacer ese cambio en muchos lugares de la base de datos.

En una estructura de base de datos compatible con 2NF, esta información redundante se extrae y almacena en una tabla separada. Nuestra nueva tabla (llamémosla ZIPs) podría tener los siguientes campos:

  • cremallera
  • Ciudad
  • Estado

Si queremos ser súper eficientes, incluso podemos llenar esta tabla con anticipación: la oficina de correos proporciona un directorio de todos los códigos postales válidos y sus relaciones ciudad / estado. Seguramente, ha encontrado una situación en la que se utilizó este tipo de base de datos. Alguien que tomó una orden podría haberle pedido su código postal primero y luego supo la ciudad y el estado desde el que estaba llamando. Este tipo de arreglo reduce el error del operador y aumenta la eficiencia.

Ahora que hemos eliminado los datos duplicados de la tabla Clientes, hemos cumplido con la primera regla de la segunda forma normal. Todavía necesitamos usar una clave externa para unir las dos tablas. Usaremos el código postal (la clave principal de la tabla ZIP) para crear esa relación. Aquí está nuestra nueva tabla de Clientes:

  • CustNum
  • Nombre de pila
  • Apellido
  • Dirección
  • cremallera

Ahora hemos minimizado la cantidad de información redundante almacenada en la base de datos y nuestra estructura se encuentra en una segunda forma normal.