Primera forma normal

La primera forma normal es el primer paso en la normalización de la base de datos. Las siguientes condiciones deben cumplirse para que una tabla esté en la primera forma normal:

  • Todos los campos deben tener valores atómicos. La atomicidad significa que todas las columnas deben dividirse a menos que sus valores se vuelvan indivisibles . Entonces, no podemos usar una tupla para dos entidades, tampoco podemos fusionar los atributos.
  • Debe existir una clave en la tabla que identifique de forma única sus tuplas.

En otras palabras, evite guardar valores en formato separado por comas en la base de datos. Hacen que una tabla falle en la primera forma normal en la mayoría de los casos.

Problemas 1NF Direcciones

Hay dos casos en los que una tabla falla 1NF y provocan dos problemas diferentes. Si una tabla guarda un atributo de varios valores en formato separado por comas, se vuelve difícil actualizar o insertar otro valor. Uno debe recuperar la cadena completa, hacer cambios y luego ponerla en la base de datos. Mientras que en otro caso, si una tupla representa dos entidades porque tienen todos los demás valores de atributos iguales.

Normalización a 1NF

Una tabla se puede normalizar a 1FN agregando más columnas para que las tuplas sean únicas o usando otra tupla para cada valor de un atributo multivaluado, según la propiedad de 1NF que falta en el diseño de la tabla.

Ejemplos

Ejemplo 1

Una tabla que rastrea la ubicación de los usuarios.

Usuario Localización
UN 33.680565, 73.020199
B 33.646104, 72.990074

Aquí, la columna Ubicación se puede dividir en dos columnas, por lo que anula la propiedad de atomicidad .

Usuario Latitud Longitud
UN 33.680565 73.020199
B 33.646104 72.990074

La tabla está en 1NF ahora porque las columnas tienen valores atómicos. Además, existe una clave.

Ejemplo 2

Considere la siguiente tabla

Nombre de usuario Amigos
UN ANTES DE CRISTO
B C
C UN

Aquí, la columna Amigos se usa para almacenar un atributo de varios valores . Para eliminar a C y A, debemos obtener el valor de las columnas A Friends , eliminar C y luego volver a colocarlo. Podemos resolver el problema fácilmente siguiendo las reglas de 1NF . Para hacer la tabla en primera forma normal hacemos otra tupla para cada combinación de amigos.

Nombre de usuario tiene amigo
UN B
UN C
B C
C UN

Hacer la transformación puede resultar en la pérdida de algunas formas normales más fuertes, por lo que también debemos cuidarlas.

Ejemplo 3

Producto Tamaño Precio
UN pequeña $20
UN largo $30
B pequeño grande $15

En la siguiente tabla, se utiliza una tupla para varias entidades . Esto puede parecer bueno si el precio del producto B no depende del tamaño, pero puede resultar un problema si cambiamos de opinión y queremos cobrar más por el producto B de gran tamaño. Siempre tendremos que crear otra tupla. Entonces, es mejor tener una tupla separada desde el principio.

Producto Tamaño Precio
UN pequeña $20
UN largo $30
B pequeña $15
B largo $15

Ejemplo 4

Considere la tabla en una base de datos de una compañía de taxis que se usa para mantener el registro de todos los viajes.

Nombre de usuario Conductor Lugar de recogida Punto de entrega
UN D1 ubicación-a ubicación-b
B D2 ubicación-a Ubicación-c
UN D1 ubicación-a ubicación-b

En la tabla anterior, no podemos identificar los dos viajes similares que tuvo la persona A. Una persona puede tener un viaje similar con el mismo conductor. Es un problema, pero se puede eliminar fácilmente agregando otra columna. En este caso, puede ser DateTime , que registra la fecha y la hora del viaje. Por lo tanto, podemos diferenciar los dos paseos.

Nombre de usuario Conductor Fecha y hora Lugar de recogida Punto de entrega
UN D1 2018-01-15T13:45:30 ubicación-a ubicación-b
B D2 2018-01-15T13:45:30 ubicación-a Ubicación-c
UN D1 2018-01-20T13:45:30 ubicación-a ubicación-b

Temas relacionados

  • Normalización
  • bases de datos