Download as pdf or txt
Download as pdf or txt
You are on page 1of 71

Baze podataka doc.

dr Dalibor Radovanović

Tema 11:
Relacije loše strukture i
normalizacija
doc. dr Dalibor Radovanović
dradovanovic@singidunum.ac.rs

Studijski program Poslovna ekonomija, Beograd


2017/2018

doc. dr Dalibor Radovanović -1-


Sadržaj
Baze podataka doc. dr Dalibor Radovanović

Relacije loše strukture i


normalizacija
1. Šeme relacija loše strukture
2. Dekompozicija šeme relacija (loše i dobre)
3. Funkcijske zavisnosti
4. Normalne forme i normalizacija
5. Denormalizacija

doc. dr Dalibor Radovanović -2-


1. Šeme relacija loše strukture
Baze podataka doc. dr Dalibor Radovanović

• Dobre i loše šeme relacija


• Primer 1: primarni ključ i drugi atribut
• Primer 2: atributi koji nisu deo primarnog ključa
• Primer 3: atribut i deo primarnog ključa

doc. dr Dalibor Radovanović -3-


Dobre i loše šeme relacija
Baze podataka doc. dr Dalibor Radovanović

• Iz prakse se zna za šeme relacija sa "lošim strukturama"


– nepogodnosti u radu sa relacijama
– razlog za to je što između atributa jedne relacije mogu postojati
zavisnosti kojima se ograničavaju vrednosti atributa u n-torkama
• Postoji posebna oblast matematike
– Teorija funkcijskih zavisnosti
• Iz ove teorije formulisane su normalne forme
– Kriterijum za valjanost šema relacija
• Normalizacija – dekompozicija šeme relacije loše strukture na
dve ili više šema koje su u skladu sa željenom "normalnom
formom"

doc. dr Dalibor Radovanović -4-


Primer 1: primarni ključ i drugi atribut
Baze podataka doc. dr Dalibor Radovanović

U jednoj (lošoj) šemi relacije se nalaze imena


studenata, predmeti koje su položili i dobijene ocene
Ispit (BrInd, Ime, Prezime, SifP, Ocena)

• <BrInd, SifP> čine primarni ključ


– jedan student ima ocene iz više predmeta
– jedan predmet je polagalo više studenata

doc. dr Dalibor Radovanović -5-


Primer 1: primarni ključ i drugi atribut
Baze podataka doc. dr Dalibor Radovanović

• Neka u jednom trenutku postoji sadržaj

• U budućnosti, ako Marko Marković još nešto položi:


<100 Marko Marković > bi se pojavljivao više puta
• Često je uz ime potrebno evidentirati i neki dodatni podatak o
studentu (adresa, ...), koji bi se opet pojavljivao više puta uz
Marko Marković

doc. dr Dalibor Radovanović -6-


Primer 1: primarni ključ i drugi atribut
Baze podataka doc. dr Dalibor Radovanović

• Ako se pokuša izbegavanje unosa imena studenata


više puta (samo prvi put se upisuje, a u ostalim
slučajevima NULL), gube se neke informacije
– Nemogućnost postavljanja upita, npr.
• Imena svih studenata koji su položili predmet, npr. BP
• Svi predmeti koje je položio student po imenu ...

doc. dr Dalibor Radovanović -7-


Primer 1: primarni ključ i drugi atribut
Baze podataka doc. dr Dalibor Radovanović

• Osnovni nedostatak relacije Ispit je redudansa –


višestruko ponavljanje u relaciji
• Ovaj nedostatak izaziva probleme kod sva tri vida
ažuriranja relacije:
– Višestruko unošenje: ime studenta unosi se onoliko puta
koliko je polagao ispita
– Višestruko menjanje: eventualne promene imena studenta
vrše se na svim mestima
– Višestruko uklanjanje: ako se želi potpuno uklanjanje
podataka o studentu, vrši se onoliko puta koliko je napisao
naslova

doc. dr Dalibor Radovanović -8-


Primer 1: primarni ključ i drugi atribut
Baze podataka doc. dr Dalibor Radovanović

• Uz nedostatke ažuriranja postoje još dva drastična


