Magic eDeveloper 9.4*
Funkcionalne Zavisnosti
Normalne forme (1NF, 2NF, 3NF, BCNF). Ogranienja.
Cilj:
Znati u kojoj normalnoj formi je postojea organizacija baze
podataka, odnosno
da znamo postupak izgradnje organizacije baze podataka koji
zadovoljava zahtjeve odreene normalne forme.
Koncepti: Funkcionalne Zavisnosti, Dekompozicija
Prva Normalna Forma (1NF)
Domen je atomian ako su svi elementi domena elementarne -
nedjeljive jedinice. Nizovi znakova se smatraju elementarnim
jedinicama a odnosni domeni atomini domeni
Primjeri ne-atominih domena:
Kompozitni atributi (Adresa: Ulica + Broj, NazivOsobe (Ime +
Prezime, … )
Relaciona šema R je u prvoj normalnoj formi ako su vrijednosti
domena svih atributa šeme R atomini.
Ne-atomine vrijednosti komplikuju smještanje i
pretraivanje/ekstakciju podataka i doprinose redundantom smještanju
podataka
Npr. ako se smješta kao jedan podatak skup predmeta koje predaje
nastavnik zajedno sa samim nastavnikom.
Više normalne forme u relacionim bazama podataka podrazumijevaju da
je svaka pojedina šema u prvoj normalnoj formi. U ovom razmatranju,
pretpostavljamo da su sve relacije u prvoj normalnoj firmi
7.1 Problem grupisanja podataka
*
PONAVLJANJE INFORMACIJA I ANOMALIJE AURIRANJA:
7.2 Manifestacije loše organizacije podataka.
*
7.2 Manifestacije loše organizacije podataka.
Redundancija podataka i anomalija auriranja
Podaci za naziv IdSP, NazivSP, Ciklusse ponavljaju za svakog
studenta koji je upisao odnosni studijski program
Ako student upiše više studijskih programa, ponavljaju se podaci o
imenu studenta
Negativne reperkusije:
komplikacije auriranja, mogunost nekonzistencije
Anomalije umetanja i brisanja
Vrijednost na atributima primarnog kljua ne mogu biti null !!
Pretpostavka:
ANOMALIJE UMETANJA:
Pretpostavka: PK = {JMB} ⇒ ??
*
Anomalije umetanja i brisanja
Brisanje studenata (prebacivanje u arhivsku bazu) koji su završili
studiranje na studijskom programu ⇒ Brisanje podataka o studijskom
programu (nemogunost predstave informacija) !!
Rješenje za anomalije:
*
Cilj — Sistematski, teoretski potkrijepljen pristup
Da se utvrdi i donese sud o tome da li je skup definisanih
relacionih šema u “dobroj” formi organizacije.
U sluaju da neka relaciona šema R (iz skupa) nije u “dobroj” formi
organizacije, takvu šemu dekom-ponovati u skup šema {R1, R2, ...,
Rn} tako da je
svaka dekompozicija u dobroj formi organizacije
i da je dekompozicija bez gubitka informacija (lossless-join)
Teoretski pristup se naješe bazira na:
funkcionalnim zavisnostima
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Funkcionalna zavisnost zahtijeva da vrijednost za odreeni skup
atributa odreuje jedinstveno vrijednost za drugi skup
atributa.
Koncept funkcionalne zavisnosti je generalizacija pojma klju
(key).
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
attrs(R) i attrs(R)
vrijedi na R ako i samo ako za bilo koju legalnu relaciju r (R)
vrijedi: ako dvije n-torke t1 i t2 imaju iste vrijednosti na
atributima , onda one imaju iste vrijednosti i na atributima ,
tj.
t1[] = t2 [] t1[ ] = t2 [ ]
Primjer: Posmatrajmo relaciju r(A,B) sa slijedeom instancom
r.
U ovoj instanci relacije r, ne vrijedi A B, ali vrijedi B A.
4
ETF BL 2011/12
*/35
K je superklju relacione šeme R ako i samo ako K attrs(R)
K je kandidatski klju za R, ako i samo ako
K attrs(R), i
Funkcionalne zavisnosti nam omoguavaju da specifikujemo ogranienja
koja se ne mogu predstaviti koristei superkljueve. Posmatrajmo
šemu:
STUDENT_SP (JMB, Ime, GodinaUpisa, BrojIndeksa, SemestarSP, IdSP,
NazivSP, Ciklus)
U takvoj šemi oekujemo da vrijede slijedee funkcionalne
zavisnosti:
JMB Ime
IdSP NazivSP
IdSP Ciklus
pri emu ni JMB ni IdSP nisu superkljuevi relacione šeme.
7.3 Postupci za realizaciju dobre organizacije podataka
Funkcionalne Zavisnosti (Nast.)
ETF BL 2011/12
Relaciona šema
STUDENT
PREDMET
UPISAN_NA
UPISAO
Nema
ISPIT
Funkcionalne zavisnosti koristimo za:
testiranje relacija, sa ciljem provjere da li je relacija legalna
za odreeni skup funkcionalnih zavisnosti (odnosno da li ih
zadovoljava)
Relacija r, definisana na šemi R na kojoj vrijedi skup F
funkcionalnih zavisnosti, je legalna ako r zadovoljava F.
specifikaciju ogranienja na skupu legalnih relacija
Ako odreeni skup F funkcionalnih zavisnosti vrijedi za svaku
legalnu relaciju r(R), kae se da skup F funkcionalnih zavisnosti
vrijedi na šemi R
Napomena: Specifina instanca relacione šeme moe zadovoljavati
funkcionalne zavisnosti, ak i kada funkcionalne zavisnosti ne
vrijede na svim legalnim instancima.
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Funkcionalna zavisnost je trivijalna ako je zadovoljena na svim
instancama relacije
Primjer: Šema STUDENT_SP
NazivSP, Ciklus Ciklus
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Za dati skup F funkcionalnih zavisnosti, postoje druge funkcionalne
zavisnosti koje proistiu iz F (zavisnosti koje su logiki ukljuene
zavisnostima F ).
Npr. Ako A B i B C, onda moemo zakljuiti da A C
Skup svih funkcionalnih zavisnosti, logiki ukljuenih sa F naziva se
zatvaranje skupa funkcionalnih zavisnosti F.
Zatvaranje skupa F se oznaava sa F+.
Zatvaranje F+ moe se nai primjenom Armstrong’ovih aksioma:
Ako je , onda (refleksivnost)
dosljedna (generišu samo FZ koje stvarno postoje i vrijede) i
kompletna (generišu sve funkcionalne zavisnosti koje
vrijede).
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
F = { A B
A H
dobijena na osnovu pravila transitivnosti od A B i B H
AG I
i dalje na osnovu tranzitivivnost sa CG I
CG HI
od CG H and CG I : na osnovu pravila “unije”
Pravilo unije slijedi iz:
- definicije funkcionalnih zavisnosti, ili
- proširenjem FZ CG I moe se zakljuiti da CG CGI, proširenjem FZ CG
H moe se izvesti CGI HI, i dalje primjenom tranzitivnosti CG
HI
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Cilj — Sistematski, teoretski potkrijepljen pristup
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Redundancija podataka i Anomalije (Auriranja, Umetanja,
Brisanja)
Uzroci ?
ETF BL 2011/12
JMB → Ime,
IdSP → NazivSP,
IdSP → Ciklus
Implikacija
Strukturu podataka predstavljenu jednom šemom, dekomponujemo u
dvije šeme (ili više šema)
Svi atributi originalne šeme (R) moraju se pojaviti u dekompoziciji
(R1, R2):
R = R1 R2
ETF BL 2011/12
student_cikl
stud_program
7.3 Postupci za realizaciju dobre organizacije podataka
JMB
Ime
GodinaUpisa
BrojIndeksa
SemestarSP
Ciklus
1210987100018
Jovanovi
2007
56/07
6
1
0512983100067
Markovi
2003
78/03
6
1
0607989100021
ivanovi
2009
25/09
4
1
2208988105034
Petrovi
2008
14/08
4
1
IdSP
NazivSP
Ciklus
RI
Iz dekomponovanih relacija ne moemo rekonstruisati prirodnim
spajanjem origi-nalnu relaciju,=> dekompozicija je sa gubitkom
informacija (Lossy-Join)
JMB
Ime
Godina
Upisa
Broj
Indeksa
Semestar
SP
IdSP
NazivSP
Ciklus
1210987100018
Jovanovi
2007
56/07
6
RI
Dekompozicija bez gubitka informacija (Lossless-join).
Za sve mogue legalne relacije r na šemi R treba da je
r = R1 (r) R2 (r)
Dekompozicija R u R1 i R2 je lossless join ako i samo ako vrijedi
barem jedna od slijedeih funkcionalnih zavisnosti u F+:
R1 R2 R1
R1 R2 R2
ETF BL 2011/12
Mogua dekompozicija na dva razliita naina
R1 = (A, B), R2 = (B, C)
Lossless-join dekompozicija :
Dekompozicija sa ouvanim FZ
Lossless-join dekompozicija :
Dekompozicija ne uva FZ
(ne moemo provjeriti FZ B C bez sraunavanja (R1 R2)
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Normalizacija Primjenom Funkcionalnih Zavisnosti
Kada vršimo dekompoziciju relacione šeme R na kojoj vrijedi skup
funkcionalnih zavisnosti F u R1, R2,.., Rn elimo:
Lossless-join dekompoziciju: U suprotnom bi imali gubitak
informacija.
Dekompoziciju bez redundancije podataka: Za relacije Ri je poeljno
da budu ili u Boyce-Codd Normalnoj Formi (BCNF) ili u Treoj
Normaloj Formi (3NF).
Ouvanje zavisnosti: Neka je Fi skup FZ iz F+ koji ukljuuje samo
atribute iz Ri.
Poeljno je da dekompozicija bude sa ouvanim funkcionalnim
zavisnostima, tj., (F1 F2 … Fn)+ = F+
U suprotnom, provjera da auriranja ne narušavaju funkcionalne
zavisnosti moe ukljuivati potrebu za spajanjem relacija (kako bi se
FZ provjerile na spojenoj relaciji), što moe da predstavlja izraen
vremenski gubitak.
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
je superklju za R
Relaciona šema R je u BCNF s obzirom na skup F funkcionalnih
zavisnosti, ako za sve funkcionalne zavisnosti u F+ oblika ,
gdje je R i R, vrijedi:
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Superklju = Primarni klju = {A}
R nije u BCNF, jer FZ B C narušava zahtjeve BCNF
(B C nije trivijalna FZ, niti je B superklju)
Dekompozicija šeme R na: R1 = (A, B), R2 = (B, C)
R1 i R2 su u BCNF
Dekompozicija je Lossless-join
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Dekompozicija u BCNF ne moe da ouva FZ, i
Vana je efikasna provjera da li se narušavaju FD prilikom
auriranja
Rješenje: relaksirati ogranienja BCNF. Rješenje je slabija (manje
stroga) normalna forma – Trea Normalna Forma (3NF).
Dopušta odreenu redundanciju, uz prihvatanje implikacija koje iz
toga proistiu,
FZ’i se mogu provjeravati na individualnim relacijama bez potrebe
za spajanjem relacija
Postoji uvijek lossless-join dekompozicija u 3NF sa ouvanjem
FZ’i.
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Trea Normalna Forma
Relaciona šema R je u treoj normalnoj formi (3NF) ako za svaku
FZ:
u F+
je trivijalna FZ (tj., )
je superklju za R
Svaki atribut A u – je sadran u kandidatskom kljuu za R.
(NAPOMENA: atributi mogu biti u razliitim kandidatskim
kljuevima)
Ako je relacija u BCNF ona je i u 3NF (pošto u BCNF jedan od prva
dva uslova moraju vrijediti za FZ’i).
Trei uslov je minimalna relaksacija BCNF da se omogui ouvanje
funkcionalnih zavisnosti prilikom dekompozicije.
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Dva su kandidatska kljua: JK i JL
R je u 3NF
L K K je sadran u kandidatskom kljuu
BCNF dekompozicija je na podšeme (JL) and (LK)
Testiranje za JK L zahtijeva join
Postoji odreena redundancija u šemi R
Primjer 2
ETF BL 2011/12
Poreenje BCNF i 3NF
Uvijek je mogue dekomponovati šemu u šeme koje su u 3NF tako da je
dekompozicija
bez gubitka informacija (lossless)
sa ouvanom funkcionalnom zavisnošu
Uvijek je mogue dekomponovati šemu u šeme koje su u BCNF tako da je
dekompozicija
bez gubitka informacija (lossless)
takva da u svim sluajevima ne garantuje ouvanje funkcionalnih
zavisnosti
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
J
j1
j2
j3
null
L
l1
l1
l1
l2
K
k1
k1
k1
k2
Šema koja je u 3NF ali nije u BCNF ima nedostatke u
Ponavljanju informacija (npr., para l1, k1)
Potreba za korištenjem null vrijednosti (npr. za predstavljanjem
veze
l2, k2 kada nema korespondentne vrijednosti za J. U realnim SUBP tu
vezu ne bi mogli predstaviti jer vrijednost na segmentu primarnog
kljua ne moe biti null).
Primjer problema sa redundancijom u 3NF
R = (J, K, L)
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
BCNF.
Dekompoziija sa ouvanom zavisnošu
Ako prethodno nije mogue postii, onda je mogue izabrati jednu od
slijedeih opcija:
Odustati od ouvanja funkcionalnih zavisnosti u dekompozicijama,
ili
Prihvatiti odreenu redundanciju kroz 3NF dekompoziciju
SQL ne obezbjeuje direktan nain za specifikaciju funkcionalnih
zavisnosti izuzev superkljueva.
Mogue je specifikovati FZ kroz potvrde (assertions), ali je ovaj
mehanizam vremenski zahtjevan za testiranje
ak i kada imamo ouvane funkcionalne zavisnosti prilikom
dekompozicije, nije mogue efikasno testirati ouvanje FZ koristei
SQL za FZ’i u kojima lijeva strana nije superklju.
7.3 Postupci za realizaciju dobre organizacije podataka
ETF BL 2011/12
Raunarstvo i
Elektronika i
Elektronika i
1210987100018
Jovanovi
0607989100021 ivanovi 2009 25/09 4 1
2208988105034 Petrovi 2008 14/08 4 1
IdSP NazivSP Ciklus
JMB Ime
Raunarstvo i
Elektronika i
Raunarstvo i
Elektronika i
Raunarstvo i
Elektronika i