Normalització de la vostra base de dades: primer formulari normal

Aquestes dues senzilles regles ajudaran a normalitzar la vostra base de dades

El primer formulari normal (1NF) estableix les regles bàsiques per a una base de dades organitzada:

Quines són aquestes regles quan es contempla el disseny pràctic d'una base de dades? De fet, és bastant senzill.

1. Elimineu la duplicació

La primera regla estableix que no hem de duplicar les dades dins de la mateixa fila d'una taula. Dins de la comunitat de bases de dades, aquest concepte es coneix com l'atomització d'una taula. Les taules que compleixen aquesta regla es consideren atòmiques. Explorem aquest principi amb un exemple clàssic: una taula dins d'una base de dades de recursos humans que emmagatzema la relació subordinada del gestor. A efectes del nostre exemple, imposarem la regla de l'empresa que cada administrador pot tenir un o més subordinats, mentre que cada subordinat pot tenir només un gestor.

Intuïtivament, quan creeu una llista o full de càlcul per fer el seguiment d'aquesta informació, podríem crear una taula amb els següents camps:

No obstant això, recordeu la primera regla imposada per 1NF: elimineu les columnes duplicades de la mateixa taula. Clarament, les columnes Subordinate1-Subordinate4 són duplicades. Preneu-vos un moment i pondereu els problemes plantejats per aquest escenari. Si un administrador només té un subordinat, les columnes Subordinate2-Subordinate4 simplement es malgasten l'espai d'emmagatzematge (una mercaderia valuosa de la base de dades). A més, imagineu el cas en què un administrador ja té 4 subordinats: què passa si pren un altre empleat? Tota l'estructura de la taula requeriria una modificació.

En aquest moment, una segona idea brillant generalment es dóna als principiants de la base de dades: no volem tenir més d'una columna i volem permetre una quantitat flexible d'emmagatzematge de dades. Intentem fer alguna cosa així:

I el camp Subordinats contenia diverses entrades en la forma "Mary, Bill, Joe".

Aquesta solució és més propera, però també no arriba a la marca. La columna de subordinats encara és duplicada i no atòmica. Què passa quan necessitem afegir o eliminar un subordinat? Hem de llegir i escriure tot el contingut de la taula. Això no és un gran problema en aquesta situació, però, què passa si un directiu té cent empleats? A més, complica el procés de selecció de dades de la base de dades en futures consultes.

Aquí teniu una taula que satisfà la primera regla de 1NF:

En aquest cas, cada subordinat té una única entrada, però els administradors poden tenir diverses entrades.

2. Identifiqueu la clau principal

Ara, què passa amb la segona regla: identifica cada fila amb una única columna o conjunt de columnes (la clau principal )? Podeu fer un cop d'ull a la taula anterior i suggerir l'ús de la columna secundària com a clau principal. De fet, la columna subordinada és un bon candidat per a una clau principal a causa del fet que les nostres regles de negoci especifiquen que cada subordinat pot tenir només un administrador. No obstant això, les dades que hem triat per emmagatzemar a la nostra taula fan que aquesta sigui una solució menys que ideal. Què passa si contractem un altre empleat anomenat Jim? Com podem emmagatzemar la seva relació de gestió-subordinada a la base de dades?

El millor és utilitzar un identificador veritablement únic (com ara una identificació d'empleat) com a clau principal . La nostra taula final es veuria així:

Ara, la nostra taula està en primera forma normal. Si voleu seguir aprenent sobre la normalització, llegiu els altres articles d'aquesta sèrie: