Normalización de su base de datos: primer formulario normal

Estas dos reglas simples ayudarán a normalizar su base de datos First Normal Form (1NF) establece las reglas básicas para una base de datos organizada: Eliminar columnas duplicadas de la misma tabla.

Estas dos reglas simples ayudarán a normalizar su base de datos

First Normal Form (1NF) establece las reglas básicas para una base de datos organizada:

  • Eliminar columnas duplicadas de la misma tabla.
  • Cree tablas separadas para cada grupo de datos relacionados e identifique cada fila con una columna única (la clave principal).

¿Qué significan estas reglas cuando se contempla el diseño práctico de una base de datos? En realidad es bastante simple.

Eliminar duplicación

La primera regla dicta que no debemos duplicar datos dentro de la misma fila de una tabla. Dentro de la comunidad de bases de datos, este concepto se conoce como la atomicidad de una tabla. Se dice que las tablas que cumplen con esta regla son atómicas. Exploremos este principio con un ejemplo clásico: una tabla dentro de una base de datos de recursos humanos que almacena la relación gerente-subordinado. Para los propósitos de nuestro ejemplo, impondremos la regla comercial de que cada gerente puede tener uno o más subordinados, mientras que cada subordinado puede tener solo un administrador.

Intuitivamente, al crear una lista u hoja de cálculo para rastrear esta información, podríamos crear una tabla con los siguientes campos:

  • Gerente
  • Subordinado1
  • Subordinado2
  • Subordinado3
  • Subordinado4

Sin embargo, recuerde la primera regla impuesta por 1NF: eliminar columnas duplicadas de la misma tabla. Claramente, las columnas Subordinate1-Subordinate4 son duplicativas. Tómese un momento y reflexione sobre los problemas planteados por este escenario. Si un administrador solo tiene un subordinado, las columnas Subordinate2-Subordinate4 son simplemente espacio de almacenamiento desperdiciado (un bien de base de datos precioso). Además, imagine el caso en el que un gerente ya tiene 4 subordinados: ¿qué sucede si contrata a otro empleado? Toda la estructura de la tabla requeriría modificación.

En este punto, generalmente se les ocurre una segunda idea brillante a los novatos de la base de datos: no queremos tener más de una columna y queremos permitir una cantidad flexible de almacenamiento de datos. Probemos algo como esto:

  • Gerente
  • Subordinados

Y el campo Subordinados contendría múltiples entradas en la forma «Mary, Bill, Joe».

Esta solución está más cerca, pero también está a la altura de la marca. La columna de subordinados sigue siendo duplicativa y no atómica. ¿Qué sucede cuando necesitamos agregar o eliminar un subordinado? Necesitamos leer y escribir todo el contenido de la tabla. Eso no es un gran problema en esta situación, pero ¿qué pasa si un gerente tiene cien empleados? Además, complica el proceso de selección de datos de la base de datos en consultas futuras.

Aquí hay una tabla que satisface la primera regla de 1NF:

  • Gerente
  • Subordinar

En este caso, cada subordinado tiene una sola entrada, pero los gerentes pueden tener múltiples entradas.

Identificar la clave primaria

Ahora, ¿qué pasa con la segunda regla: identificar cada fila con una columna única o un conjunto de columnas (la clave principal). Puede echar un vistazo a la tabla anterior y sugerir el uso de la columna subordinada como clave principal. De hecho, la columna subordinada es un buen candidato para una clave primaria debido al hecho de que nuestras reglas de negocio especifican que cada subordinado puede tener un solo gerente. Sin embargo, los datos que hemos elegido almacenar en nuestra tabla hacen que esta sea una solución menos que ideal. ¿Qué sucede si contratamos a otro empleado llamado Jim? ¿Cómo almacenamos su relación gerente-subordinado en la base de datos?

Es mejor utilizar un identificador verdaderamente único (como una identificación de empleado) como clave principal. Nuestra mesa final se vería así:

  • ID del gerente
  • ID subordinada

¡Ahora, nuestra mesa está en la primera forma normal! Más allá de esto, hay opciones para poner su base de datos en el segundo formulario normal y en el tercer formulario normal si está entusiasmado con una organización aún mayor.

Rate article
labsfabs.com
Add a comment