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