nedostatka:
– Anomalija unošenja: ne mogu se uneti podaci o studentu,
a da se pri tome ne unesu i podaci o bar jednom njegovom
položenom ispitu
– Anomalija uklanjanja: uklanjanjem podataka o jedinom
predmetu koji je polagao neki student uklanjaju se i podaci
o tom studentu
• Da bi šema relacije bila dobra, potrebno je da se ime
studenta (i njegovi ostali podaci) unosi samo jednom
i nezavisno od podataka o ispitima i ocenama

doc. dr Dalibor Radovanović -9-


Primer 1: primarni ključ i drugi atribut
Baze podataka doc. dr Dalibor Radovanović

• Uzrok ograničenja u Primeru 1


– Svakoj vrednosti atributa BrInd, koji je deo
primarnog ključa, odgovara jedna vrednost
atributa <Ime, Prezime> koji nije deo primarnog
ključa
– Kada se u relaciji Ispit ponovi vrednost atributa
BrInd, mora se ponoviti i <Ime, Prezime>

doc. dr Dalibor Radovanović - 10 -


Primer 2: atributi koji nisu deo
Baze podataka doc. dr Dalibor Radovanović

primarnog ključa
• Neka je formirana posebna šema relacije koja
objedinjava podatke o predmetima i studijskim
programima
Predmet( SifP, Naziv, SifSP, NazivSP)
• Neka je trenutni sadržaj sledeći:

doc. dr Dalibor Radovanović - 11 -


Primer 2:
Baze podataka doc. dr Dalibor Radovanović

atributi koji nisu deo primarnog ključa


• Ako bi se zahtevao novi unos npr: Programski jezici, postojalo
bi četiri puta <SPIR, Informatika i računarstvo>
• Izbegavanje višestrukog unošenja, kao u prošlom primeru
(NULL vrednosti), dovelo bi do gubitka informacije
(nemogućnost pravog upita)
• Uzrok ograničenja u Primeru 2:
– Svakoj vrednosti atributa SifP, koji nije deo primarnog ključa, odgovara
jedna vrednost atributa NazivSP, koji takođe nije deo primarnog ključa

doc. dr Dalibor Radovanović - 12 -


Primer 3:
Baze podataka doc. dr Dalibor Radovanović

atribut i deo primarnog ključa


• Posmatra se šema relacije koja evidentira podatke o
pozajmicama dopunjene sa šiframa naslova
POZAJMICA(SIFN, SIFC, DATUM, DANA, SIFK)

doc. dr Dalibor Radovanović - 13 -


Primer 3:
Baze podataka doc. dr Dalibor Radovanović

atribut i deo primarnog ključa


• Osnovna anomalija: za istu vrednost atributa SIFK, dva puta se
morala uneti vrednost PJC0 (atribut SIFN)
• Uzrok ograničenja u Primeru 3
– Svakoj vrednosti atributa SIFK, koji nije deo primarnog ključa,
odgovara jedna vrednost atributa SIFN koji je deo primarnog ključa
• U RBP Biblioteka nema nedostataka, zato što su razdvojene
šeme relacija: POZAJMICA i KNJIGA

doc. dr Dalibor Radovanović - 14 -


Zaključci
Baze podataka doc. dr Dalibor Radovanović

• Ako je struktura šeme relacije takva da postoji


višestruko ponavljanje pojedinih vrednosti neključnih
atributa, takva šema relacije je loša
• Šema relacije kod koje postoje neželjene veze, može
se zameniti sa više šema relacija, kod kojih navedeni
nedostaci nisu prisutni

doc. dr Dalibor Radovanović - 15 -


2. Dekompozicija šeme relacija
Baze podataka doc. dr Dalibor Radovanović

(loše i dobre)
• Loše i dobre dekompozicije
• Primer 1 - loša dekompozicija
• Primer 2 - loša dekompozicija
• Primer 3 - dobra dekompozicija
• Zaključak

doc. dr Dalibor Radovanović - 16 -


Loše i dobre dekompozicije
Baze podataka doc. dr Dalibor Radovanović

• Opšte napomene:
– Dekomponuje se i šema relacije i relacija nad njom
– U nastalim šemama relacija moraju biti prisutni svi atributi
polazne šeme (da se ne izgubi deo podataka)
– Ne mogu se pojaviti novi atributi koji nisu postojali u
polaznoj šemi relacije
– U najnepovoljnijem slučaju, relacija koja se dekomponuje
nije prazna, pa njen sadržaj treba preneti u novonastale
relacije

