Normalización da súa base de datos: primeiro formulario normal

Estas dúas regras simples axudarán a normalizar a súa base de datos

O primeiro formulario normal (1NF) establece as regras básicas dunha base de datos organizada:

¿Que significan estas regras cando se contempla o deseño práctico dunha base de datos? De verdade é bastante sinxelo.

1. Eliminar a duplicación

A primeira regra indica que non debemos duplicar datos dentro da mesma liña dunha táboa. Dentro da comunidade de base de datos, este concepto chámase a atomicidade dunha táboa. As táboas que cumpren con esta regra son atómicas. Examinemos este principio cun exemplo clásico: unha táboa dentro dunha base de datos de recursos humanos que almacena a relación de administrador-subordinado. Para os efectos do noso exemplo, imos impoñer a regra de negocio que cada xestor pode ter un ou máis subordinados mentres que cada subordinado pode ter só un xestor.

Intuitivamente, ao crear unha lista ou folla de cálculo para rastrexar esta información, podemos crear unha táboa cos seguintes campos:

Non obstante, recorda a primeira regra imposta por 1NF: Elimina columnas duplicadas da mesma táboa. Claramente, as columnas Subordinate1-Subordinate4 son duplicadas. Leve un momento e ponderar os problemas que suscita este escenario. Se un xestor só ten un subordinado, as columnas Subordinate2-Subordinate4 son simplemente desperdicios de espazo de almacenamento (unha base de datos preciosa). Ademais, imaxina o caso en que un xestor xa ten 4 subordinados: ¿que pasa se toma outro empregado? Toda a estrutura da táboa esixe modificación.

Neste punto, unha segunda idea brillante ocorre habitualmente nos novatos da base de datos: Non queremos ter máis dunha columna e queremos permitir unha cantidade flexible de almacenamento de datos. Intentemos algo así:

E o campo Subordinados conterá varias entradas na forma "Mary, Bill, Joe".

Esta solución está máis preto, pero tamén queda lonxe da marca. A columna de subordinados aínda é duplicada e non atómica. Que ocorre cando necesitamos engadir ou eliminar un subordinado? Necesitamos ler e escribir todo o contido da táboa. Isto non é un gran problema nesta situación, pero que se un xerente tiña cen empregados? Ademais, complica o proceso de selección de datos da base de datos en futuras consultas.

Aquí tes unha táboa que satisfai a primeira regra de 1NF:

Neste caso, cada subordinado ten unha única entrada, pero os xestores poden ter varias entradas.

2. Identificar a chave primaria

Agora, que pasa coa segunda regra: identificar cada fila cunha única columna ou conxunto de columnas (a chave primaria )? Podes consultar a táboa anterior e suxerir o uso da columna subordinada como clave primaria. De feito, a columna subordinada é un bo candidato para unha chave primaria debido ao feito de que as regras da nosa empresa especificaron que cada subordinado pode ter só un xestor. Non obstante, os datos que escollimos para almacenar na nosa mesa fan que esta sexa unha solución menos que ideal. Que pasa se contratamos a outro empregado chamado Jim? Como almacenamos a súa relación de administrador-subordinado na base de datos?

É mellor usar un identificador verdadeiramente único (como unha ID de empregado) como clave principal . A nosa táboa final quedaría así:

Agora, a nosa mesa está en primeira forma normal. Se desexa continuar a aprender sobre a normalización, lea os outros artigos desta serie: