¿Qué es la forma normal en DBMS? – Tipos y ejemplos

Rodrigo Ricardo Publicado el 14 noviembre, 2020 7 minutos y 32 segundos de lectura

Diseño del sistema de gestión de bases de datos

Como probablemente sepa, una base de datos es a menudo una colección de información o datos organizados y almacenados en tablas con los esfuerzos realizados para garantizar su precisión y facilidad de recuperación. Durante el proceso de diseño en un sistema de administración de bases de datos, o DBMS, es de suma importancia que la disposición de las tablas y su relación entre sí sea correcta. También se tiene en cuenta cómo se agregan, editan y eliminan los datos. Las estructuras de la tabla, que constan de columnas y filas, también son importantes.

¿Por qué llegamos a este extremo?

Veamos un ejemplo para ver por qué todo esto es tan importante. John Tailor (cuyo apellido se escribe con una i not ay) finalmente puede irse de vacaciones de ensueño a Las Vegas. John se aloja en un hotel fabuloso. Cansado por el largo vuelo, se despertó tarde en medio de la noche y descubrió que su habitación formaba parte del pasaje al spa del hotel.

Al día siguiente, al regresar de compras, se dirigió a su habitación y fue recibido en la puerta por un nuevo invitado, John Taylor (cuyo apellido se escribe con una «y» en lugar de una «i»). Las vacaciones de sus sueños se están convirtiendo en una pesadilla y, frustrado, se retira. Entonces, la pregunta es, ¿cómo surgió esta confusión? Parece que hay fallas en el diseño del hotel, desorganización del servicio y errores de datos.

Esto no es diferente cuando se trata del diseño de DBMS. Como dice el viejo adagio informático: basura entra, basura sale. Las relaciones deficientes entre las tablas y los datos erróneos dan como resultado anomalías en la base de datos y esto afecta la calidad de la información. Entonces, ¿cómo solucionamos esto? Normalizamos los datos.

¿Qué es la normalización?

La normalización es el proceso de eliminar las incidencias existentes o posibles de anomalías, redundancias de datos e inexactitudes de datos en una base de datos. Esto limita las tablas a un propósito o entidad en particular. En el hotel, por ejemplo, una habitación es un área privada exclusiva para un solo huésped registrado a la vez y no debe servir como pasaje al spa o ser accesible para más de un cliente del spa.

Las formas normales

Se han desarrollado ciertas reglas en el diseño de sistemas de administración de bases de datos para organizar mejor las tablas y minimizar las anomalías. La etapa en la que se organiza una tabla se conoce como su forma normal (o etapa de normalización). Hay tres etapas de formas normales que se conocen como primera forma normal (o 1NF), segunda forma normal (o 2NF) y tercera forma normal (o 3NF). A medida que una tabla satisface progresivamente las condiciones de las diferentes formas normales, es menos propensa a las anomalías discutidas anteriormente.

Tipos de formas normales

Hablemos ahora de cada etapa de forma normal por turno:

Primera forma normal (o 1NF)

Se dice que una mesa está en 1NF si se cumplen las siguientes reglas:

  1. Las columnas deben tener valores únicos
  2. Las columnas deben tener nombres únicos
  3. Los valores de un atributo dado deben ser del mismo tipo de datos
  4. No hay dos registros (o filas) que sean idénticos

Supongamos que eres el nuevo peluquero de la ciudad. Desea almacenar los nombres y los datos de contacto de los clientes en una base de datos. Su personal en formación crea la siguiente tabla:

Identificación del clienteNombre del clienteClienteNo
015Juan256-2568, 524-4589
016Princesa487-5485,451-copia
027Tom458-4587
028Claire478-2689, 265-1486
029Robert485-5584, visa 254

Mire de cerca y verá que la tabla no se ajusta a las reglas de 1NF. La razón de esto es que el personal en formación guardó los segundos números de teléfono móvil de John, Princess y Robert dentro del mismo campo, lo que viola la regla 1. Y las segundas entradas de Princess y Robert se almacenan en un formato de datos incorrecto. Todos los demás números se guardan en formato numérico, mientras que sus segundos números se almacenan como cadenas con números y letras, lo que viola la regla 3.

Por lo tanto, la tabla debería verse así:

Identificación del clienteNombre del clienteClienteNo
015Juan256-2568
015Juan524-4589
016Princesa487-5485
016Princesa451-2679
027Tom458-4587
028Claire478-2689
028Claire265-1486
029Robert485-5584
029Robert254-8472

Segunda forma normal (o 2NF)

Se dice que una mesa está en 2NF si se cumplen las siguientes reglas:

  1. La tabla está en 1NF
  2. No debe haber dependencias parciales de ninguna columna en la clave principal

