Professional Documents
Culture Documents
Sadržaj
1.Uvod..................................................................................................................................................1
2. Istorija baze podataka.......................................................................................................................2
3.Normalizacija baze podataka...........................................................................................................3
3.1. Normalizacija kroz primjer.......................................................................................................4
4. Metode normalizacije...................................................................................................................6
5. Normalne forme...........................................................................................................................8
6. Primarni ključ...............................................................................................................................9
6.2. Odabir primarnog ključa........................................................................................................9
7. Praktičan primjer normalizacije.................................................................................................11
7. 1.Svođenje modela na prvu normalnu formu..........................................................................12
7.2. Svođenje modela na drugu normalnu formu........................................................................13
7.3. Svođenje modela na treću normalnu formu.........................................................................14
8. Razlozi zbog kojih se može odustati od normalizacije........................................................16
9. Zaključak....................................................................................................................................17
12. Literatura......................................................................................................................................18
1.Uvod
slika1.unos podataka
slika 2. skadištenje i pretraživanje
Nastanak baza podataka se vezuje za Herman-a Holerith-a. On je 1884. god prijavio patent – sistem
za automatsku obradu podataka (AOP).
AOP je sluzio za popis stanovništva u SAD. Podaci su bili na bušenim karticama koji su se ručno
ubacivali u uredjaj za očitavanje, a obrada podataka vršila se prebrojavanjem. Dotadašnja obrada
podataka popisa trajala je 10-ak godina, a sa ovim izumom vreme obrade smanjilo se na šest
nedelja.
Ideja AOP-a je bila da se svaki stanovnik SAD prestavnja sa nizom od 80 karaktera – ime, godište
itd.
3.Normalizacija baze podataka
Anomalija brisanja je inverzija anomalije dodavanja. Odnosi se na situaciju gdje brisanje podataka
vezanih za određeni entitet uzrokuje neplanirani gubitak podataka koji karakteriše drugi entitet.
U slučaju našeg računa, ako odlučimo da obrišemo posljednji (jedini preostali) račun koji pripada
određenom kupcu, izgubićemo sve podatke vezane za tog kupca.
Anomalija ažuriranja se odnosi na situaciju gdje ažuriranje jednog podatka zahtijeva ažuriranje
više n-torki (vrsta) podataka.
U primjeru našeg računa, ako bismo htjeli da promijenimo adresu kupca, morali bismo je
promijeniti na svakom računu tog kupca. Ovo je zbog toga što bi adresa kupca bez primjene
normalizacije bila redundantno smještena na svakom računu kupca.
4. Metode normalizacije
U najopštijem smislu, normalizacija je postupak kojim se prozivoljna, nenormalizovanja
relacija transformiše u skup manjih normalizovanih relacija. Normalizacija se izvodi na osnovu
zavisnosti koje iskazuju zakonitosti koje vrijede u svijetu čiji model podataka gradimo.
Bitna osobina koja se očekuje od normalizacije je reverzibilnost, tj. da ne smije doći do
gubitaka informacija sadržanih u polaznoj relaciji. Polazeći od skupa normalizovanih relacija, mora
biti moguća rekonstruckija polazne nenormalizovane relacije.
5. 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.
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 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.
Druga normalna forma zahtjeva da je zadovoljena 1NF i sva polja moraju biti jednoznačna
i u potpunosti zavisiti o glavnom ključu(engl. primary key).
Drugim riječima, u svakoj tablici moraju se zapisivati podaci o samo jednom subjektu. Primjer
nepoštovanja 2NF je tablica u kojoj se zapisuju podaci o narudžbi zajedno sa podacima o osobi koja
je obavila narudžbu.
Kako bi tablicu prebacili u 2NF potrebno je takvu tablicu razdvojiti u dvije tablice. Postupak
razdvajanja u dvije tablice zove se dekompozicija.
Treća normalna forma zahtjeva da je zadovoljena 2NF i sva polja koja nisu dio glavnog
ključa ne smiju međusobno zavisiti jedno o drugom.
Treba izbaciti sva izračunavanja u tablici, npr. kada uz polja [Cijena] i [Količina] želimo pomnožiti
te podatke i postaviti u polje [Ukupno].
Problem se javlja kada ažuriramo polje [Cijena] ili polje [Količina], jer se polje [Ukuono]
([Cijena]* [Količina]) ne ažurira automatski. Zato ga treba izbaciti po 3NF.
6. Primarni ključ
Primarni ključ (PRIMARY KEY) je ključno polje tabele kojim se kontroliše način na koji se
informacije povezuju sa drugim tabelama.Primarni ključ na jedinstven način definiše zapis. Matični
broj je ključno polje za povezivanje tabela; ključna polja moraju biti istog tipa.
Primarni ključevi su najčešće ID,tipa AutoNumber. Primarni ključ se postavlja na jedno ili
više polja u tabeli. Njihova uloga je da onemogućavaju ponavljanje podataka u tim poljima. Njima
osiguravamo jedinstvenost svih podataka u poljima na koja smo ih postavili (jedan ključ = nema
duplikata u zaključanom polju). Dakle polja poput JMBG, ID, Člasnki broj,Šifra robe, itd. su polja
na koja svakako treba postaviti ključ jer ti se podaci ne smiju ponavljati.
Ako u jednoj tabeli na više polja postavimo ključeve tada kreiramo složeni ključ. Sada svako
polje unutar složenog ključa može i ne mora imati duplikate, ali ne mogu postojati dva zapisa u
jednoj tabeli s istom kombinacijom podataka tj. da imaju sve podatke identične u sva tri zaključana
polja
Važno je razumjeti da kada je jedinstveni identifikator sastavljen od više atributa, sami atributi se ne
kombinuju, tj. oni i dalje postoje kao nezavisni atributi i postaće pojedinačne kolone u tabeli, ili
tabelama, kreiranoj iz naših normalizovanih relacija.
Ponekad, ali rijetko, dešava se da ne postoji smislen skup atributa u relaciji koji može poslužiti kao
jedinstveni identifikator. Ipak, kada se ovo desi, moramo izmisliti jedinstveni identifikator, često sa
vrijednostima dodijeljenim sekvencijalno ili slučajno, tokom dodavanja instance entiteta bazi
podataka.
Ova tehnika predstavlja izvor jednistvenih identifikatora kao što su ID zaposlenih, broj tablica
vozila, broj motora vozila, itd.
Jedinstvene identifikatore koji imaju stvarno – smisleno značenje nazivamo prirodnim
identifikatorima, dok ove druge (uključujući one koje moramo izmisliti) nazivamo surogatnim ili
vještačkim identifikatorima.
Moramo imati na umu da izabrani identifikator mora uvijek biti jedinstven, tj. ako postoji bar jedan
slučaj gdje on nije jednistven, ne možemo ga koristiti.
Primjer loše odabranog primarnog ključa je kombinacija: imena i prezimena; očevog i majčinog
imena i datuma rođenja...
Ponekad relacija ima više od jednog mogućeg jedinstvenog identifikatora. Kada se ovo desi, svaku
mogućnost nazivamo kandidatom. Kada smo identifikovali sve moguće kandidate za relaciju,
moramo izabrati jednog kandidata koji će biti primarni ključ relacije.
Odabir primarnog ključa je suštinski za proces normalizacije, jer sva pravila normalizacije koriste
primarni ključ
Kriterijumi za odabir primarnog ključa među kandidatima su (prvo ide najvažniji):
Ako postoji samo jedan kandidat, izaberi ga.
Odaberi onog kandidata za kojeg je najmanje vjerovatno da će promijentiti svoju
vrijednost.
Odaberi najjednostavnijeg kandidata. Onaj kandidat koji je sastavljen od najmanjeg
broja atributa se smatra najjednostavnijim.
Odaberi najkraćeg kandidata. Ovo je čisto radi efikasnosti. Ako se primarni ključ može
pojaviti u mnogim tabelama kao spoljašnji ključ, često je dobro da se sačuva malo
prostora na ovaj način.
Razdvajanje repetitivnih podataka u zasebne tabele našu strukturu dovodi u prvu normalnu
formu.
Iz našeg primjera (gdje je sve bilo nagurano u istu tabelu), dobijamo 2 odvojene tabele:
Ako pogledamo tabelu “ZNANJE” iz prethodnog primjera gdje smo sveli model na prvu
normalnu formu, primjetićemo da nam se podaci dupliciraju.
Za razliku od tabele “KORISNIK” gdje atribut KORISNIK_ID definiše slog tabele, u tabeli
KORISNIK slog definišu KORISNIK_ID i ZNANJE_ID atributi zajedno. Ovo u nekim slučajevima
može da ima smisla, ali u našem slučaju, gdje ime “znanja” realno nije ni u kakvoj relaciji sa
korisnikom i bezrazložno se multiplicira u tabeli, možemo zaključiti da nam se podaci “dupliraju
što se odražava na prostor potreban za čuvanje istih, otežava i usporava operacije sa bazom.
Ako na primjer želite da promjenite ime jednog “znanje” (na primjer želite da “Audio”
postane “Rad sa zvukom”) morate to ime promjeniti na više mjesta, umjesto samo na jednom
(anomalija pri
promjeni). Dalje, pretpostavite da “mali perica” ode sa foruma; u tom slučaju treba obrisati sve
slogove vezane za njega; u tom slučaju, potpuno će nestati referenca da je znanje “Linux” postojalo
na forumu (anomalija pri brisanju).
Ako pogledamo malo bolje tabelu “KORISNIK” iz primjera za drugu normalnu formu,
vidjećemo da iako ispunjava i prvu i drugu normalnu formu, atribut “ŽIVI” nije direktno zavistan
od ID-a korisnika (primarnog ključa). Da bi postigli treću normalnu formu, taj podatak mora da se
odvoji u zasebnu tabelu. Zašto?
Ako uzmemo na primjer da “mali žikica” napusti forum, te se slogovi koji njega definišu
obrišu, nestaće trag o “BIH” (anomalija pri brisanju) ili ako “Srbija” ponovo promjeni ime u “Uža
Srbija sa okolinom”, to ime moramo promjeniti na više od jednog mjesta (anomalija pri promjeni).
Razlaganje na treću normalnu formu zahjteva da podatak o “ŽIVI” prebacimo u zaseban entitet.
Za većinu praktičnih primjera dovoljno je relacije normalizovati do 3NF. Ponekad je potrebno neku
relaciju i dalje normalizovati do BCNF ili 4NF. Peta normalna forma, koja se takođe navodi u
literaturi, nije od praktičnog značaja.
1.Složeni atribut
Dešava se da nekoliko atributa u relaciji čine cjelinu koja se u aplikacijama nikad ne rastavlja na
sastavne djelove.
Na primjer, posmatrajmo relaciju KUPAC ( PREZIME IME, POŠTANSKI_BROJ, GRAD, ULICA
) . Strogo govoreći, GRAD je funkcionalno zavisan o POŠTANSKI_BROJ, pa relacija nije u 3NF.
No mi znamo da POŠTANSKI BROJ, GRAD i ULICA čine cjelinu koja se zove adresa.
Budući da se podaci iz adrese koriste i ažuriraju "u paketu", ne može doći do prije pominjanih
anomalija. Nije preporučljivo razbijati ovu relaciju na dvije.
Normalizacijom se velike relacije razbijaju na mnogo manjih. Kod čitanja je često potrebno podatke
iz malih relacija ponovo sastaviti u veće n-torke. Uspostavljanje veza medu podacima u manjim
relacijama traje znatno duže nego čitanje podataka koji su već povezani i upisani u jednu veliku
relaciju.
Projektant baze podataka treba da procjeni kada treba provesti normalizaciju do kraja a
kada ne. Za tu procjenu je važno razumjevanje značenja podataka i načina kako će se oni
koristiti.
9. Zaključak
[1] https://razno.sveznadar.info/10-doc-PDF/Normalizacija.pdf
[2] http://www.vps.ns.ac.rs/Materijal/mat517.pdf
[3]https://www.ucg.ac.me/skladiste/blog_13294/objava_12986/fajlovi/Normalizacija
%20baza%20podataka.pdf
[4]https://www.mojwebdizajn.net/edukacija/uvod-u-baze-
podataka/prezentacije/normalizacija-baze-podataka.aspx
Komentar_________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
1. ____________________________________________________________________________________
____________________________________________________________________________________
2. ____________________________________________________________________________________
____________________________________________________________________________________
3. ____________________________________________________________________________________
____________________________________________________________________________________
Članovi komisije:
1. Mentor (ispitivač) ___________________
2. Stalni član ___________________
3. Predsjednik komisije ___________________