You are on page 1of 16

1.

Anomalije ažuriranja kao motiv projektovanja Kada iz univerzalne pojave imamo potrebu da obrišemo podatke
šeme relacione baze podataka. o samo jednoj klasi entiteta, prinuđeni smo da brišemo čitavu
torku, kako ne bi došlo do narušavanja uslova integriteta
U teoriji relacionog modela podataka se polazi od pretpostavke entiteta. Ovakvo brisanje može da dovede do toga da potrebni
da šema univerzalne relacije (U,C) predstavlja inicijalni model podaci o entitetima drugih klasa, zapisani samo u obrisanoj
realnog sistema,bez obzira na njegovu kompleksnost. Skup U torki, budu izgubljeni.
sadrži obeležja realnog sistema, koja su bitna za realizaciju
zadataka IS, a skup C sadrži ograničenja, koja su posledica Anomalija modifikacije:
pravila ponašanja i poslovanja u realnom sistemu. Ta pravila Neka je X->A jedna funkcionalna zavisnost u skupu F.
ponašanja i poslovanja se izražavaju putem: integriteta Modifikacija vrednosti obeležja A u okviru jedne torke
domena, zabrane nula vrednosti za obeležja, funkcionalnih, univerzalne pojave, zahteva pristupanje i svim ostalim torkama
višeznačnih i zavisnosti spoja, kao i putem jednorelacionih radi usaglašavanja vrednosti obeležja A sa vrednošću u
zavisnosti sadržavanja. izmenjenoj torki. Ukoliko se jave torke u kojima vrednost
Univerzalna relacija je, kao baza podataka, nepogodno rešenje, obeležja A nije jednaka za istu vrednost obeležja X, funkcionalna
pre svega sa tačke gledišta efikasnog održavanja baze podataka zavisnost X->A više neće biti zadovoljena.
u konzistentnom stanju. Problemi koji se javljaju pri održavanju Integritet entita je uzročnik problema prilikom upisa i brisanja
univerzalne relacije u konzistentnom stanju, nazivaju se torki, a zadovoljavanje funkcionalnih zavisnosti prilikom
anomalijama ažuriranja. Obezbeđenje uslova za efikasnu modifikacije istih.
kontrolu integriteta predstavlja jedan od osnovnih ciljeva
Primer: Neka univerzalna šema relacije pod nazivom Fakultet sadrži obeležja tri
projektovanja skupa šema relacija šeme baze podataka klase entiteta. To su klase entiteta Student, Nastavnik i Predmet.
Problemi, izazivani anomalijama ažuriranja, rešavaju se Skup obeležja: U={BRI, IMES, PRS, BPI, SN, NP, SP, NP, OCE} .... ponavlja se u 10.
rastavljanjem šeme univerzalne relacije na skup šema relacija S, pitanju
takav da je |S| ˃ 1. To dekomponovanje predstavlja jednu od
metoda, koja sekoristi pri projektovanju šeme baze podataka. 2. Ciljevi i metode normalizacije šeme relacione
baze podataka
Uvođenje dekomponovanja pokreće određeni niz pitanja:
Definisanjem normalnih formi se daje odgovor na pitanje do kog
 kakve uslove treba da zadovolji skup šema relacija S dobijen
dekompozicijom. nivoa treba vršiti dekompoziciju šeme univerzalne reakcije.
 kako vršiti dekompoziciju. Normalizacija je metoda projektovanja skupa šeme relacione
 do kog nivoa rastavljati šemu univerzalne relacije i šeme relacija, baze podataka. Postupak je strogo formalan, a njegov krajnji cilj
dobijene njenim rastavljanjem, je zamena šeme univerzalne relacije skupom šema relacija sa
 kako definisati međurelaciona ograničenja. poželjnim osobinama. U te osobine spadaju: određ. normalna
forma, spoj bez gubitaka, konzervacija skupa obeležja i skupa
Na osnovu pojma spoja bez gubitaka se izvode i osnovni postupci za
rastavljanje šeme relacije na šeme relacija. funkc.zavisnosti. Eliminisanje anomalija ažuriranja predst.
osnovni razlog za primenu normalizacije. Saglasno tome,
Anomalije ažuriranja su problemi koji se javljaju prilikom normalizacijom se ostvaruje jedan od preduslova za efikasnu
ažuriranja univerzalne pojave baze podataka, ali i pri upisu, kontrolu integriteta baze podataka.
brisanju i modifikaciji torki u relacijama baze podataka. Uzroci
postojanja su: integritet entiteta, funkcionalne, višeznačne Metode normalizacije
zavisnosti i zavisnosti spoja. Postoje dve osnovne metode normalizacije: metoda
Integritet entiteta je posledica funkcionalnih zavisnosti, pa dekompozicije i metoda sinteze. Svaka od njih ima niz varijanti.
razlikujemo anomalije ažuriranja koje su posledica Metoda dekompozicije je zasnovana na postupnom
funkcionalnih zavisnosti i anomalije ažuriranja koje su rastavljanju šeme univerzalne reakcije (U,C) saglasno tipskim
posledica višeznačnih zavisnosti i zavisnosti spoja. zavisnostima u C, dok se ne dobije skup šema relacija u željenoj
Kada se kao šema baze podataka koristi univerzalna šema normalnoj formi.
relacije (U, C), ona u opštem slučaju sadrži obeležja većeg broja Metoda sinteze se realizuje korišćenjem samo funkcionalnih
klasa entiteta, pa samim tim i ključ univerzalne šeme relacije zavisnosti. Polazi se od šeme univerzalne reakcije (U,C), a
sadrži identifikaciona obeležja više klasa entiteta. Prilikom rezultat je skup šema relacija, najmanje u trećoj normlanoj
izmena baze podataka razlikujemo sl. anomalije ažuriranja: formi. Svaka šema relacije tog skupa sintetizuje se od funkc.
Anomalija upisa: zavisnosti iz kanončnog pokrivanja skupa F. Osnovna ideja
metode sinteze je zasnovana na redukciji i eliminaciji svih
U univerzalnu pojavu se ne mogu upisati podaci o entitetu samo suvišnih funkcionalnih zavisnosti iz polaznog skupa F.
jedne klase, jer bi to podrazumevalo upis nula vrednosti za
obeležja svih drugih klasa identita. S obzirom da i određ. Definicija. Neka je (U,C) šema univerz. reakcije, FC skup funkc.
obeležja drugih klasa entita čine deo ključa šeme relacije, nula zavisnosti, a S=Ri,Ci)|i=1, …, n } skup šema relacija i neka su
vrednosti u novoj torki univerzalne pojave bi dovele do dati sledeći uslovi: πRi
narušavanje uslova integriteta entiteta. U =¿ i=1¿ n Ri
Anomalija brisanja: 1
n ▪ Algoritam sinteze ne pronalazi sve ključeve šeme relacije, već samo
2 ( ∀ r ∈ SAT (U ,C )¿ ¿
i=1 one koji su posledica levih strana FZ u inicijalnom skupu funkc.
zavisnosti F. Ključevi koji nisu odredjeni, nazivaju se implicitnim ili
+¿=(¿i =1 ¿ n F Ri)¿ nesintetizovanim. Jedan od odredjenih ključeva se proglašava za
3F + primarni ključ. Primarnim ključem se proglašava onaj ekvivalentni ključ
Ako skup šema relacija S zadovoljava uslove 1 i 2, naziva se šeme relacije, putem čijih vrednosti se, najčešće, vrši traženje odredj.
torke u relaciji.
dekompozicijom šeme (U,C) sa spojem bez gubitaka. Ako
zadovoljava uslove 1 i 3, naziva se takvom reprezentacijom
šeme (U,C), koja konzervira funkc. zavisnosti. Ako skup šema
reacija S zadovoljava uslove 1 i 2 i , naziva se dekompozicijom 4. Zatvarač i pokrivač skupa funkc. zavisnosti i zatvarač
šeme (U,C) sa spojem bez gubitaka, koja konzervira funkc. skupa obeležja kao osnovni pojmovi korišćeni u
zavisnosti. algoritmu metoda sinteze.
Na osnovu pravila dekompozicije, svaki skup funkc. zavisnosti F
može se zameniti ekvivalentnim skupom G u kome se na desnim
3.Osobine skupa šema relacija nakon primene stranama fz nalazi samo po jedno obeležje.
algoritma metoda sinteze. Postoje tri osnovna aksioma-Armstrongovi aksiomi:
Postupak se primenjuje na šemu relacije ( U , F ), a rezultat je (F1) Refleksivnost –
skup šema relacija S= (, Ki )|i=1, …, n }, gde je Ri U , a Ki skup (F2) Proširenje –
određenih (sintetizovanih) ključeva. (F3) Pseudotranzitivnost –
Kao posledica sistema aksioma F, postoje još dva pravila
Algoritam metode sinteze kao ulazne parametre koristi sledeće izvođenja:
skupove: (F4) Unija
(F5) Dekompozicija
Skup obeležja U = {A, B, C. . . X, Y, Z} ;
Skup funkcionalnih zavisnosti definisan nad skupom obeležja U, Primenom prva tri Armstrongova aksioma na skup funkc.
F = {f1. . .fn} zavisnosti F dobijamo skup funkc. zavisnosti F+ koji sadrži sve
funkc. zavisnosti iz skupa F, kao i one funkc. zavisnosti koje su
Nakon završene normalizacije, dobija se kao rezultat skup šema logička posledica skupa fz F tj. one koje se mogu izvesti
relacija S u oznaci S = {Ni{Ri, Ki}}, pri čemu R predstavlja skup primenom aksioma iz sistema F. Taj novodobijeni skup se naziva
obeležja, a Ki skup sintetizovanih ključeva tj. vrstu ograničenja zatvaranjem (zatvaračem) skupa funkcionalnih zavisnosti F.
u skupu šema relacija.
Zatvaranje skupa funkc. zavisnosti sadrži potpunu informaciju o
Relaciona baza podataka se nalazi u trećoj normalnoj formi i ograničenjima među podacima u ekstenziji. Čak i za mali skup
mora da zadovoljava sl. uslove, tj. da poseduje sledeće osobine: obeležja i funkc. zavisnosti, njegovo zatvaranje sadrži brojne
1. Skup šema relacija sadrži kompletnu informaciju o skupu logički suvišne funkc. zavisnosti, tj. ima veliki kardinalni broj.
obeležja U tj. konzervira inicijalni skup obeležja koja su Primenom pravila dekompozicije i unije, dobijaju se skupovi F+d
prepoznata kao bitna za realni sistem i F+u koji su ekvivalentni sa zatvaračem, ali imaju manji
kardinalni broj.
2. Skup šema relacija sadrži kompletnu informaciju o skupu
funkcionalnih zavisnosti F tj. konzervira inicijalni skup Skup funkc. zavisnosti F+d sadrži takve funkc.zavisnosti čija
funkcionalnih zavisnosti desna strana ima samo jedan član, dok se u skupu F +u svaka
leva strana funkc. zavisnosti javlja samo jednom.
3. Sve šeme relacija su u najmanje 3 NF
-
4. Šema baze podataka reprezentuje jedno zatvaranje skupa F Pokrivanje (pokrivač) skupa funkcionalnih zavisnosti F
funkcionalnih zavisnosti F Skupovi F i G su ekvivalentni, ako i samo ako važi da su
5. U šemu baze podataka je ugrađeno najmanje jedno zatvaranja skupa F i skupa G jednaka F+=G+.
neredundantno pokrivanje skupa funkcionalnih zavisnosti F Za ekvivalente skupove se kaže da pokrivaju jedan drugog.
6. Svaka funkcionalna zavisnost ugrađena u šemu baze Pokrivanje (pokrivač) skupa funkcionalnih zavisnosti F- je svaki
podataka mora biti redukovana skup funkcionalnih zavisnosti G koji ima jednako zatvaranje sa F.
7. Šema baze podataka poseduje osobina spojivosti bez Pokrivanje može biti: neredundantno, redundantno i
gubitaka, tj. implicira zavisnost spoja (R1…Rn) kanonično.
8. Šema baze podataka treba da sadrži neophodan broj šema Skup G je neredundantno pokrivanje skupa funkc. zavisnosti F ako ne
relacija sadrži pravi podskup koji je takođe pokrivanje skupa funkc. zavisnosti F.
Jedan skup FZ može imati više neredundantnih pokrivanja i
9. Ne postoji skup šema relacija T sa manjim brojem šema neredundantno pokrivanje može zavisiti od redosleda kojim se biraju FZ
relacija od skupa S, a da zadovoljava uslove 1-3 prilikom eliminacije redundantnih (zbog postojanja fz oblika X->Y i Y->X).
Ispunjenost ovih osobina garantuje kvalitet šeme baze podataka Redundantno pokrivanje je takvo pokrivanje koje sadrži redundantne
i nemogućnost pojave anomalija ažuriranja, čije je otklanjanje i FZ. Redundantna funkcionalna zavisnost u skupu funkci. zavisnosti F je
bilo cilj postupka projektovanja skupa šema relacija.
takva funkcionalna zavisnost f koja se može izvesti iz F\{f}, odnosno, 6. Metod sinteze - 1. korak algoritma: tumačenje
ako f pripada zatvaranju skupa F bez f, tj. pripada skupu {F\f}+.
postupka i prikaz funkcionisanja na odabranom
Kanonično pokrivanje skupa funkcionalnih zavisnosti F je takvo da primeru.
ispunjava sledeće uslove:
Algoritam sinteze sadrži 7 koraka. Prva dva prevode inicijalno zadati
1. G+=F+ (jednaka zatvaranja)
skup funkc. zavisnosti F u njegov kanonični pokrivač H.
2. G sadrži samo redukovane funkcionalne zavisnosti
3. G je neredundantan skup
4. desna strana svake funkcionalne zavisnosti u G sadrži samo U prvom koraku se vrši redukcija levih strana fz. tj
jedno obeležje transformacija polaznog skupa F u skup E primenom algoritma
redukcije.
Cilj prvog koraka je da se iz svih grupa funkc. zavisnosti u F, a
5. Nesintetizovani ključevi.
samim tim i iz svih FZ u F uklone suvišna obeležja. To znači da se
u prvom koraku žele dobiti isključivo potpune funkc. zavisnosti
 Algoritam sinteze ne pronalazi sve ključeve šeme relacije, već tj. FZ koje imaju redukovanu levu stranu, što je u skladu sa
samo one koji su posledica levih strana funkc. zavisnosti u definicijom druge normalne forme( 2 NF).
inicijalnom skupu funkc. zavisnosti F.
Rezultat prvog koraka algoritma sinteze je skup E’ koji u sebi
 Određeni (ili sintetizovani) ključ šeme relacije (R, K) je sadrži isključivo redukovane FZ oblika XA, u kojima svaka leva
skup obeležja XÎ K takav da važi: strana FZ ne sadrži ni jedno suvišno obeležje.
(X Í R) (X Î lhs(H)) Algoritam za 1. korak algoritma sinteze:
 Ključevi koji nisu određeni, nazivaju se implicitnim ili
nesintetizovanim.
 Skup obeležja (X  R) predstavlja nesintetizovani ključ šema
relacije N (R, K), ako predstavlja ključ i važi XK.
Za uspešnu primenu algoritma transformacije je neophodno
generisati sve ključeve svake šeme relacije iz S osim za one koji
predstavljaju minimalne čvorove grafa zatvaranja. Za to se
koristi algoritam za generisanje svih dodatnih ključeva šeme
relacije.
 Svi ključevi šeme relacije, određeni i implicitni, međusobno su
ekvivalentni.
detaljno:
 Jedan od određenih ključeva se proglašava za primarni ključ. U prvom koraku se vrši transformacija polaznog skupa F’ u skup E’