doc. dr Dalibor Radovanović - 17 -


Primer 1 - Loša dekompozicija
Baze podataka doc. dr Dalibor Radovanović

• Sprovedimo sledeću dekompoziciju:


POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK)
POZ1 (SIFC, DATUM, DANA, SIFK)
POZ2 (SIFN)

• Odgovarajuće relacije poz1 i poz2 mogu se


dobiti kao rezultat projekcija:
πSIFC,DATUM,DANA,SIFK(pozajmica) → poz1
πSIFN(pozajmica) → poz2

doc. dr Dalibor Radovanović - 18 -


Primer 1 - Loša dekompozicija
Baze podataka doc. dr Dalibor Radovanović

• Sadržaj dobijenih relacija je sledeći:

doc. dr Dalibor Radovanović - 19 -


Primer 1 - Loša dekompozicija
Baze podataka doc. dr Dalibor Radovanović

Uvidom u sadržaj relacija zaključuje se sledeće:


• Ne postoje veze između šifara naslova i ostalih
podataka o pozajmicama
• Pokušaj rekonstrukcije svih podataka o
pozajmicama:
– prirodnim spajanjem, dobiće se Dekartov proizvod sa 21 n-
torkom
– šeme relacija nemaju nijedan zajednički atribut
(presek atributa je prazan skup)
– dobijenih 14 n-torki je nepotrebno

doc. dr Dalibor Radovanović - 20 -


Baze podataka doc. dr Dalibor Radovanović

doc. dr Dalibor Radovanović - 21 -


Primer 2 - Loša dekompozicija
Baze podataka doc. dr Dalibor Radovanović

• POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK)


POZ1 (SIFC, DATUM, DANA, SIFK)
POZ2 (SIFC,SIFN)
• Projekcijama se dobija:

doc. dr Dalibor Radovanović - 22 -


Primer 2 - Zaključak
Baze podataka doc. dr Dalibor Radovanović

• Ovoga puta, nastale relacije imaju kao presek zajednički


atribut SIFC
• Može se zaključiti i sledeće:
– Veze između šifara naslova (SIFN) i ostalih podataka ne postoje
direktno ni u jednoj relaciji
– Rekonstrukcija svih pozajmica prirodnim spajanjem po atributu SifC
daje 14 n-torki (7 su suvišne)
• Osnovni kriterijum za očuvanje podataka pri dekompoziciji
šeme relacije je:
Dekompozicija je bez gubitaka ako je reverzibilna, tj. ako se
prirodnim spajanjem novonastalih relacija dobija polazna
relacija

doc. dr Dalibor Radovanović - 23 -


Baze podataka doc. dr Dalibor Radovanović

doc. dr Dalibor Radovanović - 24 -


Primeri 1 i 2
Baze podataka doc. dr Dalibor Radovanović

Zaključak
• U prethodnim primerima, problem je što postoji
višestruko spajanje n-torki
• Važno je da pri dekompoziciji svaka vrednost
zajedničkog atributa u bar jednoj od nastalih relacija
ne sme da se ponavlja
• Formulacija prethodnog uslova:
Zajednički atribut (ili skup atributa) treba da je
kandidat ključ u bar jednoj od nastalih relacija
• Sledeći prethodni pristup, dolazi se do dekompozicije
koja postoji u RBP Biblioteka

doc. dr Dalibor Radovanović - 25 -


Primer 3
Baze podataka doc. dr Dalibor Radovanović

Dobra dekompozicija
• POZAJMICA (SIFN, SIFC, DATUM, DANA, SIFK)
POZ1 (SIFC, DATUM, DANA, SIFK)
POZ2 (SIFK,SIFN)
• Projekcijama se dobija:

doc. dr Dalibor Radovanović - 26 -


Primer 3
Baze podataka doc. dr Dalibor Radovanović

Dobra dekompozicija
• Ako se pokuša rekonstrukcija svih pozajmica
prirodnim spajanjem po atributu SifK dobija se 7 n-
torki koje odgovaraju prvobitnom sadržaju
– Svaka n-torka relacije poz1 se spaja sa tačno jednom n-
torkom relacije poz2

