U trendu

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 i preko mobilne aplikacije za Android i iPhone.