Primarnim ključem se proglašava onaj ekvivalentni ključ šeme redukcijom levih strana funkc. zavisnosti skupa F’. Leve strane u oznaci
relacije, putem čijih vrednosti se, najčešće, vrši traženje određene ovog algoritma su obeležene sa X, a oblik zavisnosti je X A. Skupovi
torke u relaciji. obeležja A i X moraju biti podskupovi skupa U.
U prvoj naredbi prvog koraka algoritma skup E’ poprima vrednost
praznog skupa (POSTAVI E u E’).
Druga naredba je programska petlja REDUKCIJA, u kojoj je ulazna
vrednost svaka funkc. zavisnost polaznog skupa F’ (RADI redukcija (∀X
 A∈F’).
U okviru ove programske petlje je ugnježđena jos jedna programska
petlja - RADI eliminacija_obelezja ∀B∈X.
U uslovu naredbe grananja izraz “AKO JE A elemenat skupa zatvaranja
obelezja X-B+ u odnosu na F’” TADA se iz skupa obelezja X eliminise
obelezje B, jer je bilo suvisno. Ukoliko prethodni uslov nije zadovoljen
TADA obelezje B se ne odstranjuje iz skupa X. Unutrašnja ugnježđena
petlja “eliminacija_obelezja” se ponavlja za svako obeležje leve strane
odabrane funkcionalne zavisnosti skupa X.
Spoljna petlja vrši redukciju za sve funkc. zavisnosti tipa XA iz F’. Ovo
praktično znači da dve ugnježđene programske petlje tipa DO
WHILEanaliziraju svako obeležje leve strane svake funkcionalne
zavisnosti polaznog skupa F’.
U okviru programske petlje REDUKCIJA se u svakom koraku u skup E’,
koji je u početku bio prazan, dodaje zavisnost tipa X  A (X određuje A)
za koju sada možemo garantovati da leva strana te zavisnosti u oznaci X
kao skup obeležja nema suvišnog obeležja.
7. Metod sinteze - 2. korak algoritma: tumačenje 8.Metod sinteze - 3. i 4. korak algoritma: tumačenje
postupka i prikaz funkcionisanja na odabranom postupka i prikaz funkcionisanja na odabranom
primeru. primeru.
Treći korak algoritma normalizacije metodom sinteze kao ulazni
skup funkcionalnih zavisnosti koristi skup H dobijen u drugom
koraku.
U koraku III skup H treba podeliti na disjunktivne (nepresečne)
podskupove funkcionalnih zavisnosti sa istim levim stranama.
Ovaj korak naziva se particionisanje neredundantnog
pokrivanja H na disjunktne podskupove.
Rezultat trećeg koraka je skup G(X) = {G1(X1), G2(X2), . . .
Gn(Xn)}, koji formiramo od disjunktnih podskupova
neredundantnog pokrivanja H.

Cilj drugog koraka algoritma je da se iz svih grupa funkc.


zavisnosti u skupu E, a samim tim i iz svih funkc. zavisnosti u E
uklone tranzitivne i trivijalne funkc. zavisnosti. To znači da se
na kraju drugog koraku žele dobiti isključivo netranzitivne i
netrivijalne FZ odnosno FZ koje nemaju tranzitivna obeležja, što
je u skladu sa definicijom treće normalne forme (3NF).
Postojanje samo netranzitivne i netrivijalne FZ je osnov za
kreiranje nerudundatnog pokrivanja H za skup E.
detaljno:
U 2. koraku algoritma sinteze se transformiše skup E’ koji je rezultat
prvog koraka algoritma u skup H’ koji predstavlja neredundantno
pokrivanje za skup E’. Prva naredba drugog koraka postavlja E’ u H’, Ceo treći korak se sastoji iz dve programske petlje. Prva je RADI
a ključni deo drugog koraka algoritma predstavlja upravljačka formiranje_podskupova u kojoj se posmatraju sve f-zavisnosti iz skupa
programska struktura tipa programske petlje pod nazivom H’. U prvom koraku ove petlje se u promenljivu ind postavlja vrednost
„eliminacija_fz”.Programska petlja “eliminacija_fz” analizira svaku 0, sto predst. i “zastavicu” u ovom algoritmu, tj, ta promenljiva ima dve
funkc. zavisnost skupa H’. Analiza se vrsi na osnovu ugnježdjene vrednosti 0 i 1, na osnovu kojih se realizuju određ. delovi algoritamskog
strukture grananja, gde je uslov te strukture vezan za pojam koraka.
“zatvaranja” skupa X u odnosu na skup H’ bez posmatrane U okviru spoljne programske petlje se definise i unutrasnja programska
zavisnosti XA. Ako je navedeni uslov tačan tada je funkc. petlja, koja trazi podskupove G’ od Xi iz skupa G’ od X, sve dok je
zavisnost XA tranzitivna ili trivijalna i kao takva se eliminiše iz vrednost indikatora jednaka nuli. AKO JE Y=Xi, sto znači da leva strana
skupa H’. Postupak se ponavlja za svaku funkc. zavisnost iz skupa H’ funkc. zavisnosti Y A je jednaka levoj strani particivnog skupa G’ od X i,
i kao rezultat drugog koraka se dobija skup H’ u kome su tada se zavisnost YA dodaje na skup funkc. zavisnosti G’ od Xi.
odstranjene sve tranzitivne i trivijalne funkcionalne zavisnosti i ovo
neredundantno pokrivanje u oznaci H’ je prva prava prekretnica i Nakon ovog koraka se menja broj indikatora i postavlja se na 1, sto
ozbiljan rezultat algoritma sinteze.Neredundantno pokrivanje H’ znaci da izlazimo iz petlje trazenja podskupova. Ako indicator nije
praktično predstavlja polaznu osnovu eksplicitno za treći i četvrti promenio vrednost tada se u skup funkc. zavisnosti G’ od Y dodaje
korak algoritma sinteze, а моže se reći da implicitno predstavlja samo jedna zavisnost YA i tako formira jednočlani skup G’ od Y. Ovaj
osnovu i za korake 5, 6 i 7 ovog algoritma. skup se dodaje na skup G’ od X i to je poslednja naredba spoljne petlje
formiranja podskupova. To je naredba za prvu iteraciju ove petlje, tj,
ceo postupak se ponavlja za sve funkc. zavisnosti skupa H’, koji predst.
rezultat drugog koraka algoritma sinteze i ujedno je kanonično
pokrivanje za pocetni skup F.
+primer Obzirom da se iterativni postupak ponavlja u okviru programske petlje
formiranje_podskupova, tada mozemo zakljuciti da svaka funkc.
zavisnost oblika Y  A iz H’ ce biti particionisana u neki od
podskupova G’ od Xi. Konacan rezultat ovog koraka je skup G’ od X,
koji sadrzi skupove G’ od Xi, a skupova G’ od Xi ima onoliko, koliko
postoji razlicitih levih strana u skupu H’ .
Četvrti korak algoritma normalizacije metodom sinteze ima
zadatak da pronađe ekvivalentne ključeve (da bi se dobio
minimalan broj šema) i da ih iz skupa G(X) izdvoji u poseban
skup funkc. zavisnosti J. Skup J sadrži ekvivalentne leve strane
FZ.
S obzirom na to da se jedan deo FZ iz skupa G(X) izdvaja u skup
J, potrebno je modifikovati podskupove skupa G(X).
Rezultat četvrtog koraka su skupovi G’(X) formiran
modifikacijom G(X) i J formiran izdvajanjem ekvivalentnih
ključeva.
detaljan opis:

Šesti korak algoritma vrši rekonstrukciju podskupova fz. Ovo


se radi tako što se iz skupa G’(X) eliminišu event. tranzitivne
zavisnosti, a uključuju se odgovarajuće funkcionalne zavisnosti
Xy i yx.

Rezultat je skup G’’(X), uključivanjem ekvivalentnih levih strana.


Ovaj korak se naziva rekonstrukcija podskupova funkcionalnih
zavisnosti na osnovu vrednosti formiranih skupova J, G’(X) i L.
Cetvrti korak vrsi izdvajanje ekvivalentnih levih strana iz skupa G’ od X
i smešta ih u skup J’. U Skupu J’ se nalaze ekvivalentni kljucevi. Proces
izdvajanja se realizuje kroz programsku petlju - ekvi_lhs. Ona analizira
svaki G’ od Xi tako sto posmatra sve participativne podskupove od G’ od
X1 do G’ od Xn. Proces utvrdjivanja ekvivalentnih kljuceva se realizuje
koriscenjem definicije zatvaranja skupa obelezja. U naredbi grananja,
ciji formalni oblik glasi: Ako je (X i)H’+ = (Xj)H’+ TADA su obelezja Xi i Xj u
Sedmi korak algoritma normalizacije metodom sinteze formira
sustini ekvivalentni kljucevi. Ako je navedeni uslov tacan, odnosno, ako
su skupovi zatvaranja za obelezja Xi i Xj, u odnosu na skup H’ jednaki, skup šema relacija tako što se svaki od podskupova G’’(X)
tada na osnovu definicije zatvaranja se izvodi direktna implikacija da su proglašava za skup obeležja jedne šeme relacija, a leva strana
Xi i Xj dva ekvivalentna kljuca. tog podskupa za skup sintetizovanih ključeva te šeme relacije.
Ovaj korak se naziva formiranje skupa šema relacija.
Naredni korak algoritma, u slucaju ovog tacnog uslova, postavlja u skup
J’ zavisnosti XiXj i XjXi sa naredbom POSTAVI J’  J’ U {XiXj, Xi Skup S koji se dobija je u 3NF. On je u oznaci S={Ni{Ri, Ki}}.
Xj}. Obzirom da je doslo do promene u parcijalnim skupovima G’ (X’) u Ovako dobijen skup šema relacija garantuje nepostojanje svih
novi skup G’’ (X)  G’’ (Xi) U G’’(Xj). vrsta anomalija ažuriranja. Dakle, u ovakvom skupu S ne mogu
U G’(X) se odstranjuje onaj skup zavisnosti u oznaci G’ (X i) ako je bio se javiti ni anomalije upisa i brisanja, niti anomalije modifikacije.
jednoclan naredbom G’(X)G’(X)\{G’(Xj)}.
U slucaju da skup nije bio jednoclan iz njega se odstranjuju i sve funkc.
zavisnosti koje direktno uticu na kreiranje ekvivalentnih kljuceva.
Naredbom G’(Xi)G’(Xi)\{YA|(A∈Xi U Xj) i (Y=Xi v Y=Xj}). TO je ujedno
poslednja naredba u okviru naredbe grananja i istovremeno poslednja
naredba naredbe programske petlje ekvi_lhs, koja se odnosi na prvu
iteraciju ove programske petlje.
+primer

9.Metod sinteze - 5., 6. i 7. korak algoritma:


tumačenje postupka i prikaz funkcionisanja na 10. Normalne forme - I, II i III normalna forma.
odabranom primeru. Postizanje određ. normalne forme predst. jedan od ciljeva
Kao izlaz četvrtog koraka formirani su skupovi J i G’(X). dekomponovanja šeme univerzalne reakcije.

Peti korak algoritma predst. eliminaciju tranzitivnih trivijalnih Ukupno postoji šest NF: I NF., II NF, III NF, Boyce Coddova NF, IV
zavisnosti u skupovima J i G’(X) primenom pravila impliciranih NF i V NF. Najveći značaj za projektovanja šeme baze podataka
algoritmom redukcije. imaju treća, Boyce Coddova i četvrta NF. Prve tri i Boyce
Coddova normalna forma se definišu isključivo na osnovu funkc.
Rezultat petog koraka predstavlja skup L koji se formira od zavisnosti. Četvrta NF je zasnovana na višeznačnim, a peta na
novopronađenih tranzitivnih i trivijalnih funkcionalnih zavisnostima spoja.
zavisnosti.
-----------1NF
Za definisanje 1. NF koristi se pojam elementarnog obeležja. To
je ono obeležje čiji domen sadrži atomične elemente. Elementi
domena se nazivaju atomičnim ili ako ne predstavljaju torke
reda n2 ili ako se struktura elemenata ne posmatra. Obeležje
je elementarno ili ako se ne može dekomponovati na
komponente koje takođe predstavljaju obeležja ili ako  ako student sluša određeni predmet, sluša ga i polaže kod samo
posmatrana primena ne zahteva dekomponovanje. jednog nastavnika,
 svaki student, iz određ. predmeta , ima najviše jednu ocenu.
1. def. Šema relacije (R, F) je u prvoj normalnoj formi (1NF) ako
Pravila poslovanja omogućavaju definisanje sledećeg skupa
su vrednosti dom(A) atomične tj. ako su sva obeležja A iz skupa
funkcionalnih zavisnosti
R elementarna. Šema baze podataka je u 1NF ako su sve njene
šeme relacije u prvoj normalnoj formi. F = {BRI  IMS+PRS+BPI, OZP  NAP,NAP  OZP, OZN

Anomalije ažuriranja karakteristične su za šeme relacija u prvoj OZP+NAP+PRN, BRI+OZP  OCE+OZN}


normalnoj formi. Šema univerzalne relacije {U, C) sadrži tri ključa.
Primer: To su sledeći skupovi obeležja: {BRI, OZN}, {BRI, NAP}, [BRI, OZP).
Posmatra se skup obeležja U= MBG,IME,PRZ,ADR,TEL, gde je MBG IMS ne pripada nijednom ključu.
matični broj građana. Neka u skupu U važi sl. skup funkc. zavisnosti
F=MBG IME+PRZ+ADR+TEL. Obeležja ADR i TEL predst. skupove Šema relacije Nast_Pred(OZN,OZP,NAP,PRN},OZNOZP+NAP+PRN,
obeležja: ADR=PTT,MESTO,ULICA,KBROJ i TEL=POZBR,BRTEL. Ako OZPNAP, NAPOZP} sa ključem OZN je u drugoj normalnoj formi jer
se u skupu U složena obeležja ADR i TEL zamene elementima odgov. je svako neprimarno obeležje u potpunoj funkc. zavisnosti od svakog
skupova obeležja, u tako dobijenom skupu obeležja U važi i funkc. ključa. Šema relacije Nast_Pred predst. jednu od šema relacija,
zavisnost PTTPOZBR. dobijenih dekomponovanjem šeme relacije Fakultet na osnovu funkc.
zavisnoti OZNOZP+NAP+PRN.
Obeležja ADR i TEL nisu elementarna obeležja jer se mogu
dekomponovati, ADR se dekomp. na PTT,MESTO,ULICA,KBROJ, a TEL na --------------------
BRTEL i POZBR. Pojave nad šemom relacije u drugoj, ali ne i u nekoj višoj
-------2NF normalnoj formi i dalje poseduju anomalije ažuriranja.