doc. dr Dalibor Radovanović - 27 -


Zaključak
Baze podataka doc. dr Dalibor Radovanović

• Neka su R i r šema relacije i relacija, koja se


dekomponuje na R1 i R2, tj. r1 i r2, pri čemu postoji
bar jedan zajednički atribut tj. R1 ∩ R2 ≠ ∅
• Tada važi:
– Uslov očuvanja atributa pri dekompoziciji
R1 ∪ R2 = R
– Uslov očuvanja podataka (reverzibilnost)
πR1(r) >*< πR2(r) = r
– Dekompozicija je reverzibilna ako je:
R1 ∩ R2 ⇒R1 ∨ R1 ∩ R2 ⇒R2
(značenje simbola je "jednoznačno određuje")

doc. dr Dalibor Radovanović - 28 -


3. Funkcijske zavisnosti
Baze podataka doc. dr Dalibor Radovanović

• Pojam funkcijske zavisnosti


• Dekompozicija funkcijskih zavisnosti

doc. dr Dalibor Radovanović - 29 -


Pojam funkcijske zavisnosti
Baze podataka doc. dr Dalibor Radovanović

• Funkcijska zavisnost je generalizacija pojma ključa


• Do sada su razmatrane zavisnosti pojedinačnih
atributa:
Svakoj vrednosti jednog atributa odgovara samo
jedna vrednost drugog atributa
• U opštem slučaju to može važiti za podskupove
atributa šeme relacije
• Definicija: Nad šemom relacije R postoji funkcijska
zavisnost X→Y ako u relaciji r važi da se svako r[X]
preslikava na samo jedan element skupa r[Y]

doc. dr Dalibor Radovanović - 30 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• U praksi je uočeno da se na osnovu postojanja nekog


skupa zavisnosti, mogu da se izvedu nove zavisnosti
• Posmatra se šema relacije NASLOV
NASLOV(SIFN, NAZIVN, SIFO, NAZIVO)
• Postoje zavisnosti:
SIFN → NAZIVN i SIFO → NAZIVO
• Na osnovu prethodnog može se izvesti da važi:
SIFN, SIFO → NAZIVN, NAZIVO

doc. dr Dalibor Radovanović - 31 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Za prethodnu šemu relacije NASLOV važi i sledeće:


SIFN → SIFO i SIFO → NAZIVO
• Na osnovu prethodnog može se izvesti da jednoj šifri
naslova odgovara samo jedan naziv oblasti:
SIFN → NAZIVO
• Postoji minimalan skup pravila za izvođenje novih
zavisnosti iz početnih:
– Konačni skup zavisnosti koji se može izvesti iz polaznih
(kompletnost)
– Ne može se izvesti ni jedna zavisnost koja ne proizilazi iz
polaznih (pouzdanost)

doc. dr Dalibor Radovanović - 32 -


Dekompozicija funkcijskih zavisnosti
Baze podataka doc. dr Dalibor Radovanović

• Dekompozicija je dobra ako su posle nje sačuvani


atributi i podaci
• Pitanje: Ako je na polaznoj šemi relacije R važio neki
skup funkcijskih zavisnosti F, kakve zavisnosti postoje
posle dekompozicije
• Funkcijske zavisnosti u RBP – ograničenja između
nekih svojstava u sistemu koga ta RBP predstavlja
• Ograničenja moraju uvek biti poštovana prilikom
ažuriranja

doc. dr Dalibor Radovanović - 33 -


Dekompozicija funkcijskih zavisnosti
Baze podataka doc. dr Dalibor Radovanović

• Ako važi X→Y, onda svakoj vrednosti X (ma koliko


puta) mora da odgovara jedno Y
• Moguća su dva slučaja:
– X i Y se nalaze unutar iste šeme relacije
– X i Y su u različitim šemama relacija, ali se pojavljuju u
jednoj relaciji nakon izvršenja upita

doc. dr Dalibor Radovanović - 34 -


Primer 1 - Ista šema relacije
Baze podataka doc. dr Dalibor Radovanović

• X i Y su u istoj šemi relacije


• Pored ostalog važi: SIFO → NAZIVO

doc. dr Dalibor Radovanović - 35 -


Primer 1 - Ista šema relacije
Baze podataka doc. dr Dalibor Radovanović

