Pregledali smo več vidikov normalizacije tabele zbirke podatkov. Najprej smo razpravljali o osnovnih načelih normalizacije baz podatkov. Nazadnje smo raziskali osnovne zahteve, določene s prvo normalno obliko (1NF). Zdaj pa nadaljujemo pot in pokrivamo načela druge normalne oblike (2NF).
Splošne zahteve 2NF
- Odstranite podmnožice podatkov, ki veljajo za več vrstic tabele in jih postavite v ločene tabele.
- Ustvarite odnose med temi novimi tabelami in njihovimi predhodniki z uporabo tujih ključev.
Ta pravila se lahko povzamejo v preprostem izjavo: 2NF poskuša zmanjšati količino odvečnih podatkov v tabeli tako, da jo iztisne, da ga doda v novo tabelo in ustvari razmerja med temi tabelami.
Poglejmo si primer. Predstavljajte si spletno trgovino, ki ohranja podatke o strankah v bazi podatkov. Imajo lahko eno samo tabelo, imenovano Stranke, z naslednjimi elementi:
- CustNum
- Ime
- Priimek
- Naslov
- Mesto
- Država
- ZIP
Kratek pogled na to tabelo kaže majhno količino odvečnih podatkov. Mi shranjujemo "Sea Cliff, NY 11579" in "Miami, FL 33157" vnose dvakrat vsakega. Zdaj se to morda ne zdi preveč dodano skladiščenje v našem preprostem primeru, ampak predstavljamo zapravljen prostor, če bi v tabeli imeli na tisoče vrstic. Poleg tega, če bi morali spremeniti poštno kodo za morsko skalo, bi morali to spremembo spremeniti v mnogih krajih po celotni bazi podatkov.
V strukturi baze podatkov, skladni z 2NF, se te odvečne informacije pridobivajo in shranijo v ločeni tabeli. Naša nova tabela (karkoli lahko rečemo ZIP-ji) ima lahko naslednja polja:
- ZIP
- Mesto
- Država
Če želimo biti super-učinkoviti, lahko to tabelo vnaprej napolnimo vnaprej - pošta nudi imenik vseh veljavnih poštnih številk in njihovih odnosov med mesti in mesti. Gotovo ste naleteli na situacijo, v kateri je bila uporabljena ta vrsta podatkovne baze. Nekdo, ki je naročil, bi morda najprej povprašal po vaši poštni številki in poznal mesto in državo, s katero ste klicali. Ta vrsta dogovora zmanjšuje napake operaterja in povečuje učinkovitost.
Zdaj, ko smo odstranili podvojene podatke iz tabele strank, smo zadovoljili prvo pravilo druge običajne oblike. Še vedno moramo uporabiti tuji ključ za povezovanje dveh miz. Za ustvarjanje tega razmerja bomo uporabili poštno številko (primarni ključ iz tabele ZIPs). Tukaj je tabela novih strank:
- CustNum
- Ime
- Priimek
- Naslov
- ZIP
Zdaj smo zmanjšali količino odvečnih podatkov, shranjenih v bazi podatkov, in naša struktura je v drugi normalni obliki.