Druga normalna forma predst. mogući metodološki međukorak Anomalije ažuriranja relacije na prethodnoj relaciji se mogu
između I i III NF. ilustrovati sledećim primerima:

def. Šema relacije (R, F) je u drugoj normalnoj formi (2NF) s 1.U relaciju Fakultet se ne mogu upisati podaci o novom
obzirom na F ako je u 1NF i ako je svako neprimarno obeležje u nastavniku, dok se ne zna predmet, koji će predavati i bar jedan
potpunosti zavisno od svakog ključa R. student, kojem će predavati. Ovakve pojave se nazivaju
anomalijama upisa.
Šema baze podataka je u 2NF, ako je svaka njena šema relacije u
2NF. 2.Ako se, iz relacije, žele brisati podaci npr o nastavniku, gube se
podaci o predmetu. Ovakve pojave se nazivaju anomalijama
Netrivijalna funkc. zavisnost X->A se naziva nepotpunom ako brisanja.
Y⊂X takvo da važi Y->A ∈ F+. Ako za svako Y⊂X važi da Y->A ∉
F+, funkc. zavisnost X->A je potpuna ili redukovana. 3.Modifikacija naziva predmeta zahteva pristupanje svim
torkama sa OZP=p .Ovakve pojave se nazivaju anomalijama
Skup funkc. zavisnosti je redukovan ili ima redukovane leve modifikacije.
strane ako je svaka FZ iz ovog skupa redukovana FZ.
---------3NF
Šema relacije je u drugoj normalnoj formi, ako je svako
neprimarno obeležje skupa obeležja R u potpunoj funkc. Treća NF predst. najčešći praktični cilj normalizacije.
zavisnosti od svakog ključa šeme relacije (R,C). Dovođenjem skupa šema relacija u treću NF, eliminiše se većina,
ali ne i svi uzroci anomalija ažuriranja.
Primer:
Šema relacije Fakultet
Šema baze podataka je u trećoj NF ako je svaka njena šema
Skup U = { BRl, IMS, PRS, BPI, OZP, NAP, OZN, PRN, OCE } relacije u trećoj NF.
sadrži obeležja klasa entiteta: Student, Predmet i Nastavnik. Netrivijalna funkc. zavisnost X->A se naziva tranzitivnom ako
Neka su odnosi:
važi X->Y, Y->AF+ i Y->X ∉ F+
 student ima: broj indeksa (BRl), ime (IMS), prezime (PRS)
i broj položenih ispita (BPI). Šema relacije je u trećoj normalnoj formi (3NF) ako se svako
 predmet ima: oznaku (OZP) i naziv (NAP). neprimarno obeležje skupa R nalazi u netranzitivnoj zavisnosti
 nastavnik ima: oznaku (OZN) i prezime (PRN). od svakog ključa X šeme rlacije (R,C).
 student ima ocenu (OCE) iz predmeta (PRN),
 nastavnik predaje studentu, def. Šema relacije (R,C) je u trećoj NF ako svaka netrivijalna
 nastavnik izvodi nastavu iz predmeta. funkc. zavisnost F+, čija desna strana sadrži neprimarno