• Pri unosu n-torki znamo za pravilo:


– ne sme se ponoviti vrednost primarnog ključa SIFN
– ne sme se uneti NULL vrednost
• Kada se unosi n-torka i za SIFO unese ‘PJ’, samo prvi
put se može uneti proizvoljno NAZIVO
• Već u drugoj n-torci, unos ne može biti slobodan, jer
bi se u suprotnom pokvarila zavisnost
SIFO →NAZIVO

doc. dr Dalibor Radovanović - 36 -


Primer 2 - Različite šeme relacija
Baze podataka doc. dr Dalibor Radovanović

• Razdvojenost X i Y

• Neka je kod unosa zadnje n-torke u naslov1 greškom


uneseno "Baze podataka" umesto "Programski jezici"

doc. dr Dalibor Radovanović - 37 -


Primer 2 - Različite šeme relacija
Baze podataka doc. dr Dalibor Radovanović

• Šematski prikaz prethodne dekompozicije


(SIFN je kandidat ključ u bar jednoj relaciji):

• U ovom primeru nije primenjiva zavisnost SIFO → NAZIVO


ni na jednu od nastalih relacija – LOŠA DEKOMPOZICIJA

doc. dr Dalibor Radovanović - 38 -


Primer 2 - Različite šeme relacija
Baze podataka doc. dr Dalibor Radovanović

• Bolja dekompozicija
– ne dovodi do gubitka skupa zavisnosti:

doc. dr Dalibor Radovanović - 39 -


4. Normalne forme i normalizacija
Baze podataka doc. dr Dalibor Radovanović

1. Pojam normalizacije
2. Funkcijske zavisnosti
3. Druga normalna forma
4. Treća normalna forma
5. Bojs-Kodova normalna forma
6. Prva normalna forma
7. Prednosti i nedostaci normalizacije

doc. dr Dalibor Radovanović - 40 -


4.1 Pojam normalizacije
Baze podataka doc. dr Dalibor Radovanović

• Normalizacija - pogodna dekompozicija šeme relacije


u cilju otklanjanja anomalija ažuriranja
– uzroci anomalija su prisustvo neželjenih funkcijskih
zavisnosti
• Normalna forma – određeni kriterijumi valjanosti
neke šeme relacije
• U nastavku se navode neki specijalni slučajevi
funkcijskih zavisnosti

doc. dr Dalibor Radovanović - 41 -


4.2 Funkcijske zavisnosti
Baze podataka doc. dr Dalibor Radovanović

• Neka je R šema relacije, a X,Y i Z su podskupovi od R


• Definicija 1
Funkcijska zavisnost X→Y je superključna ako važi
X→R
• Definicija 2
Funkcijska zavisnost X→Y je trivijalna ako važi Y⊆X
• Definicija 3
Funkcijska zavisnost je totalna ako ne postoji ni jedan
pravi podskup Z od X za koji važi Z→Y odnosno:
X → Y ∧ ¬∃Z (Z⊂X ∧ Z→Y)

doc. dr Dalibor Radovanović - 42 -


Funkcijske zavisnosti
Baze podataka doc. dr Dalibor Radovanović

• Definicija 4
Funkcijska zavisnost X→Y je parcijalna ako postoji
neki pravi podskup Z od X za koji važi Z → Y odnosno:
X → Y ∧ ∃ Z (Z⊂X ∧ Z → Y)
• Definicija 5
Funkcijska zavisnost X→Y je tranzitivna postoji neko
Z, različito od X i Y za koje važi:
X→ZiZ→Y

doc. dr Dalibor Radovanović - 43 -


4.3 Druga normalna forma
Baze podataka doc. dr Dalibor Radovanović

• Definicija:
Šema relacije R je u II normalnoj formi ako nad njom
ne postoji ni jedna funkcijska zavisnost, po kojoj neki
ne-ključni atribut parcijalno zavisi od bilo kog
kandidat-ključa
• Ili, drugim rečima
• Šema relacije je u II normalnoj formi ako svi atributi
entiteta, koji nisu primarni ključevi, zavise totalno od
(celog) primarnog ključa

doc. dr Dalibor Radovanović - 44 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Posmatra se loša struktura relacije


