Osnove normalizacije baze podataka

Ako radite sa bazama podataka izvesno vreme, sigurno ćete čuti termin normalizacija. Možda vas je neko i pitao da li je vaša baza podataka normalizovana ili da li ste koristili Bojs-Kodovu normalnu formu (BCNF). Normalizacija se uglavnom ne obavlja redovno jer se smatra da je to postupak mnogo primereniji teoretičarima i naučnicima nego praktičarima. Međutim, poznavanje principa normalizacije i njihova svakodnevna primena u bazi podataka zaista nije mnogo komplikovana i može izuzetno poboljšati funkcionisanje sistema za upravljanje bazama podataka. Ovde ćemo vam predstaviti koncept normalizacije i ukratko ćemo objasniti najuobičajenije normalne forme.

ŠTA JE NORMALIZACIJA?

Normalizacija je proces efikasnog organizovanja podataka u bazi podataka. Proces normalizacije se sprovodi da bi se postigla dva cilja. Prvo, da bi se eliminisali suvišni podaci (na primer, skladištenje istih podataka u najmanje dve tabele) i drugo, da bi se obezbedio smisao zavisnosti podataka (skladištenje samo onih podataka u tabeli koji su u relaciji). Oba cilja su izuzetno važna i korisna jer smanjuju prostor koji zauzima baza podataka i obezbeđuju logičnu povezanost podataka koji se nalaze u tabeli.

NORMALNE FORME

Stručnjaci za baze podataka stvorili su niz smernica čijom primenom se obezbeđuje normalizacija baza podataka. Ta uputstva se nazivaju normalne forme i obeležene su brojevima od jedan (najniža forma normalizacije naziva se prva normalna forma ili 1NF) do pet (peta normalna forma ili 5NF). U praktičnoj upotrebi su uglavnom 1NF, 2NF i 3NF i povremeno 4NF. Peta normalna forma se vrlo retko viđa i zbog toga je nećemo ovde razmatrati. Pre nego što počnemo da vas upoznajemo sa normalnim formama, važno je da istaknemo da one predstavljaju smernice i samo smernice. Povremeno je potrebno odstupiti od njih da bi se zadovoljili praktični zahtevi poslovanja. Međutim, kad god dođe do nekih promena, izuzetno je važno da se procene svi njihovi mogući uticaji na sistem kao i da se utvrde razlozi za pojavu nedoslednosti. Sad bismo mogli da razmotrimo normalne forme.

PRVA NORMALNA FORMA (1NF)

Prva normalna forma (1NF) postavlja najosnovniji skup pravila za organizovanu bazu podataka:
• Eliminisanje ponovljenih kolona u istoj tabeli.
• Pravljenje posebnih tabela za svaku grupu podataka koji su u relaciji i identifikovanje svakog reda pomoću posebne kolone ili skupa kolona (primarnog ključa).

DRUGA NORMALNA FORMA (2NF)

Druga normalna forma (2NF) još više smanjuje ponavljanje podataka:
• Tabela mora da zadovoljava kriterijume prve normalne forme.
• Treba ukloniti sve podskupove podataka koji se primenjuju na veći broj redova u tabeli i smestiti ih u posebne tabele
• Treba napraviti relacije između tih novih tabela i njihovih prethodnika pomoću stranih ključeva.

TREĆA NORMALNA FORMA (3NF)

Treća normalna forma nas vodi jedan veliki korak napred:
• Tabela mora da zadovoljava kriterijume druge normalne forme.
• Treba ukloniti kolone koje ne zavise od primarnog ključa.

BOJS-KODOVA NORMALNA FORMA (BCNF ILI 3,5NF)

Bojs-Kodova normalna forma naziva se i „treća i po (3,5) normalna forma“ i dodaje još jedan zahtev:
• Tabela mora da zadovoljava kriterijume treće normalne forme.
• Sve determinante moraju biti kandidati za ključ.

ČETVRTA NORMALNA FORMA (4NF)

Konačno, četvrta normalna forma ima još jedan dodatni element:
• Tabela mora da zadovoljava kriterijume treće normalne forme.
• Relacija je u četvrtoj normalnoj formi ako nema nijednu višeznačnu zavisnost.
Ne zaboravite da su smernice normalizacije kumulativne. Da bi baza podataka bila u drugoj normalnoj formi, prvo mora da zadovolji sve kriterijume baze podataka prve normalne forme.

TREBA LI DA IZVRŠIM NORMALIZACIJU?

Iako je normalizacija baze podataka često odlična ideja, ipak nije neophodna. U stvari, postoje i neki slučajevi u kojima je namerno narušavanje pravila normalizacije ne samo prihvatljivo, već i preporučljivo.
Ako želite da budete sigurni da je vaša baza podataka normalizovana, obavestite se kako da postavite svoju bazu podataka u prvu normalnu formu.

5070-xa-osnove-normalizacije-baze-podataka-xa