Normalizacija vaše baze podataka: Prijelaz na drugi uobičajeni obrazac (2NF)

Stavljanje baze podataka u drugi normalan obrazac

Tijekom proteklog mjeseca pregledali smo nekoliko aspekata normalizacije tablice baze podataka. Prvo smo razgovarali o osnovnim načelima normalizacije baze podataka. Zadnji put smo istražili osnovne uvjete propisane prvim normalnim oblikom (1NF). Sada, nastavimo na putovanje i pokrivamo načela drugog normalnog oblika (2NF).

Sjetite se općih zahtjeva 2NF:

Ova pravila mogu se sažeti u jednostavnoj izjavi: 2NF pokušava smanjiti količinu redundantnih podataka u tablici tako što će je izdvojiti, staviti je u novu tablicu i stvoriti veze između tih tablica.

Pogledajmo primjer. Zamislite mrežnu trgovinu koja održava podatke o klijentima u bazi podataka. Mogu imati jednu tablicu pod nazivom Klijenti s sljedećim elementima:

Kratki pogled na ovu tablicu otkriva malu količinu redundantnih podataka. Pohranjujemo dva unosa dvaju unosa "Sea Cliff, NY 11579" i "Miami, FL 33157". Sada to možda neće izgledati previše pohranjeno u našem jednostavnom primjeru, ali zamislite gubitak prostora ako imamo tisuće redaka u našem stolu. Osim toga, ako se poštanski broj za Sea Cliff promijeni, morali bismo izvršiti tu promjenu na mnogim mjestima diljem baze podataka.

U strukturi baze podataka koja je usklađena s 2NF, ove se suvišne informacije ekstrahiraju i pohranjuju u zasebnu tablicu. Naša nova tablica (nazovimo ZIP) može imati sljedeća polja:

Ako želimo biti super-učinkoviti, možemo unaprijed napuniti ovu tablicu - poštanski ured pruža popis svih važećih poštanskih brojeva i njihovih odnosa gradova i država. Sigurno ste naišli na situaciju u kojoj je ova vrsta baze podataka bila korištena. Netko tko je primio narudžbu možda je najprije zatražio vaš poštanski broj, a zatim znao grad i državu iz koje pozivaš. Ovakav način dogovora smanjuje pogrešku operatera i povećava učinkovitost.

Sada kada smo uklonili duplicirane podatke iz tablice Kupci, zadovoljili smo prvo pravilo drugog normalnog obrasca. Još uvijek moramo upotrijebiti stranog ključa za povezivanje dvaju tablica zajedno. Koristit ćemo poštanski broj (primarni ključ iz tablice ZIPs) kako bismo stvorili taj odnos. Evo naše nove tablice kupaca:

Sada smo minimizirali količinu suvišnih podataka pohranjenih u bazi podataka i naša struktura je u drugom normalnom obliku!

Ako želite osigurati normalizaciju baze podataka, istražite druge članke ove serije: