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.
Tabela podatkovne baze je v prvi normalni obliki, če:
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.
Tabela podatkovne baze je v drugi normalni obliki, če:
Č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č.