You are on page 1of 3

Baze podataka Prof. Dr. Sc.

Dražana Gašpar
Daniel Vasić, asistent

BAZE PODATAKA
Normalizacija tablica

Bez normalizacije postaje jako teško upravljati bazom podataka bez gubitka podataka. Umetanje
uređivanje i brisanje podataka su jako česti ako baza nije normalizovana, samim time se smanjuju
pereformanse sustava. Da bismo shvatili te anomalije pogledati ćemo primjer tablice student.

S_id S_Ime S_Adresa S_Predmet


401 Marko A.Starcevica 56 Bilogija
402 Mate K.Tomislava 12 Matematika
403 Luka K.Zvonimira 45 Matematika
404 Marko A.Starcevica 56 Fizika

Anomalija uređivanja: da bismo uredili adresu studenta koji se ponavljuju više od dva puta moramo
urediti svaku adresu koja se nalazi u koloni S_Adresa, inače će podatci biti nekonzistentni.

Anomalija umetanja: Da bismo unjeli novi podatak trebamo imati sve podatke, da bismo recimo
unjeli novog studenta koji još nije odabrao niti jedan predmet trebali bismo postaviti u kolonu
S_Predmet moramo postaviti na NULL vrijednost što opet dovodi do inkonzistentnosti podataka.

Anomalija brisanja: Ako pobrišemo pojedini predmet koji student želi ispisati moramo pobrisati i
samog studenta.

Pravila normalizacije:

 Prva normalna forma


 Druga normalna forma
 Treća normalna forma
 BCNF

Prva normalna form (1NF)

Red nemože sadržavati ponavljajuću grupu podataka. Svaka kolona mora imati jedunstvenu vrijednost
i svaki redak mora imati jedinstveni identifikator, to ćemo primjeniti na tablici te dobijamo sljedeču
tablicu.

S_id S_Ime S_Adresa S_Predmet


401 Marko A.Starcevica 56 Bilogija
401 Marko A.Starcevica 56 Fizika
403 Luka K.Zvonimira 45 Matematika
404 Mate K.Tomislava 12 Matematika

Očito je vidljivo da osoba Marko je osoba koja se ponavlja što nam narušava prvu formu te također
Matematika nam se isto ponavlja dva puta. Što znači da bismo zadovoljili 1NF moramo razdvojiti ovu
tablicu na 2 tablice Student i Predmet.
Baze podataka Prof. Dr. Sc. Dražana Gašpar
Daniel Vasić, asistent

S_id S_Ime S_Adresa


401 Marko A.Starcevica 56
403 Luka K.Zvonimira 45
404 Mate K.Tomislava 12

P_ID P_Naziv S_ID


1 Bilogija 401
2 Fizika 401
3 Matematika 402
3 Matematika 403

Sada su obje tablice normalizirane prema prvoj normalnoj formi.

Druga normalna forma:

Druga normalna forma podrazumjeva da je tablica u 1NF te da nijedan atribut nije djelomično ovisan
o primarnom ključu. U tom kontekstu možemo reći da ako tablica koja ima složeni primarni ključ od
dva atributa. Ako su neki atributi ovisni samo o jednom ključu tada pada na 2NF.

Recimo da imamo tablicu:

Klijent_id Klijent _Ime Narudzba_id Naziv_narudžbe Detalji_prodaje


101 Marko 10 Narudzba1 sale1
101 Marko 11 Narudzba2 sale2
102 Luka 12 Narudzba3 sale3
103 Mate 13 Narudzba4 sale4

Ovo je primjer tablice koja poštiva pravila prve normalne forme ali ne i druge normalne forme jer
vrijednost Detalji_prodaje nije funkcijski ovisna o ključu. Klijent_ime je ovisan o Klijent_id, a
Naziv_narudžbe je ovisan o Narudžba_id ključu, ali ne postoji jasna veza između Detalja_prodaje i
Ime_klijenta tj. Imamo parcijalnu vezu između tih atributa što prema drugoj normalnoj formi nemože
biti.

Da bismo riješili taj problem moramo navedenu tablicu razviti u više pod tabela. Prvo ćemo odvojiti
tablicu klijenta:

Klijent_id Klijent _Ime


101 Marko
101 Marko
102 Luka
103 Mate
Baze podataka Prof. Dr. Sc. Dražana Gašpar
Daniel Vasić, asistent

Nakon toga drugi korak je da tablicu narudžbe odvojimo od ove tablice te u skladu sa time dobijamo
sljedeće:

Narudzba_id Naziv_narudžbe
10 Narudzba1
11 Narudzba2
12 Narudzba3
13 Narudzba4

Zadnje je da formiramo tablicu u kojem su atributi međusobno ovisni o primarnom ključu, u ovom
slučaju složenom primarnom ključu, te na osnovu toga dobijamo:

Klijent_id Narudzba_id Detalji_prodaje


101 10 sale1
101 11 sale2
102 12 sale3
103 13 sale4

Treća normalna forma:

Treća normalna forma nam kaže da svaki neprimarni atribut mora funkcionalno biti ovisan o
primarnom ključu uzmimo za primjer sljedeću hipotetsku situaciju:

Student_id Student_ime Datum_rođenja Adresa Grad Država Zip

U ovoj tablici student_id je primarni ključ, ai grad i država ovise o Zip kodu. Ova ovisnost između ZIP
koda i drugih polja naziva se tranzitivna ovisnost. Da bismo primjenili 3NF moramo pomjeriti Adresu,
Grad, Državu u novu tabelu gdje je ZIP primarni ključ.

Student_id Student_ime Datum_rođenja Zip

Zip Adresa Grad Država

Prednosti uklanjanja tranzitivnih veza je ta da:

 Količina dupliciranih podataka je uklonjenja


 Postignut je integritet podataka

Četvrta normalna forma (BCNF):

Boyce-Codd normalna forma je viša verzija treće normalne forme u kojoj se javlja anomalija koja se
ne dotiče 3NF a to je da tablica u 3NF mogu imati više kandidat ključeva. Tablica koja nema više
ovakvih ključeva nalazi se u BCNF.

You might also like