Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 39

www.puskice.co.

yu

3. NORMALNE FORME - PROJEKTOVANJE RELACIJA


NORMALIZACIJOM

Normalizacija je postupak projektovanja logičke strukture baze podataka.


Uobičajeno je da se koristi za projektovanje logičke strukture relacionog modela,
pa će i ovde normalne forme biti definisane u terminologiji relacionog modela.
Međutim, postupak normalizacije ima opštiji značaj i treba ga primenjivati i na
druge "klasične" modele baze podataka (mrežni i hijerarhijski), kao i za
projektovanje strukture zapisa u obradi podataka zasnovanoj na skupu datoteka.
Relaciona terminologija se očigledno i direktno preslikava u terminologiju ovih
drugih modela.

Najopštije rečeno, dobra je ona struktura baze podataka u kojoj je logička


redundansa minimalna. Problemi održavanja redundantne baze podataka su
ranije uopšteno diskutovani. Osnovne operacije održavanja su dodavanje nove n-
torke u relaciju, izbacivanje neke n-torke iz relacije i izmena vrednosti nekog
atributa u relaciji (ažuriranje). Problemi pri izvođenju ovih operacija (potreba da
se pri izmeni jednog atributa, dodavanju ili izbacivanju jedne n-torke sama
operacija mora ponavljati više puta, ili čak da se neko logičko dodavanje ne može
izvršiti, odnosno da izbacivanje jednog logičkog skupa podataka dovodi do
neželjenog izbacivanja drugih podataka) nazivaju se anomalije u održavanju BP.
Uobičajeno je da se posebno definišu i analiziraju anomalije u dodavanju n-torke,
anomalije u izbacivanju n-torke i anomalije u ažuriranju.

Loše projektovana logička struktura baze podataka ne dovodi samo do anomalija


u njenom održavanju. Sa tačke gledišta izveštavanja kvalitet logičke strukture BP
može se ceniti na osnovu sledećeg opšteg kriterijuma: Pođednako teški (laki)
zahtevi za izveštajima iz BP realizuju se pođednako teškim (lakim) programima,
ili, preciznije, simetrični zahtevi rezultuju u simetrične programe.

Ilustrovaćemo probleme održavanja i izveštavanja na primeru jedne


nenormalizovane relacije. Nenormalizovana relacija je ranije definisana kao
relacija koja poseduje neke vrednosti atributa koje nisu "atomske", odnosno
relacija koja poseduje "grupe sa ponavljanjem".

STUDENT
BI IME SEM ŠSMER IMERUK ŠPRED NAZPRED OCENA

21 ZORAN 5 01 BATA 121 MATEMAT 7


323 BAZEPOD 8
056 MARKSIZ 8

77 ANA 7 01 BATA 056 MARKSIZ 10


121 MATEMAT 5

36 PERA 4 02 MIKA 323 BAZEPOD 8


456 ELEKTRON 9

www.puskice.co.yu 64
www.puskice.co.yu

442 FIZIKA 6
056 MARKSIZ 8

Anomalije u dodavanju: Ako je u novom nastavnom planu definisan novi predmet,


ne mogu se ubaciti podaci o tom predmetu dok ga neki student ne položi. Ili, ako
se otvori neki novi smer, ne mogu se ubaciti podaci o tom smeru dok ga neki
student ne upiše.

Anomalije u izbacivanju: Ako je jedan predmet (FIZIKA) položio samo jedan


student (PERA) i ako se on ispiše sa fakulteta, odnosno izbaci odgovarajuća n-
torka, gube se i sve informacije o tom predmetu. Ako je taj student bio i jedini
student na nekom smeru, gube se i sve informacije o tom smeru.

Anomalije u ažuriranju: Ako se promeni naziv nekog predmeta ili rukovodioc


nekog smera, to se mora učiniti na onoliko mesta koliko je studenata položilo taj
predmet, odnosno koliko je studenata upisano na dati smer.

Problemi u izveštavanju: Data struktura relacije je veoma pogodna za izveštaj na


zahtev: "Prikaži listu studenata, svih ispita koje je svaki student položio i njegovu
prosečnu ocenu" (Uverenje o položenim ispitima). Odgovarajući program bi bio
veoma jednostavan i sveo bi se na listanje date relacije (datoteke). Međutim
"simetričan" zahtev: "Prikaži listu predmeta, imena svih studenata koji su ga
položili i prosečnu ocenu na predmetu", za datu strukturu relacije zahtevao bi
znatno složeniji program, ili bi samu relaciju trebalo prestruktuirati i dobiti dve
relacije sa istim skupom podataka za dva različita zahteva, čime bi se
redundansa podataka, pa samim tim i problemi održavanja baze podataka,
umnožili.

Postupkom normalizacije logička struktura baze podataka se dovodi u takav oblik


(ili, drugim rečima, relacije se dovode u normalne forme) u kome se izbegavaju
anomalije u održavanju i problemi u izveštavanju.

3.1. Prva normalna forma (1NF)

Pokazali smo da nenormalizovana relacija dovodi do anomalija u ažuriranju i da


nije pogodna za sve zahteve za izveštavanje koji se realno mogu očekivati. Isto
tako, ranije je naglašeno da svi upitni jezici zasnovani na relacionoj algebri i
relacionom računu zahtevaju normalizovane relacije, odnosno relacije u Prvoj
normalnoj formi (1NF). (Termin normalizovana relacija se koristi za relacije koje su
u 1NF).

Relacija R je u Prvoj normalnoj formi (1NF) ako su sve vrednosti njenih atributa
atomske.

Relaciju STUDENT možemo normalizovati (svesti na 1NF) ako u svakoj vrsti


prikazane tabele, za svaki ispit koji je neki student položio, ponovimo i sve ostale
njegove podatke (BI, IME, SEM, ŠSMER, IMERUK). Međutim, da bi se smanjila
redundansa do koje bi, očigledno, ovakva normalizacija dovela, možemo ovako
dobijenu relaciju, operacijom projekcije, dekomponovati na sledeće dve:

STUDENT1 (BI, IME, SEM, ŠSMER, IMERUK) . . . . (1)

www.puskice.co.yu 65
www.puskice.co.yu

PRIJAVA (BI, ŠPRED, NAZPRED, OCENA) . . . . (2)

Prirodno spajanje ove dve relacije po BI rekonstruisalo bi polaznu normalizovanu


relaciju.

3.2. Funkcionalne zavisnosti - osnovne definicije i terminologija

Definicije Druge, Treće i Boyce-Codd-ove normalne forme zasnivaju se na


konceptu funkcionalne zavisnosti atributa relacije.

Data je relacija R sa atributima X i Y, moguće složenim. Atribut Y je funkcionalno


zavisan od atributa X (ili X funkcionalno određuje Y),
R.X -> R.Y,
ako i samo ako svakoj vrednosti X odgovara jedna i samo jedna vrednost Y.

Na primer u relaciji (1) postoje sledeće funkcionalne zavisnosti:


BI -> IME
BI -> SEM
BI -> ŠSMER
BI -> IMERUK

Definicija funkcionalne zavisnosti se može dati i na sledeći način:


Atribut Y relacije R je funkcionalno zavisan od atributa X relacije R ako i samo
ako kad god dve n-torke relacije R imaju istu x-vrednost one moraju imati istu i
y-vrednost.

Očigledno je da iz definicije funkcionalne zavisnosti sledi i nova definicija ključa


relacije i novi koncept nadključa relacije:
Atribut X moguće složeni, je nadključ neke relacije R ako i samo ako
funkcionalno određuje sve ostale atribute relacije R.
Atribut X, moguće složeni, je ključ relacije R ako je nadključ relacije R, a
nijedan njegov pravi podskup nema tu osobinu.

Koncept potpune funkcionalne zavisnosti se definiše na sledeći način:


Atribut Y relacije R je potpuno funkcionalno zavisan od atributa X relacije R ako
je funkcionalno zavisan od atributa X, a nije funkcionalno zavisan ni od jednog
pravog podskupa atributa X.

Primere potpune i nepotpune funkcionalne zavisnosti možemo pokazati na relaciji


PRIJAVA:

(a) Pošto važi sledeće:


BI, ŠPRED ---> OCENA
BI -/-> OCENA
ŠPRED -/-> OCENA
atribut OCENA je potpuno funkcionalno zavisnan od složenog atributa BI,
ŠPRED.

www.puskice.co.yu 66
www.puskice.co.yu

(b) Pošto važi sledeće:


BI, ŠPRED ---> NAZPRED
BI -/-> NAZPRED
ŠPRED ---> NAZPRED

atribut NAZPRED je nepotpuno funkcionalno zavisan od složenog atributa BI,


ŠPRED, jer je funkcionalno zavisan i od njega i od jednog njegovog dela, od
ŠPRED.

Graf na Slici 1 ilustruje gornji primer potpune i nepotpune funkcionalne


zavisnosti. Pokazuje se da je nepotpuna funkcionalna zavisnost redundantna, jer
se može dedukovati preko proizvoda (kompozicije) zavisnosti:
f1: BI, ŠPRED ---> ŠPRED
f2: ŠPRED ---> NAZPRED
Iz f1 i f2 sledi:
f3 = f1  f2: BI, ŠPRED ---> NAZPRED, pa je nije neophodno pamtiti u bazi
podataka.
(Sa oznakom  se označava proizvod ili kompozicija funkcija. Funkcionalna
zavisnost f1 je trivijalna funkcionalna zavisnost, zavisnost koja uvek važi, jer je
podskup (ŠPRED) uvek funkcionalno zavisan od skupa (BI, ŠPRED)).