I neka važe sledeća pravila poslovanja: obeležje, na levoj strani sadrži ključ šeme relacije.
 svaki broj indeksa se dodeljuje najviše jednom studentu, a svaki
student ima samo jedan indeks, Nepotpuna funkc. zavisnost predst. poseban slučaj tranzitivne
 svaka oznaka predmeta se dodeljuje najviše jednom predmetu, a zavisnosti. Ako je netrivijalna funkc. zavisnost Y->AF
svaki predmet ima samo jednu oznaku, nepotpuna, tada postoji Y takvo da je Y⊂X i važi Y-> AF+.
 svaka oznaka nastavnika se dodeljuje najviše jednom nastavniku,
a svaki nastavnik ima samo jednu oznaku. Na osnovu Armstrongovih pravila izvođenja F1-Refleksivnost-
 ne postoje dva predmeta sa istim nazivom, sledi X->YF+ i Y-> AF+.
 nastavnik izvodi nastavu iz najviše jednog predmeta.
Saglasno tome, funkc. zavisnost X->A je tranzitivna.  –složenija pravila poslovanja, poput ograničenja:“student
može upisati određenu godinu studija samo ako je položio
Šema relacije je u trećoj NF i u drugoj NF.
najmanje 80% predmeta prethodne godine studija.”.
Primer. Fakultet.
Način deklarisanja i definisanja proceduralnih specifikacija
Šema relacije Nast_Pred nije u trećoj NF jer skup FZ sadrži tranzitivnu uslova integriteta, u velikoj meri zavisi od proizvođača SUBP.
zavisnost OZN ->NAP. Šema relacije Nastavnik(OZN,PRN, OZN -
>PRN) i Predmet(OZP,NAP,  OZP NAP, NAPOZP) su u trećoj Proceduralni mehanizmi za proveru uslova integriteta se, u
NF. Pojave nad ovim šemama relacija ne poseduju anomalije SUBP, najčešće realizuju korišćenjem okidača (eng.
ažuriranja, što je samo u ovom primeru. trigger), procedura i funkcija baza podataka.
Anomalije ažuriranja se manifestuju i pri ažuriranju šeme Okidač je mehanizam sistema za upravljanje bazom podataka
relacije u trećoj NF, ako njen skup ograničenja sadrži tranzitivnu vezan za određeni događaj. Okidač pokreće određ. aktivnost
funkc. zavisnost na čijoj desnoj strani je primarno obeležje. nad bazom podataka uvek kada se taj događaj desi.
Problem se rešava prevođenjem šeme relacije u Boyce-Codd-
Def.:Procedura baze podataka je mehanizam SUBP koji se
ovu NF.
pokreće po eksplicitnom pozivu (korisnika ili drugog
proceduralnog mehanizma), vrši određenu obradu (na osnovu
11.Normalne forme - BC (Boyce-Coddova) normalna prosleđenih parametara ili bez njih) i po potrebi vraća neke
vrednosti kao izlazne argumente.
forma.
Funkcije su rutine koje prihvataju parametre, izvršavaju različite
Stroža je od treće normalne forme. Strogost se ogleda u zabrani iskaze i vraćaju rezultate tih iskaza kao vrednosti. Postoje
postojanja svake tranzitivne zavisnosti u skupu ograničenja sistemske i korisnički definisane funkcije baze podataka.
šeme relacija, uključujući i one na čijoj desnoj strani je primarno
obeležje. posle imaju posebno i okidači i procedure i funkcije
Zasniva se na funkcionalnim zavisnostima.
Boyce Coddova NF zahteva da svaka netrivijalna funkcionalna
13. Okidači: definicija i namena.
zavisnost sadrži ključ na levoj strani,bez obzira kakvo obeležje Okidač (triger) je mehanizam SUBP vezan za određeni događaj.
sadrži na desnoj strani. Okidač automatski pokreće određ. aktivnost nad bazom
podataka uvek kada se taj događaj desi.
Definicija
Događaj koji aktivira triger je neka operacija ažuriranja (insert,
Šema relacije (R,F) se nalazi u BCNF s obzirom na skup
update, delete) koja se vrši nad nekom tabelom ili pogledom.
funkcionalnih zavisnosti F, ako je u 1NF i ni jedno obeležje iz R
nije tranzitivno zavisno od bilo kog ključa u R. U definiciji okidača se navodi koja operacija ažuriranja (jedna ili
više njih) i nad kojom tabelom/pogledom će je aktivirati.
Najčešće se za svaku operaciju nad nekom tabelom definiše
poseban okidač.
DDL iskazi koji se koriste za rad sa okidačima su CREATE
TRIGGER, ALTER TRIGGER i DROP TRIGGER.

12.Proceduralni mehanizmi za kontrolu integriteta


relacionih baza podataka: razlozi uvođenja, vrste. Značenje ključnih reči:
Komercijalni sistemi za upravljanja BP ne omogućavaju FOR-Ima isti efekat kao i AFTER.
deklarativnu specifikaciju svih ograničenja šeme BP. Primeri
AFTER-Specificira da se okidač aktivira tek nakonšto se uspešno izvrši
ovakvih ograničenja su: okidajući SQL iskaz.
 –inverzni referencijalni integritet, INSTEAD OF-Specificira da se okidač izvršava umesto okidajućeg SQL
 –međurelaciona ograničenja zavisnog skupa šema relacija, iskaza, tj. zamenjuje akcije okidajućeg iskaza.
{ [DELETE] [,] [INSERT] [,] [UPDATE] }-Ključne reči kojima se zadaje koje
operacije ažuriranja,kada se izvrše nad specificiranom tabelom ili
pogledom, aktiviraju okidač. Najmanje jedna opcija mora biti navedena.
AS-Ključna reč koja govori da slede akcije koje okidač izvršava (telo tabela (obračun kamata na bankarske račune, obračun zarada,
okidača). …).
Telo okidača
Kod procedura baze podataka nema INSERTED i DELETED
sql_statement logičkih tabela.
SQL iskazi opisuju uslove i akcije. Uslovi okidača specificiraju dodatne
Kod procedura baza podataka postoje dve vrste parametara:
kriterijume koji određuju da li će se neke akcije izvršiti.
input i output parametri.
Okidači mogu sadržati proizvoljan broj i vrste Transact-SQL iskaza.
Okidač obično služi za proveru ili izmenu podataka pomoću
Input parametri su korisnički prosleđeni parametri koji služe za
odgovarajućih SQL iskaza i ne bi trebao vraćati neku vrednost(i) zadavanje uslova u samom telu procedure. Pomoću njih zadaju
korisniku. se određ. uslovi koji će izdvojiti torke (podatke) za obradu.
Output parametri su parametri koji se vraćaju izvršavanjem tela
SQL iskazi u okidaču često uključuju i naredbe kontrole toka.
procedure. Oni predstavljaju prikaz rezultata obrade podataka
UPDATE (column)–funkcija koja testira da li je izvršena UPDATE pomoću uskladištenih procedura.
operacija nad specificiranom kolonom(za okidač aktiviran INSERT ili
DELETE iskazom uvek vraća true).UPDATE(column) se može koristiti bilo Postoje dve osnovne vrste procedura - sistemske procedure i
gde unutar tela okidača. korisnički definisane procedure baze podataka.
Primer:U tabeli student postoji izvedena kolona PROSEK koja sadrži
a) Sistemske procedure
prosečnu ocenu studenta na ispitima. Da bi BP ostala u konzistentnom
stanju neophodno je obezbediti da se uvek kada se unese novi ispit ili U SQL Serveru, mnoge administrativne i informativne aktivnosti
promeni neka ocena na ispitu ažurira prosečna ocena odgovarajućeg mogu se obavljati pomoću sistemskih procedura. Kada se doda
studenta. ili izmeni tabela, napravi rezervna kopija baze podataka, kreira
login i dr. , zapravo se pozivaju sistemske procedure specijalno
napisane da izvrše željenu aktivnost.
Sistemske procedure imaju prefiks sp_ i čine deo SQL Server
instalacije. Čuvaju se u master bazi podataka i dostupne su za
korišćenje u bilo kojoj bazi podataka.
b) Korisnički definisane procedure
Ovaj okidač bi uvek nanovo računao prosek svih studenata. Ali kako
znati kome treba računati, a kome ne? UPDATE iskaz koji je aktivirao Korisnički definisana procedura je svaki program napisan od
okidač mogao je prethodno modifikovati 0, 1 ili hiljade torki, INSERT strane korisika u SQL Server okruženje čiji je gl. zadatak
iskaz takođe može upisati 1, ali i hiljade torki … ažuriranje sadržaja nekih tabela na osnovu obrađenog sadržaja
drugih tabela. Za razliku od sistemskih procedura, korisnički def.
----------------
procedure se čuvaju u lokalnoj bazi i samo su u njoj dostupne za
- INSERTED i DELETED su logičke (konceptualne) tabele - spec. korišćenje.
tabele koje se automatski formiraju ukoliko postoji okidač za
Sintaksa za kreiranje procedure:
operaciju ažuriranja koja se vrši nad tabelom. -opširnije u 16.
pitanju.
Imajući u vidu postojanje ovih logičkih tabela prethodni okidač bi
trebalo usavršiti tako da računa prosečnu ocenu samo onih studenata
kod kojih je došlo do promene u ocenama:

14.Procedure i funkcije baza podataka: definicija i


namena.
1.Procedure baze podataka (stored procedures)
Uskladištene procedure se mogu definisati kao kolekcija
Transact - SQL iskaza koje mogu da vrate određene rezultate na
osnovu prosleđenih parametara od strane korisnika.
Uskladištene procedure se koriste za neke standardne obrade pr. emplo eeID predst. input parametar dok managerID
koje podrazumevaju izračunavanja i ažuriranje sadržaja nekih predstavlja output parametar.
AS - ključna reč koja služi za označavanje početka tzv. tela procedure u INSTEAD OF-Specificira da se okidač izvršava umesto okidajućeg SQL
kome se navode akcije koje procedura treba da preduzme pri njenom iskaza, tj. zamenjuje akcije okidajućeg iskaza.
pozivu od strane korisnika. { [DELETE] [,] [INSERT] [,] [UPDATE] }-Ključne reči kojima se zadaje koje
OUTPUT - navodi se kada uskladištena procedura vraća vrednsoti za operacije ažuriranja,kada se izvrše nad specificira-nom tabelom ili
output parametre. Koristite ovu ključnu reč kada koristite kursorske pogledom, aktiviraju okidač. Najmanje jedna opcija mora biti navedena.
promenljive kao parametri. AS-Ključna reč koja govori da slede akcije koje okidač izvršava (telo
DEFAULT – korišćenje podrazumevane vrednost za input parametre. okidača).

2. Funkcije baze podataka


Kao i funkcije u programskim jezicima, SQL Server korisnički
definisane funkcije su rutine koje prihvataju parametre,
izvršavaju različite iskaze i vraćaju rezultate tih iskaza kao
vrednosti. Povratna vrednost može biti jedna skalarna vrednost 16.Uloga Inserted i Deleted logickih tabela okidača.
ili skup rezultata.
U pitanju su specijalne tabele koje se automatski formiraju
Postoje sistemske i korisnički definisane funkcije baze ukoliko postoji okidač za operaciju ažuriranja koja se vrši nad
podataka. Sistemske funkcije su uskladištene u master bazi i ne tabelom.
mogu se menjati. Kao primeri sistemskih funkcija mogu se
Ukoliko je okidač aktiviran operacijom:
navesti funkcije COUNT, SUM, DATEPART, GETDATE,….
INSERT-formira se INSERTED tabela koja sadrži sve one torke
Funkcije se mogu podeliti na:
koje su upravo upisane naredbom koja je aktivirala okidač,
a) Skalarne - korisnički definisani skalarne funkcije vraćaju jednu
UPDATE-formiraju se i INSERTED i DELETED tabele koje sadrže
vrednost podataka kao rezultat funkcije. Ukoliko telo funkcije
nove odnosno stare vrednosti onih torki koje su modifikovane
sadrži više od jednog iskaza isti se moraju navesti kao blok iskaz
naredbom koja je aktivirala okidač,
b) Table valued funkcije – predstavljaju korisnički definisani
DELETE-formira se DELETED tabela koja sadrži sve one torke
funkcije koje vraćaju tabele kao rezultat rada funkcije.
koje su obrisane naredbom koja je aktivirala okidač.
INSERTED i DELETED logičke tabele imaju identičnu strukturu
15. Sintaksa iskaza za kreiranje okidaca - prikaz kao i tabela nad kojom je okidač definisan (tabela čije je
sintakse i objašnjenje kljucnih reci u sintaksnom ažuriranje aktiviralo izvršenje okidača).
prikazu.
Okidač je mehanizam SUBP vezan za određeni događaj. Okidač
automatski pokreće određ. aktivnost nad bazom podataka uvek
kada se taj događaj desi.
Događaj koji aktivira triger je neka operacija ažuriranja (insert,
update, delete) koja se vrši nad nekom tabelom ili pogledom.
U definiciji okidača se navodi koja operacija ažuriranja (jedna ili
više njih) i nad kojom tabelom/pogledom će je aktivirati.
Najčešće se za svaku operaciju nad nekom tabelom definiše
poseban okidač.

Značenje ključnih reči:


FOR-Ima isti efekat kao i AFTER.
AFTER-Specificira da se okidač aktivira tek nakonšto se uspešno izvrši
okidajući SQL iskaz.
17. Korišćenje kursora u proceduralnim
mehanizmima relacionih SUBP.
18. Sintaksa iskaza za kreiranje i aktiviranje
procedura i funkcija baza podataka - prikaz sintakse
i objašnjenje kljucnih reci u sintaksnom prikazu.

?????
v Transact-SQL iskazi –deklaracija promenljivih
Okidači, poput procedura i funkcija baza podataka se mogu
posmatrati i kao programski moduli pohranjeni u bazi podataka.
Kada u nekom programu želimo privremeno memorisati neke
podatke (najčešće međurezultate obrade) za ove potrebe
uvodimo programske promenljive. Programske promenljive
rezervišu deo RAM-a i u tom delu radne memorije se pamte
njihove vrednosti.
Sintaksa iskaza za deklaraciju promenljivih je sledeća:

Transact-SQL –dodeljivanje vrednosti promenljivama


Nakon deklaracije svaka promenljiva ima NULL vrednost.
Promenljivama se vrednost dodeljuje pomoću SET ili SELECT
iskaza.
Sintaksa SET iskaza: SET @naziv_promenljive = { izraz|
SELECT_iskaz }
Izraz čija će vrednost biti dodeljena promenljivoj može sadržati
promenljive, konstante, aritmetičke operatore i drugo.
Primeri SET iskaza:
SET @brojac= @brojac+ 1
SET @rbr= (SELECT rbr FROM kartica WHERE id_kart=111)
SET @datum= (SELECT datum FROM kartica WHERE
id_kart=111)
U slučajevima kada se nova vrednost promenljive javlja kao
rezultat nekog SELECT iskaza, a naročito ako se različite
vrednosti pronađene u kolonama jedne torke žele dodeliti
odgovarajućim promenljivama, uputno je dodeljivanje vrednosti
izvršiti unutar samog SELECT iskaza, umesto korišćenja SET
iskaza.
Prethodno navedeni SET iskazi:
SET @rbr= (SELECT rbr FROM kartica WHERE id_kart=111)
SET @datum= (SELECT datum FROM kartica WHERE
id_kart=111)
se mogu zameniti samo jednim iskazom:
SELECT @rbr=rbr, @datum=datum FROM kartica WHERE
id_kart=111
19. Fizičko projektovanje baze podataka. –Na UNIX- olikim platformama postoji mogućnost definisanja
tzv.rawspace a koji predst. prostor baze podataka koji je
Glavne faze procesa izgradnje (projektovanja i realizacije) baze isključivo u nadležnosti SUBP. Sa tačke gledišta OP sistema
podataka su: ovakav prostor je “crna kutija”: vidi se da postoji, ali nije
1. Snimanje, analiza i formalno specificiranje korisničkih poznata njegova sadržina. Korišćenje rawspace a doprinosi većoj
zahteva, performantnosti baze podataka.
2. Konceptualno projektovanje, Dizajniranje indeksa
3. Izbor sistema za upravljanje bazom podataka,
4. Implementaciono projektovanje (logičko projektovanje), Indeksi su pomoćne strukture podataka koje smanjuju broj I/O
5. Projektovanje interne šeme baze podataka (fizičko projekt.), operacija i time omogućavaju brže pronalaženje podataka
6. Opis šeme i fizičke strukture baze podataka putem jezika pohranjenih u tabelama. Jedna od najbitnijih stvari u pogledu
podataka i mehanizama SUBP (formiranje baze podataka), performanse baze podataka jeste kreiranje efikasnih indeksa.
7. Punjenje baze podataka podacima, Neophodnost kreiranja nekog indeksa se bazira na monitoringu
8. Testiranje i izvršenja SQL upita. Indekse je potrebno kreirati nad velikim
9. Podešavanje performansi. tabelama i to tako da podržavaju najčešće izvršavane upite.
Fizičko projektovanje baza podataka: Upiti koji pristupaju 25% ili manjem procentu redova (torki), su
dobri kandidati za opravdavanje formiranja indeksa.
Realni sistemi  Konceptualna šema Implementaciona
šema  Interna šema Indeksi se kreiraju nad kolonama koje se najčešče referenciraju
prilikom izvršavanja upita. Redosled kolona u indeksu je
Administrator BP mora biti sposoban da transformiše logički izuzetno važan. Jedna tabela može imati nekoliko indeksa.
model podataka u fizičku implementaciju baze podataka.
Indeksi najčešće obuhvataju:
Da bi implementacija bila uspešna administrator mora dobro
poznavati okruženje u kojem će se baza podataka realizovati –Kandidate za ključeve osim brzine- ovakvi unique indeksi
(SUBP), tako i karakteristike fizičkih struktura podataka, poput: obezbeđuju i jedinstvenost vrednosti kandidata za ključ.

 prostora baze podataka, –Strane ključeve često i sam SUBP zahteva kreiranje indeksa
 različitih vrsta organizacije datoteka i metoda pristupa, nad ovim kolonama
 tehnika particionisanja i klasterizovanja, – Kolone za sortiranje- upiti koji koriste JOIN, ORDER BY, GROUP
 metoda denormalizacije itd. BY, UNION i DISTINCT mogu naterati SUBP da sortira