AUTOR(SIFA,SIFN,IME,KOJI)
• kao i skup funkcijskih zavisnosti
F={SIFA,SIFN→IME,KOJI SIFA→IME}

• U postupku normalizacije treba SIFA→IME izdvojiti u


posebnu šemu relacije, a iz polazne šeme relacije
ukloniti desnu stranu te zavisnosti, tj. IME

doc. dr Dalibor Radovanović - 45 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Vrši se dekompozicija

• Dekompozicijom polazne relacije uklonjena je


neželjena parcijalna funkcijska zavisnost

doc. dr Dalibor Radovanović - 46 -


4.4 Treća normalna forma
Baze podataka doc. dr Dalibor Radovanović

• Definicija: Šema relacije R je u III normalnoj formi


ako nad njom ne postoji ni jedna funkcijska
zavisnost, po kojoj neki ne-ključni atribut tranzitivno
zavisi od bilo kog kandidat-ključa
• Uslovi za III normalnu formu (dozvoljene funkcijske
zavisnosti):
– zavisnost X→Y je trivijalna tj. Y⊆X
– zavisnost je superključna, tj. X→R
– Y je deo kandidat ključa, tj. ∃Z(Y⊂Z ∧ Z→R)
• Svaka šema relacije koja je u III normalnoj formi
istovremeno je i u II normalnoj formi

doc. dr Dalibor Radovanović - 47 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Posmatra se relacija o naslovima koja sadrži sve


podatke o naslovima, oblastima i autorima:
NASLOV(SIFN,SIFA,KOJI,NAZIVN,IME,SIFO,NAZIVO)
• kao i odgovarajući skup funkcijskih zavisnosti:
F={ SIFN,SIFA→KOJI,NAZIVN,IME,SIFO,NAZIVO
SIFN→NAZIVN,SIFO SIFA→IME
SIFO→NAZIVO}

doc. dr Dalibor Radovanović - 48 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Normalizacija primenom kriterijuma za III normalnu


formu:

doc. dr Dalibor Radovanović - 49 -


4.5 Bojs-Kodova normalna forma
Baze podataka doc. dr Dalibor Radovanović

(Boyce-Codd Normal Form, BCNF)


• Definicija: Šema relacije R je u Bojs-Kodovoj
normalnoj formi ako svaka funkcijska zavisnost X→Y
koja važi nad njom zadovoljava jedan od uslova:
– zavisnost je trivijalna tj. Y⊆X
– zavisnost je superključna, tj. X→R
• U odnosu na III normalnu formu, strožija definicija
– eliminišu se dodatne tranzitivne zavisnosti
• Šema relacije u Bojs-Kodovoj normalnoj formi (BCNF
ili 3.5NF) istovremeno je i u III normalnoj formi

doc. dr Dalibor Radovanović - 50 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Posmatra se šema relacije o pozajmicama, koja


sadrži podatke o naslovima, članovima i knjigama:
POZAJMICA(SIFN,SIFC,DANA,NAZIVN,SIFK)
• kao i odgovarajući skup funkcijskih zavisnosti:
F={ SIFN,SIFC,DANA→NAZIVN,SIFK
SIFK→SIFN SIFN→NAZIVN}

doc. dr Dalibor Radovanović - 51 -


Primer
Baze podataka doc. dr Dalibor Radovanović

• Normalizacijom se dobija sledeća dekompozicija

doc. dr Dalibor Radovanović - 52 -


4.6 Prva normalna forma
Baze podataka doc. dr Dalibor Radovanović

• Vrsta zavisnosti koja nije funkcijskog karaktera


• U svim dosadašnjim primerima podrazumevano je da
su vrednosti svih atributa skalari (a ne i vektori)
• Ovo je ograničenje nad tipovima atributa, koje ne
postoji u savremenim programskim jezicima
• Da bi šema relacije bila u 1NF ne dozvoljavaju se
višestruke vrednosti atributa (multivalued attributes)
– atributi moraju biti skalarnog tipa, tj. domeni ovakvih
atributa treba da budu "atomski" (nedeljivi)

doc. dr Dalibor Radovanović - 53 -


Primer
Baze podataka doc. dr Dalibor Radovanović

doc. dr Dalibor Radovanović - 54 -


Primer
Baze podataka doc. dr Dalibor Radovanović

