Pojam normalizacije baza podataka

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.
Oba ova bitna cilja smanjuju potreban prostor za ฤuvanje baze podataka i obezbeฤ‘uju logiฤnu povezanost podataka.

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