1.Organizovanje prostora baze podataka međurezultate ili krajnji rezultat.

Planiranje prostora potrebnog za smeštaj podataka: veličina i Vrste indeksa:


struktura prostora.  unique ili nonunique
Potreban prostor se procenjuje s obzirom na očekivani broj i  clustering ili nonclustering.
veličinu torki u tabelama koje će sadržati baza podataka, prostor Tehnike indeksiranja: indeks može biti struktuiran kao
potreban pomoćnim strukturama podataka i metapodacima.
 –B stablo (B tree),
Fizička struktura koja čuva podatke se naziva tablespace.  –Bitmap ili
Fizička implementacija baze podataka se sastoji od jednog ili  –Hashing indeks (ne podržavaju svi SUBP).
više tablespaceova. U SQL Server terminologiji ekvivalent B stablo indeksi (B Tree)- Osnovna tehnika indeksiranja.
tablespacea je file .
U korenu stabla se nalazi jedan čvor koji se dalje razgranjuje po
U jednom tablespace u se može nalaziti više tabela, ali se isto nivoima. Na svakom narednom nivou, postoje podčvorovi. Svaki čvor
tako podaci jedne tabele mogu raspodeliti na više ima maks. dva podčvora. Svaki čvor ima svoj set vrednosti koji se koristi
tablespaceova, kada govorimo o particionisanju tabele. kao pokazatelj kojim putem treba tražiti željeni podatak na disku.
Ukoliko je tražena vrednost veća od vrednosti čvora pristupa se
Tablespace ovi se mogu grupisati u logičke celine što desnom podčvoru, dok se u slučaju manje vrednosti grananje pomera
omogućava definisanje iste strategije administriranja. To se kod levo dole. SUBP ovaj postupak uvek počinje od osnovnog čvora i,
SQL Servera naziva filegroups . naprethodno opisani način, prati pokazivače (pointere) sve dok ne nađe
ključnu vrednost. Na kraju se dobija pointer koji pokazuje na fizičku
Ukoliko server baze podataka raspolaže sa više eksternih lokaciju podatka na disku. Krajni korak je pristup tim podacima .
memorija, ovi Tablespace ovi se mogu rasporediti na razl.
Particionisani B stablo indeksi -Naročito su pogodni za velike tabele:
eksterne memorije. Pravilnom raspodelom tabela na različite
dodavanje nove torke će zahtevati izmenu samo jedne particije, a ne
eksterne memorije može se pospešiti performantnost.
kompletnog indeksa.Moguće je imati particionisani indeks nad tabelom
Određivanje tipa prostora baze podataka: koja nije particionisana, kao što se može kreirati neparticionisan
(običan) indeks nad tabelom koja je particionisana.Ukoliko se kreira
–Prostorom baze podataka SUBP može upravljati samostalno ili indeks nad particionisanom tabelom, a pri tome se ne navede filegroup
u saradnji sa operativnim sistemom (SQL Server). za smeštanje indeksa , indeks se particioniše na isti način kao i
pripadajuća tabela.
20. Postupci za poboIjšanje eksploatacionih Tehnike indeksiranja: indeks može biti struktuiran kao
performansi baze podataka.  –B-stablo (B-tree),
 –Bitmap ili
Sa tačke gledišta performantnosti izuzetno je značajan kapacitet  –Hashing indeks (ne podržavaju svi SUBP).
operativne memorije i buffer-a, jer ovo omogućuje da se smanji
broj I/O operacija na disku koje su najsporije karika u lancu. B-stablo indeksi (B Tree)-Osnovna tehnika indeksiranja.
Indeksiranje ili denormalizacija mogu mnogo više doprineti Varijante: osnovno B stablo, B* stablo, B stablo i B stablo
bržem izvršavanju nekih upita od samog uvećavanja kapaciteta
RAM-a. B-stablo indeksi su pogodni za traženje slučajno odabranog
sloga, ali ne i za traženje logički narednog sloga (redoslednu
Dizajniranje indeksa obradu).
Indeksi su pomoćne strukture podataka koje smanjuju broj I/O Denormalizacija šeme baze podataka
operacija i time omogućavaju brže pronalaženje podataka
pohranjenih u tabelama. Jedna od najbitnijih stvari u pogledu Denormalizacija je obrnut proces od normalizacije: ona uvodi u
performanse baze podataka jeste kreiranje efikasnih indeksa. bazu redundantnost podataka. Dovodi do ubrzanja
pretraživanja što postiže na račun integriteta podataka.
Pri kreiranju indeksa treba naći pravu meru u pogledu broja
indeksa i njihovom tačnom definisanju. Prilikom implementacije denormalizacije, ukoliko postoji
dovoljno prostora na disku, mogu se kreirati dva seta tabela:
Odluka o neophodnost kreiranja nekog indeksa u većini prvi u kome su tabele normalizovane, i drugi gde su tabele
slučajeva se bazira na monitoringu izvršenja SQL upita. denormalizovane.
Indekse je potrebno kreirati, pre svega, nad velikim tabelama i Ukoliko ne postoji dovoljno prostora za ovakvu implementaciju,
to tako da podržavaju najčešće izvršavane upite. implementiraju se samo denormalizovane tabele koje se
Upiti koji pristupaju 25% ili manjem procentu redova (torki), su održavaju programski (putem trigera ili aplikativnih rutina).
dobri kandidati za opravdavanje formiranja indeksa. Standardni načini primene denormalizacije se tiču:
Dobro je koristiti alate koje pruža SUBP da bi se odredila  –Prejoined tabela
efikasnost definisanih indeksa (opcije poput SHOW PLAN ili  –Report tabela
EXPLAIN, pokazuju da li se pojedini indeksi koriste tokom  –Mirror tabela
izvršavanja upita).  –Podeljenih tabela
 –Kombinovanih tabela
Indeksi se kreiraju nad kolonama koje se najčešče referenciraju  –Redundantnih kolona
prilikom izvršavanja upita.  –Izvedenih podataka
Redosled kolona u indeksu je izuzetno važan.  –Hijerarhija

Jedna tabela može imati nekoliko indeksa (ali se ne preporučuje


previše, barem ne kod transakcionih BP). 21.Distribuirane baze podataka i distribuirana
Indeksi najčešće obuhvataju:
obrada.
Distribuirana baza podataka predst. takvu bazu podat. u kojoj
 –Kandidate za ključeve –
su podaci fizički smešteni na najmanje dva servera baze
 –Strane ključeve –
podataka.
 –Kolone za sortiranje
Posledice ove definicije distribuirane baze podataka su:
Indeksi se moraju osvežavati svaki put kada se podaci u tabeli
dodaju, modifikuju ili brišu. –Bez obzira što su delovi distribuirane baze podataka fizički
raspodeljeni na više servera, reč je o jednoj bazi podataka, što
Neke od stvari koje treba razmotriti prilikom proračunavanja
znači da ona u logičkom smislu, predstavlja jedinstvenu celinu.
korisnosti nekog indeksa, su:
–Preduslov za formiranje i korišćenje distribuirane baze
 –dopunsko (procesorsko) vreme ažuriranja indeksa pri
podataka je da svi serveri baze podataka, koji participiraju u
ažuriranju podataka, naročito kod masovnih ažuriranja (npr.
distribuciji, moraju biti povezani komunikacionom mrežom.
BULK INSERT),
 –dopunski prostor na disku za skladištenje indeksa, Gl. razlog za izgradnju distribuiranog IS i distribuirane BP je da
 –dopunske datoteke koje skladište indekse mogu izazvati se na odgov. način obezbedi podrška informacionih zahteva
sistemske probleme ukoliko se prevaziđe broj datoteka koji korisnika realnog sistema, čije poslovanje obuhvata šire
istovremeno mogu biti otvoreni. geografsko područje.U takvoj situaciji se očekuje da distribuirani
IS, u odnosu na centralizovani, omogući:
Vrste indeksa:
 –Višu raspoloživost
 –unique ili nonunique
 –Bolje performanse
 –clustering ili nonclustering.
Ostale prednosti distribuiranog koncepta baze podataka:
 Lokalna autonomija podataka, upravljanja i kontrole.
 Veći kapacitet i postupni rast. •sinhrona replikacija koja se realizuje dvofaznim protokolom i
obezbeđuje permanentnu konzistentnost svih kopija podataka
Distribuirani IS, kao i distribuirana baza podat. je povezana i sa:
•asinhrona replikacija je metod kojim se prvo ažuriraju podaci
 Većim troškovima izgradnje i održavanja
na centralnom serveru da bi nakon toga bili ažurirani podaci na
 Složenijim administriranjem
ciljnim serverima.
Distribuirana baza podataka u opštem slučaju, može biti
Scenariji replikacije: disiminacija, konsolidacija i višestruka
organizovana kao homogena ili kao heterogena .
replikacija.
Distribuirana BP je homogena ako je, pri njenoj realizaciji,
upotrebljen samo jedan SUBP, dok se heterogenom smatra
ukoliko su za njenu podšrku upotrebljeni različiti SUBP. 22.Metodološki aspekti projektovanja distribuiranih
baza podataka.
Pojmovi lokalnog i globalnog nivoa upotrebe podataka:
U cilju projektovanja distribucije IS, potrebno je, pored
–Lokalna transakcija je transakcija koja se u potpunosti izvršava aktivnosti koje se inače sprovode pri projektovanju inf. sistema,
nad delom BP koji je smešten na tačno jedan server BP. obaviti i sledeće zadatke:
–Globalna (distribuirana) transakcija je transakcija koja se  sprovesti analizu opravdanosti realizacije distribuiranog
izvršava nad delovima BP smeštenim na najmanje dva servera informacionog sistema
BP.  identifikovati tipove lokacija distribuiranog IS
–Lokalni upit je upit koji se realizuje putem lokalne transakcije.  oblikovati rešenje hardversko-softverske konfiguracije
distribuiranog IS i
–Globalni (distribuirani) upit je upit koji se realizuje putem  isprojektovati distribuciju IS.
globalne transakcije.
Zadatak analize opravdanosti realizacije distribuiranog IS je da
–Lokalno ažuriranje dela baze podataka je ažuriranje koje se pruži odgovor na pitanje da li realni sistem, sa stanovišta ciljeva i
sprovodi putem lokalne transakcije. organizacije poslovanja, uopšte ima, i u kojoj meri, potrebe za
–Globalno (distribuirano) ažuriranje dela baze podataka je uvođenjem distribuiranog IS i kakve su mogućnosti za uvođenje
ažuriranje koje se sprovodi putem globalne transakcije. takvog sistema u upotrebu.
U tom smislu, bitno je i da li se mogu, i u kom roku, obezbediti
Primena koncepcije distribuiranih baza podataka i tehničko-tehnološki, organizacioni, kadrovski i finansijski
distribuiranih IS zahteva da se za realizaciju takvog IS: preduslovi za uvođenje distribuiranog inf. sistema i koji su
očekivani efekti njegove primene.
-Predvidi upotreba SUBP koji u potpunosti podržava izgradnjui
korišćenje distribuiranih baza podataka. Ukoliko su rezultati analize pozitivni i usvojeni od strane
menadžmenta pristupa se ostalim aktivnostima.
-predvidi izvođenje aktivnosti projektovanja distribucije
sistema, koja uopšte ne postoji u slučaju razvoja centralizovanih Aktivnost identifikacije tipova lokacija distribuiranog IS se
sistema. bazira na pretpostavci da u realnom sistemu postoji više
lokacija, na kojima se izvode pretežno isti procesi. Jedan tip
-Sprovedu organizaciono-tehničke mere koje će obezbediti lokacije reprezentuje sve lokacije u realnom sistemu na kojima
uspešno uvođenje u upotrebu, eksploataciju i održavanje se izvode isti, ili gotovo isti procesi.
distribuiranog IS.
Svrha grupisanja istih ili sličnih lokacija po tipovima je da se
Distribuirani SUBP imaju sve funkcionalnosti i mehanizme postupci projektovanja distribucije IS generalizuju
standardnih SUBP, ali pored toga omogućuju i: (pojednostave).
 -postojanje logički povezanih podataka na različitim U slučaju neke banke tipovi lokacija bi mogli biti: Centrala,
geografskim lokacijama (distribuirani rečnik podataka); Filijala i Ekspozitura,
 -particionisanje podataka -razdvajanje na fragmente;
 -replikaciju podataka (kopiranje podataka i njihovih Projektovanje hardversko-softverske konfiguracije IS se,
razdvojenih fragmenata). generalno, odnosi na:

Podaci u distribuiranom sistemu mogu biti particionisani •oblikovanje idejnog rešenja hardverske i komunikacione
(fragmentirani) ili replicirani u fizičkoj memoriji. infrastrukture sistema i

Replikacija predstavlja skup tehnologija za kopiranje i •definisanje konfiguracije sistemskog softvera (operativnih sis-
distribuiranje podataka i objekata baze podataka između tema, SUBP, kao i programskih paketa za razvoj aplikacija IS).
različitih instanci baza podataka. Potrebno je:
Jedan objekat (cela tabela ili njen deo) može imati više kopija na •za svaki tip lokacije specificirati da li, i u kom broju, postoje
više različitih lokacija. raču-nari koji imaju ulogu servera baze podataka i servera
Dve fundamentalne kategorije replikacije su: aplikacija.
•uvesti šemu imenovanja servera
•za svaku lokaciju u sistemu, saglasno specifikaciji konfiguracije
po tipu lokacije, naznačiti i imenovati servere.

Postupci projektovanja distribucije informacionog sistema se


realizuju u sledećim fazama:
•Specifikacija distribucije aplikacija po tipovima lokacija
Lista korisničkih aplikacija (aplikacija IS) koje će na pojedinim
aplika-tivnim serverima biti instalisane -Distribuciona šema
aplikacija.
•Specifikacija distribucije baze podataka po tipovima lokacija i
konkretnim lokacijama

Opis dela šeme baze podataka koji se na nekom tipu lokacije,


odnosno konkretnoj lokaciji implementira -Distribuciona šema
baze podataka.
•Specifikacija replikacije podataka u distribuiranoj bazi pod.

Za svaki tip lokacije i konkretnu lokaciju definišu se sve


replikacione kopije, kao i načini njihovog ažuriranja -
Replikaciona šema baze podataka.

23. Konceptualno projektovanje distribucione


Seme baze podataka.

Cilj projektovanja konceptualne distribucione šeme baze


podataka je izrada specifikacije u kojoj će se za svaki tip
lokacije prikazati nazivi potrebnih tipova s potrebnim
skupom obeležja i ulogama na toj lokaciji.

Da bi se formirala matrica ER tipovi/Tipovi lokacija


neophodna je matrica Korisničke aplikacije/Tipovi lokacija
(koju sadrži Distribuciona šema aplikacija) i specifikacije
eksternih šema ovih aplikacija.

Tip lokacije treba da obuhvati sve one ER tipove, koji se


pojavljuju u eksternoj šemi makar makar jedne korisničke
aplikacije koja se na tom tipu lokacije koristi.

24. Implementaciono projektovanje distribucione


šeme baze podataka.

You might also like