B C [PRED NAZPRED

BI,
A,B
[PRED

A D BI OCENA

sa su ozna~ene trivijalne funkcije

(a) Graf definicije potpune funkcionalne (b) Primer potpune funkcionalne


zavisnosti. C je potpuno funkcionalno zavisnosti. OCENA je potpuno
zavisno od složenog atributa A,B, a zavisna od BI, ŠPRED, a NAZPRED
D nije. nije.

Slika 1. Nepotpuna funkcionalna zavisnost

www.puskice.co.yu 67
www.puskice.co.yu

Koncept tranzitivne funkcionalne zavisnosti se definiše na sledeći način:

Data je relacija R sa atributima A, B i C, moguće složenim. Ako u relaciji R važi:


A ---> B
B ---> C
A ---> C
B -/-> A
C -/-> A

atribut C je tranzitivno funkcionalno zavisan od atributa A.

Jednostavnije rečeno, atribut C je tranzitivno funkcionalno zavisan od atributa A


ako je funkcionalno zavisan od A i ako je funkcionalno zavisan od nekog atributa
B koji je i sam funkcionalno zavisan od A.

Na Slici 2 prikazan je graf koji ilustruje opštu definiciju tranzitivne funkcionalne


zavisnosti i primer tranzitivne funkcionalne zavisnosti iz relacije STUDENT.
Očigledno je da je i tranzitivna funkcionalna zavisnost redundantna, jer se može
dedukovati iz kompozicije funkcija koje je čine. Iz zavisnosti
f1: BI ---> ŠSMER
f2: ŠSMER ---> IMERUK
sledi f3 = f1  f2 : BI ---> IMERUK, pa je nije neophodno pamtiti u bazi
podataka.

?
A B C

(a) Graf definicije tranzitivne FZ. Atribut C je tranzitivno funkcionalno zavisan od


A

BI IME SEM [SMER IMERUK

(b) Primer tranzitivne FZ. Atribut IMERUK je tranzitivno funkcionalno zavisan od


BI

www.puskice.co.yu 68
www.puskice.co.yu

Slika 2. Tranzitivna funkcionalna zavisnost

U definiciji tranzitivne funkcionalne zavisnosti ništa nije rečeno o zavisnosti


atributa B od atributa C. To znači da ona može biti bilo funkcionalna, bilo
višeznačna. Ako je ova zavisnost višeznačna, takva tranzitivna zavisnot C od A se
naziva stroga tranzitivna zavisnost. Stroga tranzitivna zavisnost dovodi do veće
redundanse.

3.3. Dekompozicija relacija bez gubljenja informacija

Već pri svođenju nenormalizovane relacije STUDENT na prvu normalnu formu


dekomponovali smo ovu relaciju na njene dve projekcije STUDENT1 i PRIJAVA. I u
daljem postupku normalizacije ovih relacija i njih ćemo dekomponovati u njihove
projekcije. Postavlja se pitanje da li se pri takvoj dekompoziciji gubi neka
informacija iz polazne relacije, odnosno postavlja se zahtev da se ovakva
dekompozicija vrši bez gubljenja informacija.

Relacija R se dekomponuje u svoje projekcije bez gubljenja informacija ako


prirodno spajanje tako dobijenih projekcija dovodi do polazne relacije. Pokažimo
na primeru relacije PRIJAVA da je formalno moguće dekomponovati relaciju i sa
gubljenjem informacija i da se to gubljenje informacija ogleda, obično, u tome da
se u relaciji koja se dobija prirodnim spajanjem projekcija pojavljuju i neke
dodatne n-torke koje nisu postojale u polaznoj relaciji.

PRIJAVA

BI ŠPRED NAZPRED OCENA

21 121 MATEMAT 7
21 323 BAZEPOD 8
21 056 MARKSIZ 8
77 056 MARKSIZ 10
77 121 MATEMAT 5
36 323 BAZEPOD 8
36 456 ELEKTRON 9
36 442 FIZIKA 6
36 056 MARKSIZ 8

Dekomponujmo ovu relaciju na projekcije R1(BI, ŠPRED, OCENA) i


R2(NAZPRED, OCENA).

R1 R2
BI ŠPRED OCENA NAZPRED OCENA
21 121 7 MATEMAT 7
21 323 8 BAZEPOD 8
21 056 8 MARKSIZ 8
77 056 10 MARKSIZ 10
77 121 5 MATEMAT 5
www.puskice.co.yu 69
www.puskice.co.yu

36 323 8 ELEKTRON 9
36 456 9 FIZIKA 6
36 442 6
36 056 8

Prirodno spajanje R3 = R1OCENA * OCENA R2 daje:

R3
BI ŠPRED NAZPRED OCENA
21 121 MATEMAT 7
21 323 BAZEPOD 8
21 056 MARKSIZ 6
77 056 MARKSIZ 10
77 121 MATEMAT 5
36 323 BAZEPOD 9
36 456 ELEKTRON 9
36 442 FIZIKA 6
36 056 MARKSIZ 8
---------------------------------------------------------
21 323 MARKSIZ 8
36 056 BAZEPOD 8
21 056 FIZIKA 6
36 442 MARKSIZ 6
36 323 ELEKTRON 9
36 465 BAZEPOD 9

N-torke dopisane ispod crtkaste linije su rezultat spajanja, a nisu postojale u


polaznoj relaciji PRIJAVA i one su uzrok gubljenja informacija u navedenoj
dekompoziciji.

Heath-ova teorema /Heath 71/ daje uslove pod kojima se može izvršiti
dekompozicija relacije bez gubljenja informacija:

Relacija R(A,B,C), gde su A, B i C podskupovi atributa, u kojoj važi R.A --> R.B
može se uvek dekomponovati u svoje projekcije R1(A,B) i R2(A,C) bez gubljenja
informacija.

Za navedeni primer relacije PRIJAVA dekompozicija bez gubljenja informacija bi


bila dekompozicija u projekcije R1(BI, ŠPRED, OCENA) i R2(ŠPRED, NAZPRED)

3.4. Druga i Treća normalna forma

Posmatrajmo relaciju PRIJAVA. Očigledna je redundansa podataka u ovoj relaciji:


NAZPRED, za isti predmet, se pojavljuje uz svakog studenta koji je taj predmet
položio. Postoje ponovo sve iste anomalije u održavanju BP:
 Ne mogu se dodati podaci o novom predmetu ako ga neki student nije
položio.
 Ako se iz baze podataka izbaci n-torka studenta koji je jedini položio neki
predmet, gube se sve informacije i o tom predmetu.

www.puskice.co.yu 70
www.puskice.co.yu

 Ako se promeni naziv predmeta, to se mora učiniti na onoliko mesta koliko


je studenata položilo taj predmet.

Uzrok redundansi i anomalijama u održavanju je nepotpuna funkcionalna


zavisnost atributa NAZPRED od složenog atributa BI, ŠPRED, za koju smo ranije
pokazali da je redundantna funkcionalna zavisnost. Definicija Druge normalne
forme zabranjuje postojanje ovakve zavisnosti /Date 86/.

Relacija R je u Drugoj normalnoj formi (2NF) ako i samo ako je u 1NF i svi njeni
neključni atributi potpuno i funkcionalno zavise od primarnog ključa.

Neključni atributi (atributi koji nisu kandidati za ključ, niti deo kandidata za ključ)
relacije prijava su NAZPRED i OCENA, a primarni ključ je složeni atribut BI,
ŠPRED. Kako je ranije pokazano atribut OCENA je potpuno funkcionalno zavisan
od primarnog ključa, a atribut NAZPRED nije. Zbog toga relacija PRIJAVA nije u
2NF. Svođenje na 2NF vrši se dekompozicijom na taj način što u jednoj projekciji
ostavlja primarni ključ i svi atributi koji su potpuno funkcionalno zavisni od njega,
a u drugim projekcijama se realizuju one funkcionalne zavisnosti koje su
prouzrokovale nepotpune funkcionalne zavisnosti. Za navedeni primer
dekompozicija je:

PRIJAVA1(BI, ŠPRED, OCENA). . . . (3)


PREDMET(ŠPRED, NAZPRED) . . . . (4)

Može se dati i sledeća neformalna definicija 2NF /Kent 83/:

Relacija R je u 2NF ako svi njeni atributi daju jednoznačne činjenice samo o celom
ključu.

Atribut NAZPRED daje jednoznačnu informaciju o delu ključa ŠPRED, pa zbog


toga, i po ovoj neformalnoj definiciji relacija PRIJAVA nije u 2NF.

Iz definicije 2NF i definicije potpune funkcionalne zavisnosti očigledno je da je


svaka relacija sa prostim primarnim ključem u 2NF, jer prosti ključ nema
semantički moguć pravi podskup.

Posmatrajmo relaciju STUDENTl(BI, IME, SEM, ŠSMER, IMERUK). Očigledno je da u


ovoj relaciji postoji redundansa podataka (isto IMERUK se pojavljuje uz svakog
studenta upisanog na odgovarajući smer) i da postoje anomalije u održavanju:
 Ne mogu se dodati informacije o novom smeru dok ga neki student ne
upiše.
 Ako se iz relacije STUDENT1 izbaci student koji je jedini bio upisan na neki
smer, gube se informacije i o tom smeru.
 Ako se promeni rukovodioc smera atribut IMERUK treba promeniti na onoliko
mesta koliko je studenata upisano na taj smer.

Razlog za redundansu i anomalije u održavanju je postojanje tranzitivne


funkcionalne zavisnosti (za koju smo pokazali da je redundantna) atributa
IMERUK od atributa BI. Definicija Treće normalne forme zabranjuje postojanje
ovakvih zavisnosti u relacijama. Definicija Treće normalne forme, je /Date 86/:

Relacija R je u Trećoj normalnoj formi (3NF) ako i samo ako je u 2NF i ako svi njeni
neključni atributi netranzitivno funkcionalno zavise od primarnog ključa.

www.puskice.co.yu 71
www.puskice.co.yu

Zbog postojanja tranzitivne zavisnosti atributa IMERUK od primarnog ključa BI


relacija STUDENT1 nije u 3NF. Svođenje na 3NF vrši se dekompozicijom (bez
gubljenja informacija) relacije u njene projekcije na taj način što se u jednoj
projekciji ostavljaju primarni ključ i svi netranzitivno zavisni atributi, a u drugim
projekcijama se realizuju funkcionalne zavisnosti koje su dovele do tranzitivnih
zavisnosti.
STUDENT2(BI, IME, SEM, ŠSMER) . . . . (5)
SMER(ŠSMER, IMERUK) . . . . (6)

Može se dati i sledeća neformalna definicija 3NF koja obuhvata i 2NF /Kent 83/:

Relacija R je u 3NF ako svi njeni atributi daju jednoznačne činjenice o celom
ključu i samo o celom ključu.

U relaciji STUDENT1 atribut IMERUK je činjenica i o atributu ŠSMER, a ne samo o


ključu BI. Tranzitivna zavisnost u nekoj relaciji postoji uvek kada, osim
funkcionalne zavisnosti atributa od ključa (jednoznačne činjenice o ključu), u njoj
postoji i neka druga funkcionalna zavisnost između atributa (jednoznačne
činjenice o nekom atributu koji nije ključ).

Date neformalne definicije 2NF i 3NF otkrivaju suštinu postupka normalizacije.


Naime, baza podataka je, kao što je rečeno, statički model realnog sistema.
Samo ako se u njoj jasno prepoznaju objekti, veze i atributi objekata i veza u
realnom sistemu, ona će biti pogodna za sve obrade podataka koje odgovaraju
svim mogućim zahtevima korisnika, odnosno neće prouzrokovati anomalije u
održavanju, niti će dovoditi do problema u izradi programa za izveštavanje.
Navedeni primeri se očigledno odnose na realni sistem FAKULTET. U kontekstu
datih primera možemo reći da se sistem FAKULTET sastoji od objekata STUDENT,
PREDMET i SMER čija su svojstva opisana preko njima pripadajućih atributa. (Na
primer BI, IME i SEM za objekat STUDENT ili ŠPRED i NAZPRED za objekat
PREDMET itd.). Objekti STUDENT i PREDMET su povezani vezom PRIJAVA koja ima
atribut OCENA, a objekti STUDENT i SMER su povezani vezom UPISAN koja u
modelu nije eksplicitno iskazana, već preko atributa ŠSMER u relaciji STUDENT2.
Ovako definisan sistem se jasno prepoznaje u modelu BP sa relacijama u 3NF
(STUDENT2, PREDMET, SMER i PRIJAVA1). Polazna relacija STUDENT, relacije
STUDENT1 i PRIJAVA predstavljale su neku "mešavinu" objekata i veza realnog
sistema, a ne posebne, jasno definisane objekte ili veze sa njima svojstvenim
atributima. Postupak normalizacije svodi model BP na skup relacija od kojih svaka
predstavlja neki osnovni objekat ili vezu u sistemu. Atributi takvih relacija su
svojstveni atributi odgovarajućih objekata ili veza.

3.5. Boyce-Codd-ova normalna forma (BCNF)

Navedene definicije 2NF i 3NF je orginalno dao E.F.Codd, tvorac relacionog


modela /Codd 72/. Pokazalo se da ove definicije nisu dovoljno precizne (stroge),
posebno u slučajevima kada relacija ima tzv "preklapajuće" kandidate za ključ
(dva ili više složenih kandidata za ključ koji imaju barem jedan zajednički atribut).
Analizirajmo ponovo relaciju PRIJAVA.
PRIJAVA(BI, ŠPRED, NAZPRED, OCENA)

www.puskice.co.yu 72
www.puskice.co.yu

U dosadašnjoj analizi ove relacije predpostavljali smo da važe sledeće


funkcionalne zavisnosti:
BI, ŠPRED ---> NAZPRED
BI, ŠPRED ---> OCENA
ŠPRED ---> NAZPRED)

Jedini kandidat za ključ i primarni ključ je složeni atribut BI, ŠPRED. Neključni
atributi su ŠPRED i OCENA. Pošto neključni atribut ŠPRED nepotpuno
funkcionalno zavisi od primarnog ključa, relacija PRIJAVA nije u 2NF. Međutim,
pretpostavimo da sada postoji još i sledeća funkcionalna zavisnost (da je
NAZPRED jednoznačan):
NAZPRED ---> ŠPRED

U tom slučaju u relaciji PRIJAVA postoje dva složena i "preklapajuća" kandidata za


ključ, BI, ŠPRED i BI, NAZPRED. Jedini neključni atribut je sada OCENA, pa pošto
on potpuno funkcionalno zavisi od primarnog ključa (bilo koji od kandidata da je
izabran), relacija PRIJAVA jeste u 2NF. Međutim, sve anomalije u ažuriranju i dalje
ostaju! To znači da definicija 2NF (pa samim tim i 3NF) nije dovoljno precizna.

Boyce-Codd-ova definicija uklanja te nepreciznosti. Za iskaz te definicije uvodi se


i pojam determinante relacije.

Determinanta relacije R je bilo koji atribut, prost ili složen, od koga neki drugi
atribut u relaciji potpuno funkcionalno zavisi.

Relacija R je u Boyce-Codd-ovoj normalnoj formi (BCNF) ako i samo ako su sve


determinante u relaciji i kandidati za ključ.

Označimo sve determinante (D) i sve kandidate za ključ (KK) relacije PRIJAVA (uz
pretpostavku da važi i dodatno uvedena funkcionalna zavisnost NAZPRED --->
ŠPRED):
BI, ŠPRED ---> NAZPRED, OCENA (D) (KK)
BI, NAZPRED ---> ŠPRED, OCENA (D) (KK)
ŠPRED ---> NAZPRED (D)
NAZPRED ---> ŠPRED (D)

Sve determinante nisu kandidati za ključ pa relacija nije u BCNF.


Dekompozicijom, pri kojoj se iz relacije izvlače projekcije sa onim
determinantama koje nisu kandidati za ključ, relacija se svodi na BCNF.
PRIJAVA1(BI, ŠPRED, OCENA)
PREDMET(ŠPRED, NAZPRED)

Složeni, "preklapajući" kandidati za ključ su signal da relacija možda nije u BCNF.


Međutim, može se pokazati da neka relacija i sa složenim, "preklapajućim"
kandidatima za ključ može biti u BCNF.

(Domaći zadatak: Data je relacija RANGIRANJE(BI, ŠPRED, RANG), gde je RANG


položaj studenta na nekoj rang listi za posmatrani predmet. Pretpostavlja se da
dva studenta nemaju isti rang u okviru jednog predmeta. Definisati funkcionalne
zavisnosti, determinante i kandidate za ključeve. Pokazati da je relacija u BCNF i
da nema anomalija u održavanju)
www.puskice.co.yu 73
www.puskice.co.yu

Može se dati i drugačija definicija BCNF koja koristi ranije definisani koncept
nadključa /Ull 86/.

Relacija R je u BCNF ako i samo ako kad god postoji netrivijalna


funkcionalna zavisnost X ---> A (A nije podskup od X) tada je X nadključ relacije
R.

U relaciji PRIJAVA postoje netrivijalne funkcionalne zavisnosti ŠPRED --->


NAZPRED i NAZPRED ---> ŠPRED, a ŠPRED i NAZPRED nisu njeni nadključevi, pa
ona nije u BCNF.

Definicija BCNF je striktno stroža od definicije 2NF i 3NF. To znači da je svaka


relacija koja je u BCNF sigurno i u 2NF i 3NF. Obrnuto ne važi.

3.6. Dekompozicija na zavisne i nezavisne projekcije

Dekompozicija relacije bez gubljenja informacija, sa ciljem da se ona svede na


neku normalnu formu nije jednoznačan postupak. Na primer, relaciju STUDENT1
možemo svesti na 3NF na sledeća dva načina:

(a) (b)
STUDENT2(BI, IME, SEM, ŠSMER) STUDENT2a(BI, IME, SEM, ŠSMER)
SMER(ŠSMER, IMERUK) STUDSMER(BI, IMERUK)

I relacije (a) i relacije (b) su u 3NF. Međutim, projekcije (b) pokazuju određene
anomalije u održavanju. Da bi se dodali ili izbacili podaci o jednom studentu, to je
neophodno uraditi u obe projekcije. Poseban problem predstavlja ažuriranje
atributa IMERUK, odnosno promena rukovodioca smera. Za svaku vrednost BI
koja odgovara datoj vrednosti ŠSMER iz relacije STUDENT2a, mora se u relaciji
STUDSMER izvršiti ažuriranje atributa IMERUK. Projekcije (a) ne pokazuju te
anomalije, održavanje se vrši nezavisno (posebno) u svakoj relaciji. Projekcije (a)
se nazivaju nezavisne (ortogonalne) projekcije, a projekcije (b) su zavisne
(povezane).

Rissansen-ova teorema daje uslove pod kojima se neka relacija može


dekomponovati na nezavisne projekcije /Date 86/.

Projekcije R1 i R2 relacije R su nezavisne tada i samo tada kada:


1. Svaka funkcionalna zavisnost u R se može logički dedukovati iz
funkcionalnih zavisnosti u R1 i R2 i
2. Zajednički atribut relacija R1 i R2 je kandidat za ključ barem u jednoj od
njih.

Za projekcije (a) oba uslova Rissansen-ove teoreme su zadovoljena, a iz


projekcije (b) se ne može dedukovati funkcionalna zavisnost ŠSMER ---> IMERUK
koja postoji u relaciji STUDENT1.

Pokazuje se da nije moguće uvek relaciju koja nije u BCNF dekomponovati na


nezavisne projekcije koje su u BCNF. Na primer, u relaciji

www.puskice.co.yu 74
www.puskice.co.yu

PREDAJE( IMES, NAZPR, IMENAST)

postoje sledeći odnosi između njenih atributa:


1. Svaki predmet, jednom studentu, predaje samo jedan nastavnik, odnosno
IMES, NAZPR ---> IMENAST
2. Svaki nastavnik predaje samo jedan predmet, odnosno
IMENAST ---> NAZPR
3. Svaki predmet predaje više nastavnika odnosno
NAZPR --/-> IMENAST

Determinante u relaciji PREDAJE su složeni atribut IMES, NAZPR i IMENAST, a


kandidat za ključ je samo IMES, NAZPR. Prema tome relacija PRIJAVA nije u BCNF.
Jedina moguća dekompozicija je
PREDAJEPR(IMENAST, NAZPR)
PREDAJEST(IMES, IMENAST)

Međutim, ovo je dekompozicija u zavisne projekcije. Rissansen-ova teorema nije


zadovoljena, funkcionalna zavisnost
IMES, NAZPR ---> IMENAST
koja postoji u polaznoj relaciji ne može se dedukovati iz ovih projekcija. Anomalije
u održavanju su očigledne, na primer, ako se promeni nastavnik koji predaje neki
predmet, ažuriranje se mora izvršiti u obe projekcije i to u projekciji PREDAJEST
na više mesta.

Očigledno je da dekompozicija na zavisne projekcije nema smisla, jer se takvom


dekompozicijom ne ostvaruje osnovni cilj normalizacije - eliminisanje anomalija u
održavanju BP. Imajući to u vidu može se reći da se ne može svaka relacija
dovesti u BCNF. Međutim svaka se relacija može svesti na manje strogu, 3NF, pa
to, u takvim slučajevima treba i učiniti.

3.7. Višenačne zavisnosti i Četvrta normalna forma

Do sada smo kao jedinu moguću zavisnost između atributa relacije tretirali razne
vrste funkcionalnih zavisnosti. Međutim, postoje i mnoge druge zavisnosti između
atributa u relaciji koje takođe mogu dovesti do anomalija u održavanju BP.
Najčešće se javljaju tzv. višeznačne zavisnosti.

Posmatrajmo nenormalizovanu relaciju PROGRAM.

PREDMET NASTAVNIK KNJIGA


INF-SIST BRANKO MARTIN
KRČA DATE
BAJA
SIST-ANAL VLADAN DEMARCO
SARSON

www.puskice.co.yu 75
www.puskice.co.yu

Semantika sistema je sledeća: Jedan predmet predaje više nastavnika. Za jedan


predmet se koristi više knjiga. Ne postoji nikakva veza između nastavnika i
knjiga. (Ne zna se koji nastavnik koristi koje knjige, jednu ili više).

Da bi se ova relacija dovela u 1NF i sačuvala semantika problema neophodno je


da se u normalizovanoj relaciji nađu, za dati predmet i datog nastavnika, n-torke
sa svim mogućim knjigama za taj predmet.

PREDMET NASTAVNIK KNJIGA


INF-SIST BRANKO MARTIN
INF-SIST BRANKO DATE
INF-SIST KRČA MARTIN
INF-SIST KRČA DATE
INF-SIST BAJA MARTIN
INF-SIST BAJA DATE
SIST-ANAL VLADAN DEMARCO
SIST-ANAL VLADAN SARSON

U obliku intenzije relacija PROGRAM se može napisati kao


PROGRAM(PREDMET, NASTAVNIK, KNJIGA)

Relacija PROGRAM je očigledno u BCNF. Međutim, redundansa podataka je


očigledna, pa samim tim postoje i anomalije u ažuriranju. Na primer, ubacivanje
informacije da se za predmet INF-SIST koristi i knjiga ULLMAN, zahtevalo bi
ubacivanje tri nove n-torke, po jednu za svakog nastavnika koji predaje taj
predmet.

Očigledno je da relaciju PROGRAM treba dekomponovati na projekcije


RASP(PREDMET, NASTAVNIK) i UDŽBENIK(PREDMET, KNJIGA)

RASP UDŽBENIK
PREDMET NASTAVNIK PREDMET KNJIGA
INF-SIST BRANKO INF-SIST MARTIN
INF-SIST KRČA INF-SIST DATE
INF-SIST BAJA SIST-ANAL DEMARCO
SIST-ANAL VLADAN SIST-ANAL SARSON

Dekompozicija je bez gubljenja informacija. Međutim, ona nije izvedena na bazi


dosada datih pravila, relacija PROGRAM je u BCNF, u njoj ne postoji ni jedna
netrivijalna funkcionalna zavisnost. Veze koje postoje između atributa ove relacije
nazivaju se višeznačnim vezama.

U relaciji R(A, B, C) postoji višeznačna zavisnost A ->-> B ako za datu vrednost A,


postoji skup od nula, jedne ili više vrednosti B, a taj skup vrednosti ni na koji
način ne zavisi od vrednosti atributa C. Atributi A, B i C mogu biti složeni.

Formalnija definicija višeznačnih zavisnosti može se dati na sledeći način:


U relaciji R(A,B,C) postoji višeznačna zavisnost A ->-> B ako i samo ako kad god
u njoj postoje n-torke <a,b,c> i <a,b',c'>, postoje takođe i n-torke <a,b,c'> i
<a,b',c>. Atributi A, B i C mogu biti složeni.

www.puskice.co.yu 76
www.puskice.co.yu

Iz definicije višeznačne zavisnosti očigledno je da ako u relaciji R(A,B,C) postoji


višeznačna zavisnost A ->-> B, tada pastoji i višeznačna zavisnost A ->-> C. Isto
tako je očigledno da se višeznačna zavisnost može definisati u relaciji koja ima
najmanje tri atributa.

U navedenom primeru relacije PROGRAM postoje sledeće višeznačne zavisnosti:


PREDMET -->--> NASTAVNIK i PREDMET -->--> KNJIGA

Svaka funkcionalna zavisnost je istovremeno i višeznačna zavisnost, odnosno,


funkcionalne zavisnosti su specijalan slučaj višeznačne zavisnosti u kome skup
vrednosti B za dati skup vrednosti A ima tačno jednu vrednost. Razlika između
višeznačne i funkcionalne zavisnosti može se shvatiti i na sledeći način:
 Funkcionalna zavisnost A --> B zabranjuje postojanje nekih n-torki u relaciji.
Naime, ne mogu postojati n-torke sa istom vrednošću A, a različitim
vrednostima B.
 Višeznačna zavisnost A ->-> B zahteva postojanje nekih n-torki, kao što se
to iz definicije i vidi. Zbog toga se ona ponekad naziva i "zavisnost
generisanja n-torki" /Korth 86/.

Očigledno je da "prave" višeznačne zavisnosti (višeznačne zavisnosti koje nisu


funkcionalne) dovode do anomalija u održavanju BP. Definicija Četvrte normalne
forme zabranjuje postojanje ovakvih zavisnosti u relaciji /Date 86/.

Relacija R je u Četvrtoj normalnoj formi (4NF) ako i samo ako kad god postoji
višeznačna funkcionalna zavisnost, na primer A ->-> B, tada svi atributi relacije
moraju takođe biti funkcionalno zavisni od A.

Gornja definicija u osnovi kaže da u relaciji u 4NF sve funkcionalne i višeznačne


zavisnosti moraju biti funkcionalne zavisnosti atributa od ključa. Ili, drugim
rečima, relacija je u 4NF ako je u BCNF i ako su sve višeznačne zavisnosti
funkcionalne zavisnost od primarnog ključa.

Može se dati i sledeća definicija 4NF /Ull 88/:

Relacija R je u 4NF ako kad god postoji višeznačna zavisnost A ->-> B, gde B nije
prazno i nije podskup od A i ako A  B ne uključuje sve atribute iz R, A
predstavlja nadključ relacije R.

Za praktičnu primenu može se dati i sledeća, neformalna i nedovoljno precizna


definicija 4NF:

Relacija R je u 4NF ako u njoj nisu date dve (ili više) nezavisne višeznačne
činjenice.

Relacija PROGRAM nije u 4NF, jer u njoj postoje dve nezavisne višeznačne
činjenice (jedan predmet predaje jedan nastavnik, za jedan pedmet se koristi
više knjiga, a ne postoji nikakva veza predmeta i knjiga), ili, formalno, jer u njoj
postoji višeznačna zavisnost PREDMET ->-> NASTAVNIK, a zavisnosti (PREDMET,
NASTAVNIK) i (PREDMET, KNJIGA) nisu funkcionalne, odnosno atribut PREDMET
nije nadključ relacije. Relacije RASPORED i UDŽBENIK su u 4NF jer u njima ne
postoje višeznačne zavisnosti samim tim što su obe binarne relacije, odnosno obe
sadrže samo po jednu višeznačnu činjenicu.

www.puskice.co.yu 77
www.puskice.co.yu

Kako su višeznačne zavisnosti uopštenje funkcionalnih zavisnosti, svaka relacija


koja je u 4NF je istovremeno i u BCNF. Obrnuto ne važi.

Svođenje relacija u kojima postoje višeznačne zavisnosti na 4NF vrši se


dekompozicijom ovih relacija bez gubljenja informacija. Fagin je dao uopštenje
Heat-ove teoreme o dekompoziciji bez gubljenja informacija:

Relacija R(A, B, C) može se bez gubljenja informacija dekomponovati na


projekcije R1(A, B) i R2(A, C) ako i samo ako važi A ->-> B (što uključuje i A ->->
C).

3.8. Zavisnosti spajanja i Peta normalna forma (5NF)

Rečeno je da su višeznačne zavisnosti uopštenje funkcionalnih zavisnosti koje


omogućuju predstavljanje semantički složenijih koncepata u modelu. Postoji još
opštija forma zavisnosti, tzv. "zavisnost spajanja" (join dependency) koja u sebi
obuhvata višeznačne, pa samim tim i funkcionalne zavisnosti. Ilustrovaćemo je
na istom primeru odnosa PREDMET, NASTAVNIK, KNJIGA, ali, sada, sa nešto
izmenjenom semantikom.

Ranije smo pretpostavljali da u relaciji PROGRAM ne postoji nikakva veza između


atributa NASTAVNIK i KNJIGA. Pretpostavimo sada da ova veza postoji, da jedan
nastavnik može da koristi nula, jednu ili više knjiga i da se zna koji nastavnik
koristi koje knjige (BRANKO koristi samo knjigu DATE, BAJA samo MARTIN a KRČA i
VLADAN obe). Ekstenzija relacije PROGRAM u tom slučaju bi bila:
PREDMET NASTAVNIK KNJIGA
INF-SIST BRANKO DATE
INF-SIST KRČA MARTIN
INF-SIST KRČA DATE
INF-SIST BAJA MARTIN
SIST-ANAL VLADAN DEMARCO
SIST-ANAL VLADAN SARSON

(ne postoje više n-torke <INF-SIST,BRANKO,MARTIN> i <INF-SIST,BAJA,DATE>)

Relacija PROGRAM i sad ima isti oblik intenzije


PROGRAM(PREDMET, NASTAVNIK, KNJIGA)

ali sada jeste u 4NF, jer u njoj ne postoje višeznačne zavisnosti (Jedan PREDMET
predaje više NASTAVNIKA, za jedan PREDMET se koristi više KNJIGA, ali sada
KNJIGE zavise od NASTAVNIKA). Međutim, redundansa podataka i anomalije u
ažuriranju i dalje postoje. Da bi se izbegla redundansa i istovremeno sačuvala
nova semantika relacije PROGRAM očigledno je da je treba dekomponovati, bez
gubljenja informacija, u sledeće tri projekcije:

RASP(PREDMET, NASTAVNIK)
UDŽBENIK(PREDMET, KNJIGA)
NAST-KNJ(NASTAVNIK, KNJIGA)

PREDMET NASTAVNIK PREDMET KNJIGA


www.puskice.co.yu 78
www.puskice.co.yu

INF-SIST BRANKO INF-SIST MARTIN


INF-SIST KRČA INF-SIST DATE
INF-SIST BAJA SIST-ANAL DEMARCO
SIST-ANAL VLADAN SIST-ANAL SARSON

NASTAVNIK KNJIGA
BRANKO DATE
KRČA DATE
KRČA MARTIN
BAJA MARTIN
VLADAN SARSON
VLADAN DEMARCO

Specifična vrsta zavisnosti koja postoji u novoj verziji relacije PROGRAM se naziva
zavisnost spajanja. Kažemo da su u relaciji PROGRAM atributi PREDMET,
NASTAVNIK, KNJIGA vezani preko zavisnosti spajanja.

U relaciji R(X, Y, ..., Z) postoji zavisnost spajanja ako i samo ako relacija R
rezultuje iz prirodnog spajanja njenih projekcija po X,Y, ..., Z, gde su X,Y, ..., Z
podskupovi atributa relacije R.

Relacija R je u Petoj normalnoj formi ako i samo ako se svaka zavisnost spajanja
može pripisati kandidatu za ključ.

Relacija PROGRAM se može rekonstruisati iz njenih projekcija prirodnim


spajanjem relacija NAST-KNJ i UDŽBENIK po atributu KNJIGA, a zatim prirodnim
spajanjem tako dobijenog rezultata sa relacijom RASP po atributu NASTAVNIK.
Kako atributi spajanja KNJIGA i NASTAVNIK nisu i kandidati za ključ relacijije
PROGRAM ona nije u 5NF.

Praktična, neformalna definicija 5NF može da bude:

Relacija je u 5NF onda kad se njen informacioni sadržaj ne može rekonstruisati iz


relacija nižeg stepena, s tim što se slučaj relacija nižeg stepena sa istim kjučem
isključuje.

Kako je višeznačna zavisnost specijalan slučaj zavisnosti spajanja, ako je relacija


u 5NF ona je sigurno i u 4NF, pa samim tim i u svim ostalim. Obrnuto ne važi.

5NF se često naziva i "projekcija-spajanje normalna forma".

Pokažimo na primeru relacije STUDENT1 da se definicija 5NF može primeniti i na


relaciju u kojoj postoje samo funkcionalne zavisnosti (koje su poseban slučaj
zavisnosti spajanja).
STUDENT1 (BI, IME, SEM, ŠSMER, IMERUK)

Relacija STUDENT1 se može rekonstruisati iz njenih projekcija


STUDENT2(BI, IME, SEM, ŠSMER) i SMER (ŠSMER, IMERUK)
njihovim prirodnim spajanjem po atributu ŠSMER koji nije kandidat za ključ
relacije STUDENT1, pa ova relacija nije u 5NF. Međutim relacije STUDENT2 i SMER
su u 5NF, SMER zbog toga što je binarna relacija, a STUDENT2 zbog toga što se,
bez gubljenja informacija može dekomponovati samo na projekcije P1(BI, IME),
www.puskice.co.yu 79
www.puskice.co.yu

P2(BI, SEM) i P3(BI, ŠSMER) iz kojih se ona može rekonstruisati prirodnim


spajanjem preko BI koji je njen ključ (zavisnosti spajanja se mogu pripisati samo
ključu relacije).

3.9. Normalna forma ključeva i domena

Normalne forme su istorijski postepeno uvođene u teoriju relacionih baza


podataka, počev od prve tri koje je definisao Codd, 1972. godine, preko Boyce-
Godd-ove, 4NF u kojoj su funkcionalne zavisnosti uopštene u višeznačne do 5NF u
kojoj su višeznačne zavisnosti uopštene u zavisnosti spajanja. Postavilo se pitanje
postoje li dalja uopštenja zavisnosti atributa u relacijama i da li se može definisati
neka nova (šesta, sedma, ...) normalna forma. R.Fagin je 1981. dao najopštiju
definiciju normalne forme ključeva i domena (DK/NF) i pokazao je da relacija koja
je u DK/NF ne prouzrokuje anomalije u održavanju, i obrnuto, da se relacija, koja
ne prouzrokuje anomalije u ažuriranju, nalazi u DK/NF. Time je isključio potrebu
za definisanjem novih normalnih formi. Međutim, koje se relacije mogu svesti na
DK/NF i koji je opšti postupak tog svođenja, još je uvek otvoreno pitanje.

Relacija je u DK/NF ako je svako ograničenje na vrednosti njenih atributa


posledica definicije ključeva i domena.

Ilustrujmo primenu ove definicije na nekoliko primera:


(1) Relacija STUDENT1 nije u DK/NF zato što je u njoj definisano ograničenje da
jedan smer ima jednog rukovodioca (funkcionalna zavisnost ŠSMER --> IMERUK),
a to nije posledica definicije ključa ove relacije niti nekog njenog domena.
(2) Relacija PRIJAVA nije u DK/NF zato što je u njoj definisano ograničenje da
jedan predmet ima jedan naziv (funkcionalna zavisnost ŠPRED --> NAZPRED), a
to nije posledica definicije ključa ove relacije (BI, ŠPRED).

(3) Relacija PROGRAM nije u DK/NF jer zavisnost spajanja koja u njoj postoji nije
posledica definicije ključa ove relacije.

Ako je relacija u DK/NF ona je sigurno u svim ostalim. Međutim, direktna primena
ove definicije praktično nije moguća, jer otkrivanje "ograničenja" u relacijama
zahteva, u osnovi, otkrivanje funkcionalnih, višeznačni i zavisnosti spajanja, a to
praktično znači primenu svih navedenih definicija.

3.10. Primena normalizacije u projektovanju baze podataka

Projektovanju logičke strukture baze podataka, na osnovu teorije normalizacije,


može se pristupiti na dva načina:
(1) Analiza relacija. Polazi se od nekog skupa nenormalizovanih relacija, svaka
relacija ovoga skupa se dekompozicijom bez gubljenja informacija, svodi na neku
od normalnih formi, a zatim se vrši "konsolidacija relacija", integrisanjem onih
relacija, iz tako dobijenog skupa, koje imaju isti ključ.
(2) Sinteza relacija. Baza podataka se tretira kao skup podataka i njihovih
međusobnih veza. Polazi se od skupa tih podataka (atributa) i definisanih

www.puskice.co.yu 80
www.puskice.co.yu

zavisnosti između njih (funkcionalne, višeznačne, zavisnosti spajanja) i primenom


teorije ovih zavisnosti direktno sintetizuju relacije u nekoj od normalnih formi.

3.10.1. Analiza relacija

Polazni skup nenormalizovanih relacija, koji se u daljem postupku normalizuje, a


zatim "konsoliduje", dobija se kao rezultat "specifikacije zahteva", faze u
projektovanju IS koja prethodi fazi projektovanja BP. Naime, proces razvoja IS
obično se prikazuje preko tzv. "životnog ciklusa" IS koji se sastoji iz sledećih faza:
(1 ) Planiranje razvoja IS;
(2) Analiza i specifikacija zahteva korisnika;
(3) Projektovanje baze podataka i programa;
(4) Implementacija sistema;
(5) Održavanje.

Rezultat prve faze treba da bude dugoročni plan razvoja IS u kome se specificira
opšta arhitektura IS, njegovi osnovni podsistemi, definišu prioriteti razvoja i
analiziraju troškovi i koristi od uvođenja IS. U drugoj fazi se, primenom neke
metode sistemske analize, detaljno analiziraju zahtevi korisnika. Rezultat ove
faze treba da bude potpuna, jasna i neprotivrečna specifikacija zahteva koja je
osnova za projektovanje i evaluaciju projekta IS. Postoje mnoge metode
sistemske analize. Pregled ovih metoda se može naći u /Laz 86/. Ovde će se
ukratko, sa ciljem da se postupak logičkog projektovanja baze podataka
sveobuhvatno izloži, prikazati najpoznatija od njih, metoda Strukturne sistemske
analize (SSA) /DeMarco 78, Gane 79/.

3.10.1.1. Strukturna sistemska analiza (SSA)

Pomoću SSA, postojeći IS i novi zahtevi korisnika se analiziraju preko procesa


(funkcija) koji se odvijaju u realnom sistemu. Osnovni kocepti metode SSA su
prikazani na Slici 3. Svaki proces obrade podataka iniciran je nekim ulaznim
tokom podataka, obavlja se na osnovu jasno specificirane logike obrade,
korišćenjem podataka iz ulaznog toka i nekog skladišta podataka, a rezultat
obrade je izlazni tok podataka i/ili ažurirani podaci u skladištu podataka. Objekti
u okolini IS sa kojima IS komunicira preko ulaznih i izlaznih tokova nazivaju se
interfejsi. Dijagrami na kojima se specificiraju procesi, tokovi podataka, skladišta
i interfejsi nazivaju se dijagrami tokova podataka (DTP).

TOK TOK
INTERFEJS PROCES INTERFEJS

TOK

SKLADI[TE

Slika 3. Koncepti SSA i njihove oznake

Osnovni problem u opisu (specifikaciji) IS je njihova složenost. Jednostavni


koncepti SSA se direktno i lako primenjuju na jednostavne IS. U opisu složenih
www.puskice.co.yu 81
www.puskice.co.yu

sistema treba razrešiti dilemu kako takav sistem istovremeno i jasno i detaljno
opisati. Ako bi se složeni sistem detaljno opisao jednim DTP, dobio bi se veoma
složen i nejasan DTP. Jasan opis funkcionisanja sistema ne bi prikazao mnoge
bitne detalje.

Problem istovremeno jasnog i detaljnog opisa metoda SSA rešava hijerarhijskom


dekompozicijom sistema. Naime, na najvišem nivou sistem se opisuje jednim
jednostavnim DTP, u kome se predstavljaju samo osnovni (agregirani) procesi.
(Ponekad se na tom nivou ceo IS tretira kao jedan proces). Taj najopštiji DTP se
naziva dijagram konteksta. Dijagrami se postepeno dekomponuju na taj način što
se jedan proces, na dijagramu višeg nivoa, predstavlja novim DTP na sledećem
nižem nivou. Procesi na DTP na najnižem nivou, koji se dalje ne dekomponuju se
nazivaju primitivni procesi.

Postoji čitav skup pravila i preporuka za dekompoziciju DTP. Navešćemo samo


neka, osnovna:
 Svaki DTP treba da bude dovoljno informativan i jednostavan. Primenjuje se
pravilo da na svakom DTP bude predstavljeno 5  2 procesa.
 Pravilo bilansa tokova podataka. Neto ulazni i neto izlazni tokovi u jedan
proces na DTP-u višeg nivoa moraju biti jednaki neto ulazima i neto izlazima
za celokupan odgovarajući DTP na nižem nivou. Ovo pravilo se naziva i
"pravilo održanja tokova podataka".
 Pošto je stanje sistema inherentna karakteristika sistema, na nižim nivoima
se mogu javljati nova skladišta podataka koja nisu bila prikazana na
odgovarajućem višem nivou.
 Logika procesa na višim nivoima se prikazuje samom dekompozicijom
procesa u DTP na nižem nivou. Logiku primitivnih procesa je neophodno
specificirati nekim od poznatih sredstava za opis logike obrade podataka
(pseudokod, tabele odlučivanja, stabla odlučivanja, Nassi-Schneirdeman-ovi
dijagrami).
 Dekompozicija se vrši do onog nivoa na kome je logiku svih procesa moguće
relativno lako opisati nekim sredstvom za opisivanje logike (na primer sa
jednom stranicom pseudokoda).

Na osnovu svega rečenog, specifikacija IS metodom SSA sastoji se od:


(1) Skupa hijerarhijski dekomponovanih dijagrama tokova podataka.
(2) Opisa logike obrade podataka za svaki primitivni proces.
(3) Rečnika podataka sa opisom sadržaja i strukture svakog toka i skladišta
podataka.

Za opisivanje strukture skladišta i tokova podataka koriste se sledeće oznake:


= ekvivalencija struktura,
+ povezivanje elemenata u sekvenciju,
 iteracija, odnosno višestruko ponavljanje strukture u zagradi u odnosu
na ostale elemente strukture,
 selekcija, selektuje se jedna od struktura navedena u zagradi i
() struktura u zagradi je opciona.

Na Slikama 4 i 5 prikazani su DTP za Studentski informacioni sistem. Slika 4


predstavlja dijagram konteksta. Pretpostavlja se da su procesi OBRISP i IZDAV-
UVEREN dovoljno jednostavni, pa se dalje ne dekomponuju, već se tretiraju kao
www.puskice.co.yu 82
www.puskice.co.yu

primitivni procesi. Dekompozicija procesa UPIS prikazana je sa DTP na Slici 4.


Opis logike primitivnih procesa se ne daje, jer nije od značaja za projektovanje
logičke strukture BP.

IZVPRISP GRUPE

1.
UPISDOK REZPRIS
STUDENT NASTAVNIK
UPIS

PRIJAVA

ISPIITREZ 2.

OBRISP
DATSTUD
ISPSPISAK
REZISPITA

UVERENJA
3.
IZDAV
ZAHTEVI UVEREN

Slika 4. Dijagram konteksta za Studentski IS

DATPREDM
IZVPRISP

SVEDO^AN 1.1. REZPRIS


STUDENT NASTAVNIK
PRISPIT

DATNASTAV
DATPRISP
GRUPE

1.4.
1.2. RASPOR
SVOBRAZ UPIS

DATSTUD

INDEKS 1.3.
OVERA
SEMEST

www.puskice.co.yu 83
www.puskice.co.yu

Slika 5. DTP za prvi nivo dekompozicije procesa UPIS

Sadržaj rečnika podataka je sledeći:

UPISDOK = SVEDOČAN, SVOBRAZ, INDEKS


IZVPRISP = REDBR + IME + BROJPOENA
REZPRIS = ŠPRED + NAZPRED + REDBR + IME + OCENA + IMENAST
GRUPE = ŠPRED + NAZPRED + ŠNAST + IMENAST + BRGRUPE + BI + IME
+ VREME + SALA
PRIJAVA = BI + IME + ŠPRED + NAZPRED + ROK + DATUM
ISPITREZ = BI + IME + ROK + ŠPRED + NAZPRED + OCENA
ISPSPISAK = ŠPRED + NAZPRED + ROK + DATISP + BI + IME
REZISPITA = ŠPRED + NAZPRED + ROK + BI + IME + OCENA + ŠNAST
+ IMENAST + DATISPT
UVERENJA = UVER-RED-STUD, UVERISP
ZAHTEVI = tekst
UVER-RED-STUD = BI + IME + standardni tekst
UVERISP = BI + IME + ŠPRED + NAZPRED + MAXOCEN + PROCEN
SVEDOČAN = IME + GODINA + PROSOČENA
ŠVOBRAZ = BI + IME + STAROST + SEM + ŠSMER + NAZSMER
INDEKS = BI + IME + SEM + DATOVERE + ŠPRED + NAZPRED +IMENAST
+ ŠPRED + NAZPRED + OCENA + DATISPT

Pored sadržaja i strukture tokova i skladišta, u Rečniku podataka SSA daju se i


definicije svakog elementarnog podatka, po, približno sledećoj strukturi:

NAZIV-POD DRUGI-NAZIV DOMEN OGRANIČENJE NAPOMENA


BI Broj indeksa C10 - -
MAXOCEN - I2 5-10 Pretpostavlja se da
student više puta
polaže isti ispit.
MAXOCEN je najveća
PROCEN D5.2 5-10 ocena koju je dobio.
Prosečna ocena
sračunata na osnovu
MAXOCEN.

U gornjoj tabeli definisan je podatak BI kao primer i data su objašnjenja za


značenje podataka MAXOCEN i PROCEN. Značenje ostalih podataka je očigledno,
a domeni i ograničenja nisu od interesa za projektovanje logičke strukture BP.

Sadržaj i sruktura skladišta podataka se ne daje. Naime, pretpostavlja se da su


svi podaci u skladištima "doneseni" odgovarajućim tokovima podataka, pa su sve
informacije o sadržaju i strukturi podataka već date opisom tokova. Međutim, to,
generalno, ne mora da bude slučaj, jer neko skladište može da bude formirano
nekim procesom, odnosno tokom podataka koji nije obuhvaćen tekućim
projektom. Zbog toga, za projektovanje logičke strukture BP treba definisati
sadržaj i strukturu i tokova i skladišta.

www.puskice.co.yu 84
www.puskice.co.yu

Pretpostavlja se da podaci iz INDEKSA, ZAHTEVA i UVER-RED-STUD neće biti


čuvani u BP. Isto tako podaci za prijemni ispit (DATPRISP) se samo privremeno
čuvaju, pa taj deo sistema neće biti predmet projektovanja baze podataka.

U postupku logičkog projektovanja primenom normalizacije, sve strukture


podataka prikazane u rečniku podataka se tretiraju kao nenormalizovane relacije,
pa se, prvo svaka od njih svede na odgovarajuću normalnu formu, a zatim se
izvrši konsolidacija tako dobijenog modela, spajanjem relacija sa istim ključem.

(A) NORMALIZACIJA

(1) U relaciji PRIJAVA postoje sledeće funkcionalne zavisnosti:


BI, ŠPRED, ROK ----> NAZPRED, IME, DATUM
BI ----> IME
ŠPRED ----> NAZPRED
Relacija nije u 2NF i dekomponuje se na:
PRIJAVA1(BI, ŠPRED, ROK, DATUM) (1)
STUDENT1 (BI, IME) (2)
PREDMET1(ŠPRED, NAZPRED) (3)

(2) Relacija GRUPE nije u 1NF. U njoj postoje sledeće FZ:


ŠPRED, BRGRUPE, BI ----> IME, ŠNAST. IMENAST, VREME, SALA. NAZPRED
ŠPRED, BRGRUPE ----> VREME, SALA, ŠNAST, IMENAST, NAZPRED
BI ----> IME
ŠPRED ----> NAZPRED
ŠNAST ----> IMENAST
ŠPRED, BI ----> BRGRUPE
Na osnovu ovih FZ relacija GRUPE se dekomponuje u relacije:
GRUPE1(ŠPRED, BRGRUPE, BI) (4)
NASTGRUP(ŠPRED, BRGRUPE, ŠNAST, VREME, SALA) (5)
NASTAVNIK1(ŠNAST, IMENAST) (6)
i ranije definisane relacije STUDENT1 i PREDMET1

(3) Relacija ISPITREZ nije u 1NF. U njoj postoje sledeće FZ:


BI, ŠPRED, ROK ----> OCENA, IME, NAZPRED
BI ----> IME
ŠPRED ----> NAZPRED
Dekomponuje se u relaciju
ISPITREZ1(BI, ŠPRED, ROK, OCENA) (7)
i ranije definisane relacije STUDENT1 i PREDMET1

(4) Relacija ISPSPISAK nije u 1NF. U njoj postoje sledeće FZ:


BI, ŠPRED, ROK ----> DATISP, NAZPRED, IME
BI ----> IME
ŠPRED ----> NAZPRED
ŠPRED, ROK ----> DATISPT
Dekomponuje se u relacije:
ISPSPISAK(BI, ŠPRED, ROK) (8)
RASPOREDISP(ŠPRED, ROK, DATISPT) (9)
i dve ranije definisane relacije STUDENT1, PREDMET1.

www.puskice.co.yu 85
www.puskice.co.yu

(5) Relacija REZISPITA nije u 1NF. U njoj postoje sledeće FZ:


BI, ŠPRED, ROK ----> NAZPRED, BI, IME, OCENA, ŠNAST, IMENAST, DATISPT
ŠPRED, ROK ----> ŠNAST, IMENAST, DATISPT
BI ----> IME
ŠPRED ----> NAZPRED
ŠNAST ----> IMENAST
Na osnovu ovih FZ relacija REZISPITA se dekomponuje u:
REZISPIT1(BI, ŠPRED, ROK, OCENA) (10)
ISPITIVAČ(ŠPRED, ROK, ŠNAST, DATISPT) (11)
i ranije definfsane relacije STUDENT1, PREDMET1 i NASTAVNIK1.

(6) Relacija UVERISP nije u 1NF. U njoj postoje FZ:


BI, ŠPRED ----> MAXOCENA, PROCENA, IME, NAZPRED
BI ----> IME
ŠPRED ----> NAZPRED
Dekomponuje se u relaciju
UVER1(BI, ŠPRED, MAXOCENA, PROCENA) (12)
i ranije definisane relacije STUDENT1 i PREDMET1.

(7) U relaciji ŠVOBRAZ postoje sledeće FZ:


BI ----> IME, STAROST, SEM, ŠSMER, NAZSMER
ŠSMER ----> NAZSMER
Dekomponuje se u relacije
STUDENT2(BI, IME, STAROST, SEM, ŠSMER) (13)
SMER(ŠSMER, NAZSMER) (14)

KONSOLIDACIJA RELACIJA

Spajaju se sledeće relacije:


(2) i ( 13) po zajedničkom ključu BI u relaciju STUDENT
(1), (7), (8) i (10) po zajedničkom ključu BI, ŠPRED, ROK u relaciju STUDISP

(9) i (11) po zajedničkom ključu ŠPRED, ROK u relaciju RASPISP.

Ostale relacije ostaju neizmenjene, pa se dobija sledeći konačni model:


STUDENT(BI, IME, STAROST, SEM, ŠSMER)
PREDMET(ŠPRED, NAZPRED)
NASTAVNIK(ŠNAST, IMENAST)
SMER(ŠSMER, NAZSMER)
NASTGRUPE(ŠPRED, BRGRUPE, ŠNAST, VREME, SALA)
GRUPE(ŠPRED, BRGRUPE, BI )
RASPISPIT(ŠPRED, ROK, DATISP, ŠNAST)
STUDISPIT(BI, ŠPRED, ROK, DATUM, OCENA)

Analizom relacija pre konsolidacije može se utvrditi koje su relacije, ili atributi u
relaciji izvedeni. Takve relacije, odnosno atributi se, po pravilu, ne čuvaju u BP
već se izvode u procesu izveštavanja ili se realizuju kao pogled (view). Na primer,
relacija UVER1 se može izvesti iz relacije STUDISPIT kao sledeći pogled:

www.puskice.co.yu 86
www.puskice.co.yu

CREATE VIEW UVER1


AS SELECT BI, ŠPRED, ROK, OCENA
FROM STUDISPIT
WHERE BI, OCENA IN (SELECT BI, MAX(OCENA)
FROM STUDISPIT
GROUP BY BI);

Spajanjem relacija u postupku konsolidacije mogu se kreirati relacije sa nula


vrednostima (kao neprimenljivim svojstvom). Na primer, u relaciji STUDISPIT,
koja u sebi obuhvata i nepopunjene prijave i spiskove pre ispita i popunjene
prijave i spiskove posle ispita, posle prijavljivanja, a pre polaganja nekog ispita
atribut OCENA, za te n-torke, će imati nula vrednost. Zato bi, možda, bilo bolje
umesto relacije STUDISPIT kreirati dve relacije

PRIJAVISPIT(BI, ŠPRED, ROK, DATUM)


POLISPIT(BI, ŠPRED, ROK, OCENA)

3.10.2. Grafička metoda sinteze relacija

Svaki tok ili skladište podataka može se predstaviti grafom čiji čvorovi
elementarni podaci ili grupe (prosti ili složeni atributi), a linije grafa definišu veze
i vrste veza između njih. Svaka veza V između dva čvora (dva podatka), na
primer A i B definiše dva preslikavanja (asocijacije):

V: A ___> B i
V-1: B ___> A

Kardinalnosti ovih preslikavanja su bitna semantička ograničenja modela


podataka. Kardinalnost preslikavanja P: X ___> Y je broj elemenata skupa Y koji se
mogu pridružiti jednom elementu skupa X. Od posebnog su interesa donja i
gornja granica kardinalnosti svakog preslikavanja. S obzirom na vrednosti donje i
gornje granice kardinalnosti preslikavanja (DG, GG) definišu se sledeće vrste
preslikavanja (asocijacija):

(1) Prosta asocijacija (sinonimi su: asocijacija tipa 1, totalna funkcija,


preslikavanje na): jednom elementu skupa X odgovara tačno jedan elemenat
skupa Y, (DG=1, GG=1). Za proste asocijacije koristićemo sledeću grafičku
oznaku
X -----> Y

(2) Uslovna asocijacija (sinonimi su: asocijacija tipa C, parcijalna funkcija,


preslikavanje u): jednom elementu skupa X odgovara jedan ili nijedan elemenat
skupa Y, (DG=0, GG=1). Za uslovne asocijacije koristićemo sledeću grafičku
oznaku:
X ---o-> Y

(3) Slovna uslovna asocijacija (sinonimi su asocijacija tipa M, opšta relacija,


parcijalna višeznačna funkcija): jednom elementu skupa X odgovara nula, jedan
ili više elemenata skupa Y, (DG=0,GG=M). Koristi se sledeća grafička oznaka:
X ----o->> Y

www.puskice.co.yu 87
www.puskice.co.yu

(4) Složena totalna asocijacija (sinonimi su: asocijacija tipa T, totalna


višeznačna funkcija): jednom elementu skupa X odgovara jedan ili više
elemenata skupa Y, (DG=1,GG=M). Koristi se sledeća grafička oznaka:
X ------>> Y

(Ne treba pomešati pojam složene asocijacije sa višeznačnom zavisnošću,


definisanom ranije)

Na osnovu definisanih vrsta preslikavanja možemo razlikovati sledeće vrste veza:


(1:1), (1:C), (1:M), (1:T), (C:T), (C:M), (C:C), (T:M), (T:T) i (M:M)

Primer: Posmatrajmo skupove M (muškarci), OM (oženjeni muškarci), Ž (žene) i


UŽ (udate žene).

Za vezu KLASIČAN BRAK važi:


M <-o----o-> Ž (C:C)
M <------ o-> UŽ (C:1)
OM <---------> UŽ (1:1)

Za vezu POLIGAMIJA važi:


M <-o----o->> Ž (M:C)
OM <------o->> Ž (M:1)
OM <-------->> UŽ (T:1)

Za vezu POLIANDRIJA važi:


M <<- o---o-> Ž (C:M)
M <<- o-----> UŽ (1:M)
OM <<-------> UŽ (1:T)

Za vezu GRUPNI BRAK važi:


M <<- o---o->> Ž (M:M)
OM <<-------->> UŽ (T:T)
OM <<- o----->> Ž (T:M)

Za definisanje grafičkog algoritma sinteze relacija dovoljno stroga definicija


normalne forme u kojoj relacija neće ispoljavati anomalije u ažuriranju je sledeća:

Jedine veze koje se u jednoj relaciji mogu realizovati su veze između ključa te
relacije i njenih atributa. Ove veze su tipa (1:1), (1:C), (1:T) i (1:M).

Uvedimo i pojam normalizovanog grafa modela podataka.

Normalizovani graf modela podataka je onaj graf u kome su čvorovi povezani


samo vezama tipa (1:1), (1:C), (1:T) i (1:M) i u kome nije eksplicitno prikazana
nijedna izvedena (redundantna) veza.

Da bi neki graf modela podataka sveli na normalizovani graf neophodno je


transformisati sve nedozvoljene tipove veza u dozvoljene i eliminisati sve
izvedene (redundantne) veze.

www.puskice.co.yu 88
www.puskice.co.yu

(1) Transformacija veza tipa (C:C), (C:T) i (C:M). Na Slici 6a prikazan je graf u
kome postoje veze ovih tipova. Pretpostavimo da smo ceo graf realizovali kao
jednu relaciju:
RADNIK(ŠRADN, IMERAD, POL, DATROĐ, KLASA-DAK, KLASA-VOZ, REGBR, ŠPROJ)

KLASA- KLASA-
IMERAD POL DATRO\
DAK VOZ

0
0
0

0
0 [RADN 0
0

0
REGBR 0 [PROJ
0

(a) Polazni graf

www.puskice.co.yu 89
www.puskice.co.yu

IMERAD POL DATRO\

0 [RADN 0

KLASA- KLASA-
DAK 0 [RADND 0 [RADNV 0 VOZ

REGBR-
[RADNPK 0 0 [RADNPR [PROJ
RAD

REGBR

(b) Transformisani normalizovani graf

Slika 6. Transformacija veza tipa C:C, C:T i C:M

Semantička veza na grafu je:


Jednom radniku (ŠRAD) odgovara jedno ime (IMERAD), jedan POL, jedan datum
rođenja (DATROĐ), jedna ili nijedna daktilografska klasa (KLASA-DAK), (jedna, ako
je radnik daktilograf, a nijedna, ako nije) i jedna ili nijedna vozačka klasa (KLASA-
VOZ), (jedna, ako je radnik vozač, a nijedna, ako nije), jedna ili nijedna kola
(REGBR), (jedna ako radnik parkira kola na parkiralištu, a nijedna ako ne parkira),
jedan ili nijedan projekat (ŠPROJ), (jedan ako radnik radi na nekom projektu a
nijedan ako ne radi). Isto tako, jednim kolima na parkiralištu (REGBR) odgovara
jedan ili nijedan radnik (ŠRADN), (jedan ako su to kola nekog radnika, nijedan ako
nisu). Na jednom projektu (ŠPROJ) radi barem jedan radnik. Jednom pojavljivanju
IMERAD, POL, DATROĐ, KLASA-DAK i KLASA-VOZ odgovara nijedno, jedno ili više
pojavljivanja ŠRADN.

Očigledno je, na osnovu semantike veza prikazanih na grafu, da će atributi


KLASA-DAK, KLASA-VOZ, REGBR i ŠPROJ u relaciji RADNIK imati nula vrednosti,

www.puskice.co.yu 90
www.puskice.co.yu

pošto su to neprimenljiva svojstva za sve radnike. Da bi to izbegli, transformišimo


graf na sledeći način:

Definišimo skupove:
ŠRADND - skup šifara radnika koji su daktilografi,
ŠRADNV - skup šifara radnika koji su vozači,
ŠRADNPK - skup šifara radnika koji parkiraju kola,
ŠRADNPR - skup šifara radnika koji rade na nekom projektu i
REGBRRAD - skup registarskih brojeva kola koje pripadaju radnicima.

Očigledno je da važi:
SRADND  ŠRADN; ŠRADNV  ŠRADN; ŠRADNPK  ŠRADN;
ŠRADNPR  ŠRADN; REGBRRAD  REGBR

Gornji podskupovi ne moraju da budu nepresečni. Takođe, između skupa i


podskupa uvek postoji (trivijalna) funkcionalna zavisnost. Ako definisane
podskupove prikažemo kao nove tipove podataka, veze sa asocijacijom tipa C
prema skupu postaju veze sa asocijacijom tipa 1 prema podskupu. Na slici 6b
prikazan je ovako transformisan graf, na kome su trivijalne veze predstavljene
isprekidanim linijama. (Pod pojmom trivijalne veze podrazumevaćemo veze u
kojima je jedno preslikavanje trivijalna funkcionalna zavisnost). Očigledno e da
transformisani graf predstavlja normalizovani graf i on se može realizovati
sledećim skupom relacija:
RADNIK(ŠRADN, IMERAD, POL, DATROĐ) PARKIRA(ŠRADNPK, REGBRRAD)
DAKTILOGRAF(ŠRADND, KLASA-DAK) RADIPROJ(ŠRADNPR, ŠPROJ)
VOZAČ(ŠRADNV, KLASA-VOZ) KOLA(REGBR)
PROJEKAT(ŠPROJ)

Trivijalne zavisnosti se zadovoljavaju dodatnim pravilima integriteta:


PŠRADNDDAKTILOGRAF  PŠRADNRADNIK
PŠRADNVVOZAČ  PŠRADNRADNIK
PŠRADNPKPARKIRA  PŠRADNRADNIK
PŠRADNPRRADIPROJ  PŠRADNRADNIK
PREGBRRADPARKIRA  PREGBRKOLA
PŠPROJRADIPROJ  PŠPROJPROJEKAT
(P - operator projekcije)

(U relaciji DAKTILOGRAF ne može da postoji neka ŠRADND ako taj isti podatak ne
postoji kao ŠRADN u relaciji RADNIK. Isto tako, u relaciji VOZAČ ne može da
postoji neka vrednost ŠRADNV, ako ta ista vrednost ne postoji kao ŠRADN u
relaciji RADNIK itd. Pretpostavilo se da će REGBR i ŠPROJ biti ključevi nekih
drugih relacija, pa se zbog toga tretiraju nešto drugačije od ostalih podataka.
Očigledno je takođe da je u relaciji PARKIRA atribut REGBRRAD kandidat za ključ.)

Na osnovu analize ovog primera može se iskazati sledeće pravilo za eliminisanje


veza tipa (C:C), (C:M) i (C:T):

Za tip podatka koji u vezama (C:C), (C:T) i (C:M) ima asocijaciju tipa C prema
drugom tipu podatka, definisati novi tip (podtip datog tipa podatka) koji
predstavlja onaj podskup pojavljivanja ovoga tipa koji prema drugom podatku
ima asocijaciju tipa 1. Transformisati asocijaciju tipa C u odgovarajuću trivijalnu
www.puskice.co.yu 91
www.puskice.co.yu

asocijaciju tipa prema podtipu i asocijaciju tipa 1 podtipa prema drugom tipu
podatka.

(2) Transformacija veza tipa (T:T), (T:M) i (M:M). Na Slici 7a je dat primer grafa
sa ovakvim vrstama veza. Na ovom primeru je pokazano da veze mogu biti i
petlje na grafu, odnosno da se mogu uspostavljati veze i između pojavljivanja
istog tipa podataka. Semantika ove petlje na grafu je: Jedan proizvod (ŠPRO) se
sastoji od nula, jednog ili više proizvoda (sastavnih delova koji su takođe
proizvodi), i jedan proizvod (kao sastavni deo) može da bude ugrađen u nula,
jedan ili više drugih proizvoda. Iz grafa takođe sledi da jedan kupac (ŠKUP) kupuje
jedan ili više proizvoda, a jedan proizvod može biti kupljen od nula, jednog ili više
kupaca. To znači da se u BP ne čuvaju kupci koji nisu kupili ni jedan proizvod
(potencijalni kupci), ali se čuvaju proizvodi koje niko nije kupio. Jedan proizvod je
dobavljan od jednog ili više dobavljača (ŠDOB), a jedan dobavljač dobavlja jedan
ili više proizvoda. To znači da se u bazi podataka ne čuvaju proizvodi koje niko ne
dobavlja niti "potencijalni" dobavljači.

NAZPRO

0 0

NAZDOB
0 [PRO
NAZKUP

0 [KUP 0 [DOB 0

(a) Polazni graf

www.puskice.co.yu 92
www.puskice.co.yu

[KUP, [DOB, NAZDOB


NAZKUP 0
[PRO [PRO

0 [KUP [PRO 0 [DOB 0

SASTAV

NAZPRO

[PRON,
[PROP

0
UGRADNJA

(b) Transformisani normalizovani graf

Slika 7. Transformacija veza tipa T:T, T:M i M:M

Nazovimo terminom "više" bilo asocijaciju tipa T, bilo asocijaciju tipa M. Pravilo
trnsformacije u normalizovani graf je:

Transformacija svake veze tipa "više prema više" vrši se na taj način što se data
veza pretvara u dve veze tipa "više prema 1" uvođenjem novog složenog tipa
podatka sastavljenog od tipova koji su bili u vezi "više prema više". Dve nove
veze "više prema 1" imaju trivijalnu asocijaciju tipa 1.

Normalizovani graf za dati primer prikazan je na Slici 7b. Da bi se gornje pravilo


moglo da primeni i na petlju tipa M:M definisanu na tipu podatka ŠPRO, u
odgovarajućem složenom tipu podatka koji je uveden, svakom pojavljivanju tipa
ŠPRO data je uloga koju ima u vezi: ŠPRON - šifra nadređenog proizvoda, ŠPROP -
šifra podređenog proizvoda. Isto tako, pošto između tipa podatka ŠPRO i složenog
tipa ŠPRON, ŠPROP postoje dve veze, da bi se one semantički razlikovale data su
im imena. Naime, očigledno je da između dva tipa podatka mogu, generalno,
postojati dve ili više veza. Da bi se te veze razlikovale, neophodno ih je
imenovati.

www.puskice.co.yu 93
www.puskice.co.yu

Normalizovani graf sa Slike 7b se može implementirati preko sledećeg relacionog


modela:
DOBAVLJAČ(ŠDOB, NAZDOB)
KUPAC(ŠKUP, NAZKUP)
PROIZVOD(ŠPRO, NAZPRO)
KUPUJE(ŠKUP, ŠPRO)
DOBAVLJA(ŠDOB, ŠPRO)
SASTAV(ŠPRON, ŠPROP)

Veze sa trivijalnim asocijacijama i ovde se realizuju preko dodatnih uslova


integriteta:
PŠKUPKUPUJE = PŠKUPKUPAC
PŠPROKUPUJE  PŠPROPROIZVOD
PŠDOBDOBAVLJA = PŠDOBDOBAVLJAČ
PŠPRODOBAVLJA = PŠPROPROIZVOD
PŠPRONSASTAV  PŠPROPROIZVOD
PŠPROPSASTAV  PŠPROPROIZVOD

Uslovi integriteta sa oznakom  su standardni referencijalni integriteti, na primer,


svakom pojavljivanju ŠPRO u relaciji KUPUJE mora odgovarati jedno pojavljivanje
ŠPRO u relaciji PROIZVOD. Uslove integriteta sa znakom = nazvaćemo uzajamni
integritet. Njegovo značenje je, na primer, sledeće: svakom pojavljivanju ŠPRO u
relaciji DOBAVLJA mora odgovarati jedno pojavljivanje ŠPRO u relaciji PROIZVOD i
obrnuto, svakom pojavljivanju ŠPRO u relaciji PROIZVOD mora odgovarati jedno
pojavljivanje ŠPRO u relaciji DOBAVLJA. Očigledno je da se sve relacije vezane
ovim integritetom održavaju zajedno, u jednoj atomskoj transakciji. Jer, na
primer, ne može se u relaciju DOBAVLJA ubaciti nova n-torka, ako u relaciji
PROIZVOD ne postoji n-torka sa odgovarajućom vrednosti ŠPRO, ali, i obrnuto, ne
može se u relaciju PROIZVOD ubaciti neka nova n-torka ako odgovarajuća
vrednost ŠPRO ne postoji u relaciji DOBAVLJA.

(3) Transformacija (eliminacija) tranzitivne zavisnosti. Na Slici 8 (a) i (b)


prikazana je tranzitivna zavisnost i način njenog eliminisanja. Međutim, pri
eliminisanju tranzitivne zavisnosti mora se proveriti da li je semantika dveju
redundantnih veza ista, odnosno, da li je tranzitivna zavisnost stvarna ili prividna.
Prividna tranzitivna zavisnost je prikazana na Slici 8c. Očigledno je da se ne može
eliminisati direktna veza ŠRAD ---> BR-TEL, jer bi se time dobilo da je broj
telefona radnika jednak broju telefona rukovodioca. Semantika veze se može
iskazati samo preko naziva veze. Zbog toga bi, u principu, sve veze (linije grafa)
trebalo da budu imenovane. Međutim, veze se imenuju samo onda kada
semantika nije očigledna, kada može doći do prividne tranzitivne zavisnosti, ili,
kao ranije, kada su postojale dve ili više veza između dva ista tipa podatka.

A B C

(a) Polazni graf

www.puskice.co.yu 94
www.puskice.co.yu

A B C

(b) Transformisani graf

TELRA

TELRU
[RAD [RUK BR-TEL

(c) Prividna tranzitivna zavisnost

Slika 8. Eliminisanje tranzitivne zavisnosti

(4) Transformacija (eliminacija) nepotpune funkcionalne zavisnosti. Na Slici 9 (a) i


(b) prikazan je očigledan način eliminisanja nepotpune funkcionalne zavisnosti

[DOB,
[DOB 0 0 [KUP
[KUP

NAZKUP

(a) Polazni graf

[DOB,
[DOB 0 0 [KUP
[KUP

NAZKUP

(b) Transformisani graf

Slika 9. Eliminisanje nepotpune funkcionalne zavisnosti

ALGORITAM SINTEZE RELACIJA

Pretpostavlja se da se polazi od definisanog Rečnika podataka SSA.


1. Nacrtaj graf koji odgovara prvoj stavci Rečnika SSA.
2. Ako tip asocijacije u nekoj vezi nije definisan pretpostavi tip M.
www.puskice.co.yu 95
www.puskice.co.yu

4. Izvrši transformacije (1) - (4).


3. Dobijeni graf je finalni normalizovani graf.
4. Za svaku sledeću stavku rečnika, dok postoje stavke, uradi:
4.1. Nacrtaj graf koji odgovara sledećoj stavci
4.2. Dodaj na finalni graf sve nove čvorove i linije
4.3. Ako tip asocijacije u nekoj vezi nije definisan, pretpostavi tip M.
4.3. Izvrši transformacije (1) - (4)
4.4. Dobijeni graf je finalni graf
5. Eliminisanje nepotrebne dekompozicije relacija: Ako su dva podatka A i B,
vezana vezom tipa 1:1, bira se jedan od njih, na primer A, za primarni ključ
buduće relacije, a sve veze podatka B prema drugim podacima prenose se
na podatak A. Dobijeni graf je finalni graf.
6. Prevedi finalni graf u skup relacija i skup pravila integriteta po Pravilima
prevođenja koja slede.

PRAVILA ZA PREVOĐENJE GRAFA U RELACIONI MODEL

(A) Formiranje relacija


Relacije se formiraju za:
1. Svaki podatak X (čvor grafa) sa kojim su neki drugi podaci Y, ..., Z
povezani netrivijalnom asocijacijom tipa 1. Ključ takve relacije je podatak X, a
podaci Y, ..., Z su njeni atributi.
2. Svaki podatak X (čvor grafa) koji ima isključivo trivijalne veze sa drugim
podacima na grafu. Podatak X je i ključ i jedini atribut ili jedina grupa atributa
(ako je podatak X složen) takve relacije.
3. Svaki podatak X (čvor grafa) kome nijedan drugi podatak nije pridružen
netrivijalnom asocijacijom tipa 1, koji je nekom drugom podatku pridružen
asocijacijom tipa 1 u vezi koja u inverznom pravcu ima asocijaciju tipa T. Jedini
atribut takve relacije i njen ključ je atribut X.

(B) Pravila integriteta:


Spoljni ključ relacije R je onaj atribut X te relacije koji nije ključ u relaciji R ali je
ključ u nekoj drugoj relaciji.

1. Za svaki spoljni ključ X u nekoj relaciji R1, koji je ključ u nekoj relaciji R2
definiše se jedno pravilo integriteta. Ako je, u normalizovanom grafu, asocijacija
podatka X prema podatku koji je ključ relacije R1:
(a) tipa C ili M, uslov integriteta je
PXR1  PXR2
(b) tipa T, uslov integriteta je
PXR1 = PXR2

2. Svaka trivijalna veza na grafu ostvaruje se pravilima integriteta na sledeći


način:
(a) Za trivijalnu vezu složenog podatka (X,Y), koji je postao atribut relacije
R1, prema njegovom delu X, koji je postao atribut relacije R2, ako je druga
asocijacija trivijalne veze:
(a1) tipa C ili M, uslov integriteta je
www.puskice.co.yu 96
www.puskice.co.yu

PXR1  PXR2
(a2) tipa T, uslov integriteta je
PXR1 = PXR2

(b) Za trivijalnu vezu tipa podatka X, koji je postao atribut relacije R1,
prema podtipu (podskupu) Y koji je postao atribut relacije R2, uslov integriteta je:
PYR2  PXR1

3.10.3. Sinteza relacija u 3NF na osnovu teorije funkcionalnih zavisnosti

Prethodno date definicije normalnih formi i grafički postupak sinteze relacionog


modela sa relacijama u 3NF ("kanonički model"), ukazuju na mogućnost
formalizacije postupka normalizacije relacije. Da bi se ovaj problem formalno
definisao uvedimo i sledeće definicije:

(1) Zatvaranje (zatvarač) skupa funkcionalnih zavisnosti. Zatvaranje skupa


funkcionalnih zavisnosti F je skup F+ svih funkcionalnih zavisnosti koje se mogu
logički dedukovati iz F.
(2) Prekrivanje (prekrivač) skupa funkcionalnih zavisnosti. Posmatrajmo dva
skupa funkcionalnih zavisnosti F i G. Kaže se da je skup G prekrivanje skupa F ako
je G+ = F+, tj ako su im zatvaranja ista. U tom slučaju se, kaže da su skupovi G i F
ekvivalentni.

Očigledno je da se može definisati i koncept "optimalnog prekrivanja". Kako svaki


skup funkcionalnih zavisnosti može da ima više prekrivanja, prekrivanje (jedno ili
više njih - optimalno prekrivanje ne mora da bude jednoznačno) koje zadovoljava
neki dodatni kriterijum je optimalno prekrivanje. Kriterijumi mogu biti minimalan
broj funkcionalnih zavisnosti ili minimalan broj atributa u modelu ili neki složeniji
kriterijum sa "otežavanjem" funkcionalnih zavisnosti preko težinskih faktora koji
bi uzeli u obzir i "fizičke" performanse baze podataka.

Formalno se problem projektovanja baze podataka može definisati na sledeći


način:

Za skup funkcionalnih zavisnosti definisan modelom sistema naći optimalno


prekrivanje i implementirati ga preko odgovarajućeg skupa relacija.

Da bi se ovaj zadatak rešio neophodno je prvo definisati pravila zaključivanja na


osnovu kojih se nalazi zatvaranje skupa funkcionalnih zavisnosti.

3.10.3.1. Pravila zaključivanja za skup funkcionalnih zavisnosti

Pravila zaključivanja za skup funkcionalnih zavisnosti su osobine funkcionalnih


zavisnosti na osnovu kojih iz jedne ili više funkcionalnih zavisnosti možemo
logički dedukovati neke druge. Sledeći skup osobina, koje se nazivaju Armstrong-
ove aksiome, je neprotivrečan i potpun skup pravila zaključivanja. Neprotivrečan,
u smislu da se iz njega mogu dedukovati samo važeće funkcionalne zavisnosti, a
potpun, u smislu da se na osnovu njega mogu dedukovati sve funkcionalne
zavisnosti.

www.puskice.co.yu 97
www.puskice.co.yu

Oznaka U se nadalje koristi kao oznaka za skup atributa neke relacije.


A1. REFLEKSIVNOST. Ako je Y  X  U, tada važi X -> Y. Ovo pravilo generiše
trivijalne funkcionalne zavisnosti. Trivijalna funkcionalna zavisnost kaže da svaki
podskup funkcionalno zavisi od odgovarajućeg skupa. Trivijalne funkcionalne
zavisnosti definisane su skupom atributa U neke relacije, a ne samim
funkcionalnim zavisnostima koje u relaciji važe.
A2. PROŠIRENJE. Ako važi X -> Y i ako je Z  U, tada važi i XZ -> YZ. (Oznaka XZ
je skraćena oznaka za X U Z).
A3. TRANZITIVNOST. Ako postoje funkcionalne zavisnosti X -> Y i Y -> Z, tada
postoji i X -> Z.

Iz Armstrongovih aksioma mogu se izvesti i sledeća korisna dodatna pravila


zaključivanja:
D1. ADITIVNOST (pravilo unije). Ako postoje funkcionalne zavisnosti X -> Y i X ->
Z, tada postoji i Y -> YZ
D2. PSEUDOTRANZITIVNOST. Ako postoje funkcionalne zavisnosti X -> Y i YW ->
Z, tada postoji i funkcionalna zavisnost XW -> Z.
D3. DISTRIBUTIVNOST (pravilo dekompozicije). Ako postoji funkcionalna
zavisnost X -> YZ, tada važi i X -> Y i X -> Z.

Neprotivrečnost i potpunost Armstrongovih teorema, kao i izvođenje dodatnih


pravila zaključivanja nećemo dokazivati. Dokazi se mogu naći u /Ull 88, Alag 84,
Yang 86/, gde se mogu naći i drugačije definicije Armstrongovih aksioma.

3.10.3.2. Minimalni prekrivač

Minimalni prekrivač H skupa funkcionalnih zavisnosti F možemo definisti na


sledeći način:

H je minimalni prekrivač F ako je ispunjeno sledeće:


1. Desne strane funkcionalnih zavisnosti u H su pojedinačni atributi.
2. Za svaku funkciju f: X ---> A iz F, ako je ispunjeno
F - X ---> A += F+
tada f  H.
3. Ni za jedno X ---> A iz H, za bilo koji pravi podskup Z od X (Z  X), H -
X ---> A U Z ---> A nije ekvivalentno sa H.
4. F+= H+, odnosno zatvarači skupa funkcionalnih zavisnosti i njegovog
minimalnog prekrivača su jednaki.

Uslov 1 garantuje da ni jedan atribut na desnoj strani nije redundantan. Uslov 3


garantuje da ni jedan atribut na levoj strani nije redundantan. Redundantni
atribut na levoj strani naziva se nepotrebni (extraneous) atribut i definiše se na
sledeći način:

U skupu funkcionalnih zavisnosti F atribut Xi je nepotreban, ako postoji funkcija

f: X1 , X2 , ..., Xp ---> y,
a funkcija
www.puskice.co.yu 98
www.puskice.co.yu

g: X1 , X2 , ..., Xi-1 , Xi+1 , ..., X ---> y

Eliminisanjem nepotrebnih atributa eliminišu se nepotpune funkcionalne


zavisnosti, odnosno zavisnosti od nadključeva koji nisu ključevi.

Uslov 2 eliminiše redundantne funkcionalne zavisnosti. Uslov 4 garantuje da su


sve fukcionalne zavisnosti sačuvane u minimalnom prekrivaču.

Napomenimo da nalaženje minimalnog prekrivača nije jednoznačan zadatak,


odnosno da jedan skup funkcionalnih zavisnosti ima više minimalnih prekrivača.
Na primer, iz skupa funkcionalnih zavisnosti

A ---> B, B ---> A, B ---> C, A ---> C, C ---> A


može se izbaciti bilo par B ---> A i A ---> C ili par B ---> A i B ---> C.

To znači da algoritmi, koji nalaze H na taj način što redom proveravaju da li je


svaka funkcionalna zavisnost neredundantna u H, daju rezultat koji zavisi od
redosleda ispitivanja. To je slučaj i sa sledećim Bernstein-ovim algoritmom.

3.10.3.3. Bernstein-ov algoritam za sintezu relacija

Skup relacija koje su u 3NF može se sintetizovati iz skupa funkcionalnih zavisnosti


F kroz sledeće korake:
0. Na osnovu pravila dekompozicije, (B3) svesti skup funkcionalnih zavisnosti F
na skup funkcionalnih zavisnosti F1 čije su desne strane pojedinačni atributi.
1. Eliminisanje nepotrebnih atributa. Eliminiši nepotrebne atribute iz F1 i formiraj
skup funkcionalnih zavisnosti G koji je ekvivalentan sa F1 (G+ = F1+ ).
2. Nalaženje neredundantnog prekrivača. Nađi neredundantni prekrivač H skupa
funkcionalnih zavisnosti G.
3. Podela i grupisanje. Podeli skup funkcionalnih zavisnosti u H u grupe Hk tako da
u svakoj grupi leve strane budu identične.
4. Spajanje ekvivalentnih ključeva. Za svaki par grupa Hi i Hj , sa levim stranama
X i Y spoji Hi i Hj zajedno ako postoji bijekcija X <-----> Y u H+. Za svako A  Y
izbaci X ---> A iz H. Za svako B  X izbaci Y ----> B iz H. Formiraj skup J u koji se
stavljaju zavisnosti X ---> Y i Y -- -> X za svaku bijekciju grupa.
5. Eliminisanje novodobijenih tranzitivnih zavisnosti posle koraka 4. Nađi
prekrivač H'  H tako da je (H'+ J)+ = (H + J)+ i da nijedan pravi podskup od H'
nema tu osobinu.
6. Konstruisanje relacija. Za svaku grupu Hk konstruiši jednu relaciju sa svim
atributima koji se pojavljuju u grupi. Skup atributa koji se pojavljuje na levoj
strani funkcionalnih zavisnosti u grupi je ključ relacije.

Osnovni problem u gornjem algoritmu je nalaženje minimalnog prekrivača i


njegovog zatvarača H+. Algoritam nalaženja minimalnog prekrivača skupa
funkcionalnih zavisnosti F može se realizovati tako što će se, postepeno,
eliminisati iz skupa F one funkcionalne zavisnosti fi za koje važi (F - fi)+ = F+. To
znači da se algoritam nalaženja minimalnog prekrivača svodi na algoritam
nalaženja zatvarača.
www.puskice.co.yu 99
www.puskice.co.yu

Algoritam za nalaženje zatvarača skupa funkcionalnih zavisnosti

Nalaženje zatvarača F+ skupa funkcionalnih zavisnosti F direktnom primenom


Armstrongovih aksioma je algoritam čije vreme izvršenja raste eksponencijalno
sa brojem funkcionalnih zavisnosti. Na primer, ako je
F = A --> B1 , A --> B2 , ..., A --> Bn 

tada F+ sadrži i sve zavisnosti A --> Y, gde je


Y   B1 , B2 , ..., Bn ,
a takvih podskupova ima 2n.

Zbog toga se postupa na drugi način. Uvedimo pojam zatvarača skupa atributa:

Neka je F skup funkcionalnih zavisnosti nad skupom atributa U i neka je X


podskup od U. Tada je X+, zatvarač podskupa X u odnosu na F, skup atributa A
takav da se X ---> A može dedukovati iz F pomoću Armstrongovih aksioma.

Može se dokazati sledeća lema /Ull 88/:

Neka funkcionalna zavisnost X ---> Y može se dedukovati iz F pomoću


Armstrongovih aksioma, ako i samo ako je Y  X+, a X+ je zatvarač skupa X a
odnosu na F.

Sledeći algoritam za sračunavanje zatvarača skupa atributa X u odnosu na skup


funkcionalnih zavisnosti F ima vreme izvršenja proporcionalno broju funkcionalnih
zavisnosti u F:

Ulaz: Skup atributa U, skup funkcionalnih zavisnosti F nad U i podskup X  U.

Izlaz: X+, zatvarač X u odnosu na F.

Postupak: Sračunava se niz skupova atributa X(0) , X(1) , ..., preko pravila:
1. X(0) = X
2. X(i+1) = X(i) U V, gde je V takav skup atributa A da postoji neka funkcija Y
---> Z, gde je A  Z, a Y  X(i). Kako se X(j+1) sračunava
samo na osnovu X(j) i kako je skup U konačan, postupak se
završava kada postane X(i+1) = X(i).

Primer Bernstein-ovog algoritma

Dat je skup atributa U = A, B, C, D, X1, X2


Dat je skup funkcionalnih zavisnosti
G = X1X2 ---> AD, CD ---> X1X2, AX1 ---> B, BX2 ---> C, C ---> A

Korak 0:
f1: X1X2 ---> A f5: AX1 ---> B
f2: X1X2 ---> D f6: BX2 ---> C
f3: CD ---> X1 f7: C ---> A
f4: CD ---> X2
www.puskice.co.yu 100
www.puskice.co.yu

Korak 1: Nema nepotrebnih atributa.

Korak 2: Proverava se redom da li se svaka fi može dedukovati iz tranzitivnog


zatvarača preostalih, odnosno da li je
fi  F - fi+ .
Za funkciju f1, na primer, to je ekvivalentno proveri da li je A  X1X2 u
odnosu na F - f1, koja sledi:
X(0) = X1X2
X(1) = X1X2 (zbog f2)

Prema tome X1X2 ---> A ne može se dedukovati iz (F - f1)+ pa zbog toga


pripada neredundantnom prekrivaču. Isto se može zaključiti i za
preostale fi iz F.

Korak 3: Podela i grupisanje. Vrši se grupisanje funkcionalnih zavisnosti u sledeće


grupe:
H1 = f1, f2, H2 = f3, f4, H3 = f5, H4 = f6, H5 = f7

Korak 4: Spajanje ekvivalentnih ključeva. Proverava se da li između levih strana


funkcionalnih zavisnosti nekih grupa postoji bijekcija. Bijekcija
postoji ako je N  M+, a M  N+.
Sračunajmo X1X2+ u odnosu na skup H koji je u ovom slučaju jednak
skupu F:
X(0) = X1X2
X(1) = X1X2AD (zbog f1 i f2)
X(2) = X1X2ADB (zbog f5)
X(3) = X1X2ADBC (zbog f3, f4, f5, f6)
X1X2+ = X1X2ADBC

Sračunajmo CD+ u odnosu na skup H:


X(0) = CD
X(1) = CDX1X2A (zbog f3, f4 i f7)
X(2) = CDX1X2AB (zbog f5)
X(3) = CDX1X2AB (zbog f6)
CD+ = X1X2ADBC

Prema tome postoji bijekcija X1X2 <---> CD. Zbog toga se zavisnosti
X1X2---> A, X1X2 ---> B, CD ---> X1, CD --->X2 spajaju u grupu (X1, X2,
C, D, A). U skup J treba dodati gornju bijekciju, odnosno četiri zavisnosti:
X1X2 ---> C, X1X2 ---> D, CD ---> X1 i CD ---> X2. Kako zadnje tri
već postoje u F, dodaje se samo f8: X1X2 ---> C.

Korak 5. Eliminisanje novodobijenih tranzitivnih zavisnosti. Novi skup


funkcionalnih zavisnosti H + J obuhvata zavisnosti f1 do f8. Eliminisanje
tranzitivnih zavisnosti se radi ponovo preko Koraka 2, uključujući i f8.
Prvo se ispituje da li je sada f1 redundantna. Sračunava se X1X2+ u
odnosu na H + J - f1.
X(0) = X1X2
X(1) = X1X2DC (na osnovu f2 i f8)
X(2) = X1X2DCA (na osnovu f7)
www.puskice.co.yu 101
www.puskice.co.yu

X1X2+ = X1X2DCA

Kako je A  X1X2+ funkcionalna zavisnost f1 je redundantna. Ostale


funkcionalne zavisnosti (koje bi proveravali na isti način) nisu.

Korak 6. Konstruišu se sledeće relacije:


R1(X1, X2, C, D)
R2(A, X1, B)
R3(B, X2, C)
R4(C, A)

www.puskice.co.yu 102

You might also like