Normalizacija

Normalizacijo podatkovne baze lahko zlahka razumemo s pomočjo primera. Predpostavimo, da videoteka vzdržuje podatkovno bazo filmov, ki jih izposojajo. Brez kakršne koli normalizacije podatkov baze so vsi podatki shranjeni v eni tabeli, kot je prikazano spodaj. V nadaljevanju si bomo ogledali, kako tabele v podatkovni bazi normalizirmo do vključno tretje normalne oblike.

ime priimek naziv opis naslov izposojeno
Marija Kranjc ga. gospa Celovška cesta 134 Moje pesmi, moje sanje
Janez Novak g. gospod Dunajska cesta 67 Boter; Kaznilnica odrešitve
Janez Novak g. gospod Tržaška cesta 258 Schindlerjev seznam; Pianist

Opazimo lahko, da celice v stolpcu izposojeno vsebujejo več vrednosti. Spremenimo tabelo v prvo normalno obliko.

Prva normalna oblika (1NF)

ime priimek naziv opis naslov izposojeno
Marija Kranjc ga. gospa Celovška cesta 134 Moje pesmi, moje sanje
Janez Novak g. gospod Dunajska cesta 67 Boter
Janez Novak g. gospod Dunajska cesta 67 Kaznilnica odrešitve
Janez Novak g. gospod Tržaška cesta 258 Schindlerjev seznam
Janez Novak g. gospod Tržaška cesta 258 Pianist


Ponovimo: sestavljeni ključ je primarni ključ, sestavljen iz več stolpcev, ki ga uporabljamo za edinstveno identifikacijo zapisa. V podatkovni bazi imamo dve osebi z istim polnim imenom Janez Novak, vendar živita v različnih krajih. Zato zahtevamo polno ime in naslov za enolično identifikacijo zapisa. To je sestavljeni ključ. Spremenimo tabelo v drugo normalno obliko.

Druga normalna oblika (2NF)

Če želimo podatkovno bazo spremeniti v drugo normalno obliko, moramo razdeliti tabelo, ki je v prvi normalni obliki. To storimo takole:

clan_id ime priimek naziv opis naslov
1 Marija Kranjc ga. gospa Celovška cesta 134
2 Janez Novak g. gospod Dunajska cesta 67
3 Janez Novak g. gospod Tržaška cesta 258

clan_id izposojeno
1 Moje pesmi, moje sanje
2 Boter
2 Kaznilnica odrešitve
3 Schindlerjev seznam
3 Pianist

Uvedli smo nov stolpec clan_id, ki je primarni ključ v prvi tabeli in tuji ključ v drugi tabeli. Najbolje je, da v večini primerov kot primarni ključ nastavimo nadomestni ključ.