Normalizacija je formalen način, da zagotovimo, da imajo naše tabele dobro strukturo, to je, da ima vsaka tabela ustrezne atribute.
Ponovimo: podatki v bazah podatkov so zapisani v tabelah, tabele so med seboj povezane s ključi. Vsaka tabela mora imeti stolpec (polje ali atribut) za zapis primarnega ključa. Primarni ključ je enolični zapis podatkov v vrstici (zapis). Tuj ključ v tabeli je zapis primarnega kjuča druge tabele- tako podatke povežemo med seboj .
Normalizacija je postopek učinkovitega organiziranja podatkov v podatkovni bazi.
Rešuje tri probleme:
Problemi | Neučinkovita organizacija podatkov | Učinkovita organizacija podatkov |
problem vstavljanja podatkov | eni te isti podatke se vpisujejo večkrat | podatki se vpisujejo samo enkrat |
problem brisanja podatkov | brisanje zapisa podatkov v eni tabeli pripelje do izbrisa podatkov v drugih tabelah | brisanje podatkov v eni tabeli ne izbriše podatkov iz drugih tabel |
problem posodabljanja podatkov | podatke je potrebno posodobit povsod tam, kjer so zapisani | posodabljanje ni oteženo, ker so podatki zapisani samo enkrat in so samo na enem mestu |
Pri kreiranju tabel moramo biti pozorni:
-
Tabela ne sme vsebovati več vrednosti za en del informacije, tako v polju kot v stolpcih tabele. Primer je tabela Avtorji, kateri smo dodajali polja za naslov knjige..., glej: http://www.kazeta.si/node/6. V tabeli Avtorji smo uporabili več atributov za vpis knjig (Naslov knjige1, Naslov knjige 2, Naslov knjige3), katere smo pripisali enemu tipu informacije- to je avtorju knjige. Primarni ključ v tabeli nam mora identificirati točno določeno informacijo. V tem primeru, nam primarni ključ Avtorja ne da en naslov knjige, temveč več naslovov.
Ali lahko s primarnim ključem (ID avtorja) v zgornji tabeli pridemo do naslova samo ene knjige. Ne moremo! -
Tabele ne smejo vsebovati ponavljajočih podatkov drugih vsebin, predmetov ali snovi. V spodnji tabeli vidimo, da se nam ponavljajo podatki o založbi.
V takšnih primerih naredimo novo tabelo Založba: