Normalizacija baze podataka

Što je normalizacija?


Da bismo mogli napraviti bazu podataka koja ne će sadržavati kritične pogješke u dizajnu, pomaže nam normalizacija.

Normalizacija je postupak organiziranja podataka s ciljem kreiranja učinkovite, pouzdane (sačuvan integritet baze podatka) i fleksibilne baze podataka.

Postupak se temelji na matematički dokazanim tvrdnjama. To znači ako slijedimo normalizaciju, rezultat će biti dobivanje dobre baze podataka.

Normalne forme


Pri dizajniranju baze podataka potrebno je donijeti odluke o tome koje tablice načiniti, koja će polja te tablice sadržavati, te kakve veze između tablica treba uspostaviti.

Normalizacija (engl. Normalization) je postupak primjene niza pravila kojima se osigurava optimalna struktura baze podataka. Normalne forme su niz primjene tih pravila.

Svakom slijedećom normalnom formom dobiva se bolja strukutra podataka nego u prethodoj normalnoj formi. Za nas su najznačajnije prve tri normalne forme.

Prva normalna forma - 1NF


Prva normalna forma zahtjeva atomičnost polja tablice i da svi zapisi moraju imati isti broj polja. To znači da se u istom polju ne mogu zapisivati ime i prezime.

Razlog postojanja ovog pravila je to što je nemoguće pretraživati ili sortirati podatke prema imenu ili prezimenu ukoliko se obje vrijednosti nalaze u istom polju.

Slijedeći zahtjev koji tablica mora zadovoljiti da bi bila u 1NF je ne sadržavati vrijednosti koje se ponavljaju.

Prva normalna forma - 1NF



Druga normalna forma - 2NF


Druga normalna forma zahtjeva da je zadovoljena 1NF i sva polja moraju biti jednoznačna i u potpunosti ovisiti o glavnom ključu (engl. primary key).

Drugim rječima u svakoj tablici moraju se zapisivati podatci o samo jednom subjektu. Primjer nepoštivanja 2NF je tablica u kojoj se zapisuju podatci o narudžbi zajedno s podatcima o osobi koja je obavila narudžbu.

Kako bi tablicu prebacili u 2NF potrebno je takvu tablicu razdvojiti u dvije tablice. Postupak razdvajanja podataka u dvije tablice zove se dekompozicija.

Druga normalna forma - 2NF

Treća normalna forma - 3NF


Treća normalna forma zahtjeva da je zadovoljena 2NF i sva polja koja nisu dio glavnog ključa ne smiju međusobno ovisiti jedno o drugom.

Treba izbaciti sva izračunavanja u tablici npr. kada uz polja [Cijena] i [Količina] želimo pomnožiti te podatke i pohraniti u polje [Ukupno].

Problem se javlja kada ažuriramo polje [Cijena] ili polje [Količina] jer se polje [Ukupno] ([Cijena]*[Količina]) ne ažurira automatski. Zato ga treba izbaciti po 3NF.

Treća normalna forma - 3NF

Denormalizacija


Iako je cilj korisnika normalizacija u mnogim slučajevima ima smisla denormalizaciija (engl. denormalisation) ili namjerno odstupanje od normalnih formi.

Osnovni razlog za denormalizaciju je poboljšanje značajki brzine baze podataka.

Prilikom pitanja odustajanja od normalizacije moramo se pitati je li nam poboljšanje značajki ili lakoća održavanja baze podataka.



Hvala na pozornosti!


Pitanja?