Ako ste se već bavili bazama podataka, onda ste sigurno čuli za pojam „normalizacija“. Možda vas je neko i pitao za vašu bazu da li je normalizovana. Normalizacija se često, ali bez ikakve osnove, svrstava u naprednije tehnike projektovanja baza podataka. Međutim, poznavanje principa normalizacije i njihova primena u dizajnu baza podataka, zapravo nije toliko komplikovana a primenom mogu se postići dramatično bolje performanse. U narednim redovima upoznaćemo vas sa konceptom normalizacije i provesti vas kroz najčešće normalne forme.
Pa, šta zapravo predstavlja normalizacija? U osnovi, to je proces kojim podatke u bazi organizujemo na najefikasniji mogući način. Postoje dva osnovna cilja normalizacije:
- Eliminisanje redundantnosti podataka, što znači uklanjanje pojave čuvanja istog podatka u više od jedne tabele.
- Osiguravanje međuzavisnosti podataka, što znači da u bazi čuvamo samo bitne podatke koji su međusobno povezani.
Stručnjaci za baze podataka razvili su seriju nivoa za obezbeđivanje normalizovanih baza podataka. Ove linije vodilje (nivoi) poznate su kao „normalne forme“ i označene su brojkama od jedan (najniža forma normalizacije, poznata kao „prva normalan forma“ ili 1NF) do pet (peta normalna forma ili 5NF). U praksi, najčešće se srećemo sa bazama podataka koje se nalaze u 1NF, 2NF i 3NF, a ređe i sa bazama u četvrtoj normalnoj formi (4NF). Peta normalna forma se vrlo retko sreće, a ona je i najdiskutabilnija.
Pre nego što krenemo sa upoznavanjem samih normalnih formi, treba da kažemo da su ove forme samo vodilje za optimizaciju, i samo vodilje (što znači da ih ne treba u svakoj situaciji striktno primenjivati). Ponekad je neophodno da „zaobiđemo“ normalizaciju radi zadovoljenja nekih poslovnih zahteva. A sada ćemo proći kroz najčešće normalne forme.
Prvom normalnom formom (1NF) postavljamo osnovna pravila za organizaciju baze podataka:
- Eliminacija dupliranih kolona (atributa) unutar jedne iste tabele.
- Kreiranje odvojenih tabela za svaku grupu bitnih podataka (entitet, poveznik) i obezbeđivanje jedinstvene identifikacije svakog reda (n-torke) u koloni (primarni ključ).
Drugom normalnom formom (2NF) produbljujemo dalje koncept uklanjanja dupliranih podataka:
- Izdvajanje podskupa podataka koji se ponavljaju u više redova tabele u posebnu tabelu.
- Kreiranje veza (relacija) između ovih novih tabela i njihovih predcesora putem stranog ključa (foreign key).
Trećom normalnom formom (3NF) pravimo jedan veliki iskorak napred:
- Uklanjamo kolone (atribute) koji nisu u direktnoj vezi sa primarnim ključem.
Krajnji cilj normalizacije je najverovatnije treća normalan forma. U većini slučajeva ona predstavlja najbolji kompromis između ekstrema koji se odnose na funkcionalnost i lakoću implementacije. Nivoi iznad 3NF, u praksi, mogu da iskomplikuju dizajn baze podataka do tačke da smetaju funkcionalnosti. I još nešto, svi nivoi normalizacije su kumulativni, što znači da baza podataka koja se nalazi u 2NF, takođe mora da ispunjava i sve uslove zadate prvom normalnom formom.
Pratite Krstaricu na www.krstarica.com