Normalizarea bazei dvs. de date: Tranziția la a doua formă normală (2NF)

Punerea unei baze de date în a doua formă normală

În ultima lună, am analizat mai multe aspecte ale normalizării unei tabele de baze de date. În primul rând, am discutat despre principiile de bază ale normalizării bazei de date. Ultima dată, am analizat cerințele de bază stabilite în primul formular normal (1NF). Acum, să continuăm călătoria noastră și să acoperi principiile celei de-a doua forme normale (2NF).

Reamintim cerințele generale ale 2NF:

Aceste reguli pot fi rezumate într-o simplă declarație: 2NF încearcă să reducă cantitatea de date redundante dintr-o tabelă, extragând-o, plasând-o în tabele noi și creând relații între aceste tabele.

Să ne uităm la un exemplu. Imaginați-vă un magazin online care menține informațiile despre clienți într-o bază de date. Acestea ar putea avea o singură masă numită Clienți cu următoarele elemente:

O scurtă privire la acest tabel arată o cantitate mică de date redundante. Stocăm două înregistrări "Sea Cliff, NY 11579" și "Miami, FL 33157". Acum, ar putea părea că nu este prea mult stocat în exemplul nostru simplu, dar imaginați spațiul pierdut dacă am avea mii de rânduri în masa noastră. În plus, dacă codul poștal pentru Sea Cliff trebuia să se schimbe, ar fi trebuit să facem această schimbare în multe locuri din întreaga bază de date.

Într-o structură bază de date compatibilă cu 2NF, această informație redundantă este extrasă și stocată într-un tabel separat. Noua noastră tabelă (să o numim ZIPs) ar putea avea următoarele câmpuri:

Dacă vrem să fim super-eficienți, putem chiar să umplem masa în avans - biroul poștal oferă un director cu toate codurile poștale valabile și relațiile lor de oraș / stat. Desigur, ați întâlnit o situație în care acest tip de bază de date a fost utilizat. Cineva care a primit o comandă s-ar putea să vă fi cerut mai întâi codul dvs. poștal și apoi să știe orașul și statul de la care ați sunat. Acest tip de aranjament reduce eroarea operatorului și mărește eficiența.

Acum, când am eliminat datele duplicative din tabelul Clienți, am îndeplinit prima regulă a celui de-al doilea formular normal. Încă mai trebuie să folosim o cheie străină pentru a lega împreună cele două mese. Vom folosi codul ZIP (cheia primară din tabelul ZIPS) pentru a crea acea relație. Iată noul tabel al clienților noștri:

Am redus acum cantitatea de informații redundante stocate în baza de date și structura noastră este în a doua formă normală!

Dacă doriți să vă asigurați că baza de date este normalizată, explorați celelalte articole din această serie: