Professional Documents
Culture Documents
B3DEO
B3DEO
yu
STUDENT
BI IME SEM ŠSMER IMERUK ŠPRED NAZPRED OCENA
www.puskice.co.yu 64
www.puskice.co.yu
442 FIZIKA 6
056 MARKSIZ 8
Relacija R je u Prvoj normalnoj formi (1NF) ako su sve vrednosti njenih atributa
atomske.
www.puskice.co.yu 65
www.puskice.co.yu
www.puskice.co.yu 66
www.puskice.co.yu
B C [PRED NAZPRED
BI,
A,B
[PRED
A D BI OCENA
www.puskice.co.yu 67
www.puskice.co.yu
?
A B C
www.puskice.co.yu 68
www.puskice.co.yu
PRIJAVA
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
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
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
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.
www.puskice.co.yu 70
www.puskice.co.yu
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:
Relacija R je u 2NF ako svi njeni atributi daju jednoznačne činjenice samo o celom
ključu.
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
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.
www.puskice.co.yu 72
www.puskice.co.yu
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
Determinanta relacije R je bilo koji atribut, prost ili složen, od koga neki drugi
atribut u relaciji potpuno funkcionalno zavisi.
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)
Može se dati i drugačija definicija BCNF koja koristi ranije definisani koncept
nadključa /Ull 86/.
(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).
www.puskice.co.yu 74
www.puskice.co.yu
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.
www.puskice.co.yu 75
www.puskice.co.yu
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
www.puskice.co.yu 76
www.puskice.co.yu
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.
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.
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
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)
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č.
(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.
www.puskice.co.yu 80
www.puskice.co.yu
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/.
TOK TOK
INTERFEJS PROCES INTERFEJS
TOK
SKLADI[TE
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.
IZVPRISP GRUPE
1.
UPISDOK REZPRIS
STUDENT NASTAVNIK
UPIS
PRIJAVA
ISPIITREZ 2.
OBRISP
DATSTUD
ISPSPISAK
REZISPITA
UVERENJA
3.
IZDAV
ZAHTEVI UVEREN
DATPREDM
IZVPRISP
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
www.puskice.co.yu 84
www.puskice.co.yu
(A) NORMALIZACIJA
www.puskice.co.yu 85
www.puskice.co.yu
KONSOLIDACIJA RELACIJA
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
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
www.puskice.co.yu 87
www.puskice.co.yu
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).
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
www.puskice.co.yu 89
www.puskice.co.yu
0 [RADN 0
KLASA- KLASA-
DAK 0 [RADND 0 [RADNV 0 VOZ
REGBR-
[RADNPK 0 0 [RADNPR [PROJ
RAD
REGBR
www.puskice.co.yu 90
www.puskice.co.yu
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
(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č.)
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
www.puskice.co.yu 92
www.puskice.co.yu
SASTAV
NAZPRO
[PRON,
[PROP
0
UGRADNJA
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.
www.puskice.co.yu 93
www.puskice.co.yu
A B C
www.puskice.co.yu 94
www.puskice.co.yu
A B C
TELRA
TELRU
[RAD [RUK BR-TEL
[DOB,
[DOB 0 0 [KUP
[KUP
NAZKUP
[DOB,
[DOB 0 0 [KUP
[KUP
NAZKUP
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
PXR1 PXR2
(b) tipa T, uslov integriteta je
PXR1 = PXR2
PXR1 PXR2
(a2) tipa T, uslov integriteta je
PXR1 = PXR2
(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:
PYR2 PXR1
www.puskice.co.yu 97
www.puskice.co.yu
f: X1 , X2 , ..., Xp ---> y,
a funkcija
www.puskice.co.yu 98
www.puskice.co.yu
Zbog toga se postupa na drugi način. Uvedimo pojam zatvarača skupa atributa:
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).
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
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.
X1X2+ = X1X2DCA
www.puskice.co.yu 102