Sadržaj
Pogledali smo nekoliko aspekata normalizacije tablice baze podataka. Prvo smo razgovarali o osnovnim načelima normalizacije baze podataka. Prošli smo put istražili osnovne zahtjeve postavljene prvim normalnim obrascem (1NF). Sada, nastavimo naše putovanje i pokrijmo načela drugog normalnog oblika (2NF).
Opći zahtjevi 2NF
- Uklonite podskupove podataka koji se odnose na više redaka tablice i smjestite ih u zasebne tablice.
- Stvarajte odnose između ovih novih tablica i njihovih prethodnika korištenjem stranih ključeva.
Ova se pravila mogu sažeti u jednostavnoj izjavi: 2NF pokušava smanjiti količinu suvišnih podataka u tablici ekstrahiranjem, stavljanjem u novu tablicu i stvaranje odnosa između tih tablica.
Pogledajmo primjer. Zamislite internetsku trgovinu koja podatke o klijentima održava u bazi podataka. Možda će imati jednu tablicu pod nazivom Kupci sa sljedećim elementima:
- CustNum
- Ime
- Prezime
- Adresa
- Grad
- država
- poštanski
Kratki pogled na ovu tablicu otkriva malu količinu suvišnih podataka. Dvaput čuvamo unose "Sea Cliff, NY 11579" i "Miami, FL 33157". E sad, to se možda ne čini previše dodavanjem prostora za pohranu u našem jednostavnom primjeru, ali zamislite izgubljeni prostor kada bismo u svojoj tablici imali tisuće redaka. Uz to, ako bi se promijenio poštanski broj Sea Cliff, morat ćemo to promijeniti na mnogim mjestima u bazi podataka.
U strukturi baze podataka koja podržava 2NF, ove se suvišne informacije izdvajaju i pohranjuju u zasebnu tablicu. Naša nova tablica (nazovimo je ZIP-ovi) može imati sljedeća polja:
- poštanski
- Grad
- država
Ako želimo biti super učinkoviti, možemo čak i unaprijed napuniti ovu tablicu - pošta pruža direktorij svih važećih poštanskih brojeva i njihovih odnosa s gradom i državom. Sigurno ste naišli na situaciju kada se ova vrsta baze podataka koristila. Netko koji je uzeo narudžbu možda vas je najprije pitao za poštanski broj, a zatim je znao grad i državu iz koje ste zvali. Ova vrsta rasporeda smanjuje pogrešku operatera i povećava učinkovitost.
Sad kad smo uklonili duplikate podataka iz tablice Kupci, zadovoljili smo prvo pravilo drugog normalnog oblika. Još uvijek moramo koristiti inozemni ključ za povezivanje dviju tablica. Za stvaranje tog odnosa koristit ćemo poštanski broj (primarni ključ iz tablice ZIP-a). Evo naše nove tablice za kupce:
- CustNum
- Ime
- Prezime
- Adresa
- poštanski
Sada smo smanjili količinu suvišnih informacija pohranjenih u bazi podataka, a naša je struktura u drugom normalnom obliku.