doc. dr Dalibor Radovanović - 55 -


Primer
Baze podataka doc. dr Dalibor Radovanović

Rastavljanje na dve šeme relacija

doc. dr Dalibor Radovanović - 56 -


Primer
Baze podataka doc. dr Dalibor Radovanović

Eliminacija duplikata

doc. dr Dalibor Radovanović - 57 -


Normalne forme
Baze podataka doc. dr Dalibor Radovanović

doc. dr Dalibor Radovanović - 58 -


4.7 Prednosti i nedostaci normalizacije
Baze podataka doc. dr Dalibor Radovanović

• Prednosti normalizacije:
– smanjenje fizičkog prostora za smeštanje podataka
– bolja organizacija podataka
– promene podataka se rade na nivou samo jednog rekorda
• Mane normalizacije
– fizički prostor diska je danas jeftin – malo bitan (izuzev kod
velikih baza tipa Data warehouses)
– minimizacija dovodi do visoke granularnosti.
SQL JOIN QUERY se sporo izvršavaju
– nastaju šeme relacija koje karakteriše visoka kompleksnost
sa stanovišta dizajnera i programera

doc. dr Dalibor Radovanović - 59 -


5. Denormalizacija
Baze podataka doc. dr Dalibor Radovanović

• Pojam
• Često pridruživane tabele
• Redundantni podaci
• Primer 1: utakmica
• Primer 2: ispit

doc. dr Dalibor Radovanović - 60 -


Pojam
Baze podataka doc. dr Dalibor Radovanović

• Prevođenje tabele u slabiju normalnu formu


– namerno smanjenje normalizacije
– najčešće se vrši zbog performansi
• Normalizacija – rešavanje problema
– ne mora da bude jedini način rešavanja problema
– mogu se kreirati ograničenja kojima se obezbeđuje
referencijalni integritet

doc. dr Dalibor Radovanović - 61 -


Često pridruživane tabele
Baze podataka doc. dr Dalibor Radovanović

• Često pridruživane tabele (PREJOINED TABLES)


– ako se nad dve tabele veliki broj puta izvršava JOIN
operator, treba razmisliti o kreiranju nove tabele koja
sadrži u sebi celu vezu

doc. dr Dalibor Radovanović - 62 -


Redundantni podaci
Baze podataka doc. dr Dalibor Radovanović

• Redudantni podaci (RADUNDANT DATA)


– ako se često kolone iz jedne tabele koja se pridružuje
drugoj koriste zajedno sa kolonama iz druge
• Mogu se neke kolone iz prve uključe u drugu i time bi se
eliminisalo pridruživanje te dve tabele
– obavezno je procedurama ili trigerima na bazi čuvati
integritet podataka da ne bi došlo do razlika

doc. dr Dalibor Radovanović - 63 -


Primer 1
Baze podataka doc. dr Dalibor Radovanović

• UTAKMICA(Datum, Domacin, Gost, Stadion, Rezultat, Sudija, Adr_sud,


Vreme)
– PK = Datum, Domacin
– KK1 = Datum, Stadion; KK2=Datum, Gost, KK3=Datum, Sudija
• Funkcijske zavisnosti:
– Domaćin → Stadion
– Sudija → Adr_sud
• Super ključne funkcijske zavisnosti:
– (Datum, Domacin) → Gost, Sudija, Rezultat, Vreme
• Parcijalna zavisnost:
– (Datum, Domacin) → Gost zato što je Domacin Stadion
• Tranzitivna zavisnost:
– (Datum, Domacin) → Adr_sud,
zato što je (Datum,Domacin) → Sudija → Adr_Sud

doc. dr Dalibor Radovanović - 64 -


Primer 1
Baze podataka doc. dr Dalibor Radovanović

• Problemi zbog relacije loše strukture


– Novi sudija (iz nekog mesta) ne može da se evidentira, zato
što još uvek nije sudio ni jednu utakmicu
• Primarni atributi ne mogu biti sa NULL vrednostima
– Ako se neki sudija preseli, njegovu adresu treba menjati na
mnogo mesta u tabeli

doc. dr Dalibor Radovanović - 65 -


Primer 1
Baze podataka doc. dr Dalibor Radovanović