Ahora, supongamos que una empresa de seguridad almacena los datos del cliente de acuerdo con la categoría de artículos en custodia segura. Los clientes pueden traer varios elementos de diferentes clasificaciones para su custodia.

Como tal, se crea la siguiente tabla:

Número de clienteCustNameCustodia Clase
93214587JorgeJoyería
93866402NellyEscrituras de donaciones
93786254CecilioLetras del Tesoro
93214587JorgeEscrituras de donaciones
93786254CecilioJoyería

Entonces, esta tabla está en 1NF, ya que cada columna contiene valores únicos y las columnas son de tipos de datos idénticos. Pero la tabla no está en 2NF porque existen dependencias parciales entre las claves primarias y algunas de las columnas. CustName depende de CustomerNumber, pero no existe una relación real entre el nombre del cliente y la categoría del artículo en custodia segura.

El cumplimiento en 2NF implicaría separar las columnas en dos tablas, que ahora cumplirían con las reglas como esta:

Número de cliente CustName
93214587Jorge
93866402Nelly
93786254Cecilio
93214587Jorge
93786254Cecilio

y así:

Número de cliente Custodia Clase
93214587Joyería
93866402Escrituras de donaciones
93786254Letras del Tesoro
93214587Escrituras de donaciones
93786254Joyería

Tercera forma normal (o 3NF)

Se dice que una mesa está en el 3NF si las reglas son las siguientes:

  1. La mesa debe estar en el 2NF
  2. Todos los campos no primarios dependen del campo primario
  3. Se eliminan las dependencias transitivas

Volvamos al ejemplo de la empresa de seguridad. Su tabla original para direcciones de clientes se ve así:

Número de cliente CustNameCustodia ClaseCalleCiudadCódigo postal
93214587JorgeJoyería2 Dan StreetAlabamaGH578T
93866402NellyEscrituras de donaciones5 Limón LaneATLDE585R
93786254CecilioLetras del Tesoro2 Pit Aven corriente continuaFR526E
93214587JorgeEscrituras de donaciones6 calle arribaVCAH458W
93786254CecilioJoyería22 Gee RdAlabamaDD478H

Las entradas para » calle » y » ciudad » están vinculadas a través del código postal. Esto se denomina dependencia transitiva entre campos no primarios. Incluso puede haber dos personas en la misma dirección, que tengan artículos en la caja fuerte. La existencia de estas relaciones transitivas (o cuando los campos no dependen por completo de los campos primarios) viola la regla 2 de 3NF.

Observará que los datos del campo CustodyClass se repiten. Si queremos llegar a un verdadero 3NF, tendremos que dividirlos en sus propias tablas. Además, volveremos a enfocar la base de datos en el artículo que se almacena, ya que un cliente puede tener varios artículos en la caja fuerte.

La tabla se corrige separando estas relaciones en tablas individuales como esta:

Tabla de clases de custodia

CustodyClassIDCustodia Clase
1Joyería
2Escrituras de donaciones
3Letras del Tesoro

Tabla de direcciones

AddressIDCalleCiudadCódigo postal
12 Dan StreetAlabamaGH578T
25 Limón LaneATLDE585R
32 Pit Aven corriente continuaFR526E
46 calle arribaVCAH458W
522 Gee RdAlabamaDD478H

Tabla de clientes

Número de clienteNombre del clienteAddressID
1Jorge1
2Nelly2
3Cecilio3

Tabla de artículos

Identificación del artículoDescripción del ArtículoCustodyClassIDNúmero de cliente
1Anillo Super Bowl11
2Escritura de propiedad del lago22
3Bono de $ 50033
4anillo de rubí11
5Título del auto23

Finalmente, conectamos todo esto en la tabla 3NF haciendo referencia a los ID de las tablas relacionadas. Ahora, nuestra estructura es 3NF. Para llegar al tipo de artículo, necesita el número de cliente de la tabla Artículos; del mismo modo, el ID de cliente se une a la tabla de direcciones.

Identificación del artículoIdentificación del cliente
11
22
33
41
52

Resumen de la lección

Entonces, después de repasar todo, podemos decir que la comprensión de las anomalías de la base de datos facilita la comprensión de cómo las formas normales simplifican los datos, minimizando así las instancias o posibilidades de anomalías. A medida que una base de datos pasa por cada etapa normal, se desarrollan relaciones mejor estructuradas , haciendo que la base de datos sea a prueba de errores y eliminando las posibilidades de discrepancias en los datos.

Explora más sobre este tema

Selecciona un tema y sigue aprendiendo...

Rodrigo Ricardo
Rodrigo Ricardo Editor y fundador