• UTAKMICA(Datum, Domacin, Gost, Stadion, Rezultat, Sudija,


Adr_sud, Vreme)
1. UTAKMICA(Datum, Domacin, Gost, Rezultat, Sudija,
Adr_sud, Vreme)
2. KLUB(Klub, Stadion)
• Posle ovog ne postoje parcijalne zavisnosti, ali postoje
tranzitivne

doc. dr Dalibor Radovanović - 66 -


Primer 2
Baze podataka doc. dr Dalibor Radovanović

• ISPIT (Datum, Indeks, Id_pred, Student, Predmet, Profesor, Sala, Ocena)


– PK = Datum, Indeks, Id_pred
– KK1 = Datum, Indeks, Predmet KK2=Datum, Student, Id_pred
• Funkcijske zavisnosti:
– Id_pred → Predmet; Id_pred → Profesor
– Id_pred → Sala; Profesor → Sala
• Super ključne funkcijske zavisnosti:
– (Datum, Indeks, Id_pred) → Ocena
• Parcijalna zavisnost:
– (Datum, Indeks, Id_pred) → Predmet
– (Datum, Indeks, Id_pred) → Profesor
– (Datum, Indeks, Id_pred) → Sala
– (Datum, Indeks, Id_pred) → Student
• • Tranzitivna zavisnost:
– Id_pred → Sala,
– zato što je Id_pred → Profesor → Sala

doc. dr Dalibor Radovanović - 67 -


Primer 2
Baze podataka doc. dr Dalibor Radovanović

• Problemi zbog relacije loše strukture


– nije moguće uvesti novi predmet sve dok ga neki student
ne polaže
• Indeks je u sastavu primarnog ključa i ne može imati NULL
vrednost
– ne mogu se uneti podaci za novog nastavnika sve dok ne
dobije neki predmet i sve dok ga neki student ne bude
polagao
• Indeks i Id_pred su u sastavu primarnog ključa
– ako se menja naslov predmeta to se mora uraditi na više
mesta
• zavisi koliko ga je studenata polagalo

doc. dr Dalibor Radovanović - 68 -


Primer 2
Baze podataka doc. dr Dalibor Radovanović

• ISPIT (Datum, Indeks, Id_pred, Student, Predmet, Profesor, Kabinet,


Ocena)
– PK = Datum, Indeks, Id_pred
– KK1 = Datum, Indeks, Predmet KK2=Datum, Student, Id_pred
• Funkcijske zavisnosti:
– Id_pred → Predmet, Profesor, Kabinet
– Profesor → Kabinet
• Super ključne funkcijske zavisnosti:
• – (Datum, Indeks, Id_pred) → Ocena
• Parcijalna zavisnost:
– (Datum, Indeks, Id_pred) → Predmet
– (Datum, Indeks, Id_pred) → Profesor
– (Datum, Indeks, Id_pred) → Kabinet
– (Datum, Indeks, Id_pred) → Student
• Tranzitivna zavisnost:
– Id_pred → Sala,
zato što je Id_pred → Profesor → Kabinet

doc. dr Dalibor Radovanović - 69 -


Baze podataka doc. dr Dalibor Radovanović

• Pitanja?

doc. dr Dalibor Radovanović - 70 -


Baze podataka doc. dr Dalibor Radovanović

Važno !

Ova prezentacija je nekomercijalna.

Slajdovi mogu da sadrže materijale preuzete sa Interneta, stručne i naučne građe, koji
su zaštićeni Zakonom o autorskim i srodnim pravima. Ova prezentacija se može
koristiti samo privremeno tokom usmenog izlaganja nastavnika u cilju informisanja i
upućivanja studenata na dalji stručni, istraživački i naučni rad i u druge svrhe se ne
sme koristiti.

Član 44 - Dozvoljeno je bez dozvole autora i bez plaćanja autorske naknade za nekomercijalne svrhe nastave:
(1) javno izvođenje ili predstavljanje objavljenih dela u obliku neposrednog poučavanja na nastavi;
- ZAKON O AUTORSKOM I SRODNIM PRAVIMA ("Sl. glasnik RS", br. 104/2009 i 99/2011)
.................................................................................................................................................................................
Dalibor Radovanović
dradovanovic@singidunum.ac.rs

doc. dr Dalibor Radovanović - 71 -

You might also like