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

IMRE PETKOVI

BAZE PODATAKA


SKRIPTA





























SUBOTICA, 2004.

1
SADRAJ

1. UVOD..................................................................................................................................................................... 3

2. OBRADA PODATAKA....................................................................................................................................... 5
2.1. POJMOVI I SHVATANJA ................................................................................................................................... 5
2.2. O SAZNANJU................................................................................................................................................... 8
2.1.1. Proces sticanja saznanja..................................................................................................................... 8
2.1.2. Podatak, informacija, znanje ............................................................................................................ 10
2.1.3. Sredine za prenos saznanja............................................................................................................... 11
2.3. NAINI OBRADE SAZNANJA.......................................................................................................................... 12
2.4. INFORMACIONI SISTEM................................................................................................................................. 15
2.5. KONCEPCIJA BAZE PODATAKA ..................................................................................................................... 16

3. MODELI PODATAKA................................................................................................................................... 17
3.1. FORMALNO-MATEMATIKI PRISTUP MODELIMA PODATAKA.......................................................................... 17
3.2. RAZVOJ MODELA PODATAKA........................................................................................................................... 21
3.3. SEMANTIKO-PRAKTIKI PRISTUP MODELIMA PODATAKA............................................................................. 22

4. MODEL ENTITEA I POVEZNIKA ER MODEL PODATAKA............................................................. 26
4.1. STRUKTURALNA KOMPONENTA MODELA ENTITETA I POVEZNIKA............................................................... 26
4.1.1. Entitet, klasa entiteta i tip entiteta.................................................................................................... 26
4.1.2. Obeleje, vrednost obeleja i domen................................................................................................. 27
4.1.3. Poveznik i tip poveznika.................................................................................................................... 29
4.1.4. Intenzija ER modela i njeno grafiko predstavljanje...................................................................... 30
4.1.5. Ekstenzija ER modela i njeno grafiko predstavljanje.................................................................... 32
4.2. INTEGRITETNA KOMPONENTA ER MODELA ................................................................................................ 32
4.2.1. Kardinalnost tipa poveznika ............................................................................................................. 33
Semantika kardinaliteta tipa poveznika................................................................................................................. 34
Rekurzivne veze ...................................................................................................................................................... 42
Slabi tip entiteta...................................................................................................................................................... 42
Identifikaciono zavisan tip entiteta ........................................................................................................................ 43
4.2.2. Integritet domena .............................................................................................................................. 44
4.3. OPERACIJSKA KOMPONENTA MODELA ENTITETA I POVEZNIKA ................................................................... 44
4.3.1. Operacije auriranja baze podataka ................................................................................................ 45
4.4. PROIRENJA MODELA ENTITETA I POVEZNIKA ............................................................................................. 51
4.5. IZRADA MODELA ENTITETA I POVEZNIKA (ER MODELA) ............................................................................ 55

5. RELACIONI MODEL PODATAKA............................................................................................................... 58
5.1. STRUKTURALNA KOMPONENTA RELACIONOG MODELA............................................................................... 58
5.2. INTEGRITETNA KOMPONENTA RELACIONOG MODELA ................................................................................. 59
5.3. OPERACIJSKA KOMPONENTA RELACIONOG MODELA PODATAKA................................................................. 63
5.4. REALIZACIJA RELACIONOG MODELA............................................................................................................ 66

6. NORMALIZACIJA............................................................................................................................................ 67
6.1. NENORMALIZOVANA EMA RELACIJE............................................................................................................... 69
6.2. PRVA NORMALNA FORMA...................................................................................................................................... 69
6.3. DRUGA NORMALNA FORMA.................................................................................................................................. 70
6.4. TREA NORMALNA FORMA................................................................................................................................... 72

2
7. PREVOENJE ER MODELA U RELACIONI MODEL............................................................................ 74
7.1. PREVOENJE ENTITETA................................................................................................................................ 74
7.2. PREVOENJE POVEZNIKA............................................................................................................................. 77
7.2.1. Poveznici sa kardinalnou 1:1 ........................................................................................................ 77
7.2.2. Poveznici sa kardinalnou 1:N........................................................................................................ 79
7.2.3. Poveznici sa kardinalnou M:N...................................................................................................... 81
7.2.4. Rekurzivni tip poveznika ................................................................................................................... 82
7.3. POSEBNA PRAVILA INTEGRITETA ZA SAUVANJE SEMANTIKE ER MODELA ................................................ 82
7.3.1. Posebna pravila integriteta vezana za entitete................................................................................. 83
7.3.2. Posebna pravila integriteta za veze sa kardinalnou 1:1............................................................... 83
7.3.3. Posebna pravila integriteta za veze sa kardinalnou 1:N.............................................................. 84
7.3.4. Posebna pravila integriteta za veze sa kardinalnou M:N............................................................. 85

8. SQL JEZIK ZA UPRAVLJANJE RELACIONIM BAZAMA PODATAKA.......................................... 87
8.1. JEZIK ZA DEFINISANJE PODATAKA (DDL).................................................................................................... 88
8.2. JEZIK ZA MANIPULISANJE PODACIMA (DML) .................................................................................. 91
8.2.1. Naredbe DML-a za unos podataka................................................................................................... 91
8.2.2. Naredba DML-a za modifikaciju podataka...................................................................................... 92
8.2.3. Naredba DML-a za brisanje podataka............................................................................................. 94
8.3. NAREDBA ZA UPIT PODATAKA...................................................................................................................... 95
8.3.1. SELECT klauzula .............................................................................................................................. 96
8.3.2. FROM klauzula ................................................................................................................................. 99
8.3.3. WHERE klauzula............................................................................................................................. 100
8.3.4. GROUP BY klauzula....................................................................................................................... 101
8.3.5. HAVING klauzula............................................................................................................................ 102
8.3.6. ORDER BY klauzula........................................................................................................................ 102
8.3.7. SAVE TO TEMP klauzula ............................................................................................................... 103
8.3.8. Unutranji ili ugraeni SELECT-i .................................................................................................. 104
8.4. JEZIK ZA UPRAVLJANJE PODACIMA (DCL) ................................................................................................ 109

9. ISPITNA PITANJA.......................................................................................................................................... 111

10. LITERATURA............................................................................................................................................. 119

3
1. UVOD

Danas je ve opte prihvaen stav, da je svet sastavljen iz tri komponente: materije,
energije i informacije. Takav prilaz svetu potvrdjuju kako ivi organizmi, tako i organizovani
sistemi koje je stvorio ovek. Bez informacija organizovani sistemi ne mogu opstati. Dananji
sistemi, medjutim, pored toga to su organizovani, i odravaju svoju organizovanost. Objanjenje
takvog ponaanja sistema lei u neprekidnom izvlaenju informacija iz spoljanjeg sveta o
pojavama i procesima koji se u njemu odigravaju. Stabilnost sistema, koja ima presudan znaaj
za ocenu radne sposobnosti sistema, se procenjuje razmatranjem dinamike procesa koji se
odvijaju u sistemima. (A.J.Lerner).
Informacija se danas svugde u svetu smatra resursom koji igra kljunu ulogu u ivotu i
poslovanju organizacija svih vrsta i veliina. Strateki znaaj informacija priznaju svi savremeni
strunjaci. Vanost i neophodnost kao atributi uz pojam informacija istiu ulogu otkrivanja,
organizovanja, memorisanja i rukovanja saznanja (podataka informacija). Informacije se mogu
obezbediti i pomou raunara uz pomo softverskog produkta (proizvoda) koji se zove
informacioni sistem. Razvoj informacionog sistema je sloen i mukotrpan poduhvat koji pored
zavidnog nivoa strunosti na polju informatike trai i druge sposobnosti: otvorenost prema
problemima drugih, agilnost i istrajnost u otkrivanju i reavanju problema i, svakako,
komunikativnost. Savremeni informacioni sistemi objekte posmatranja (injenice koje treba
zapisivati i pratiti njihovu sudbinu), njihove osobine i sve bitne dogaaje formulisane pomou
podataka pohranjuju i crpe iz baza podataka. Upravo e to biti i predmet diskusije, odnosno
upoznavanja u ovim belekama. Predmet Baze podataka se osamostalio zahvaljujui stavu da
predstavlja vanu i samostalnu celinu u okviru projektovanja i realizacije informacionih sistema.
No, ova oblast se samostalno nikada ne obrauje u praksi, jer bi to bila l'art pour l'art, tj.
umetnost radi umetnosti. Projektovanje baze podataka predstavlja jednu od osnovnih aktivnosti
projektovanja informacionog sistema, koja se svugde u svetu, na fakultetima i viim kolama
nezavisno izuava u okviru samostalnog predmeta. Ove beleke, meutim imaju zahtevniji cilj,
jer pored projektovanja baza podataka obuhvataju i realizaciju baza podataka, kao i savremeni
nain obrade podataka pomou relacionih baza podataka.
Materijal je prvenstveno pripremljen za studente na drugoj godini Vie tehnike kole
Odseka za informatiku koji sluaju predmet Baze podataka u treem semestru sa fondom
asova 2+2. Ovaj fond asova ograniava koliinu gradiva, koje se moe izlagati u okviru
raspoloivog vremena. Shodno tome, beleke sadre filtriran materijal iz ogromnog opusa
4
projektovanja i rukovanja bazama podataka. Primarni cilj predmeta, pa prema tome i ovog
pomagala je prikaz prilaza i pricipa projektovanja, realizacije i obrade podataka pomou baza
podataka. Izloena saznanja u ovom uilu su preteno teoretskog karaktera. Na vebama studenti
reavaju konkretne primere i zadatke na konkretnim tehnikim sredstvima, a na osnovu izloenih
metoda sa predavanja i instrukcija dobijenih na asovima malobrojnih tablinih, preteno
praktinih vebi.
Na kraju bih eleo izneti svoje subjektivno miljenje buduim informatiarima da su samo
u tom sluaju birali odgovarajui smer (uu struku) za sebe, ako im je ua oblast intersovanja
ujedno i svakidanji hobi. I jo neto na kraju, eleo bih da im informatika ne bude samo
zanimanje, ve i ivotni poziv!
U belekama sigurno postoje manje i/ili vee greke. Broj greaka se smanjuje sa brojem
pregleda (itanja), ali se u potpunosti, za ovakvo kratko vreme, sve greke ne mogu eliminisati.
Sve informacije u vezi poboljanja kvaliteta materijala su dobrodole.


mr Imre Petkovi, dipl. el. ing.
peti@vts.su.ac.yu
Subotica, 19. 08. 2003.

5
2. OBRADA PODATAKA

2.1. POJMOVI I SHVATANJA

Danas je korienje raunara za izvravanje raznoraznih poslova svakako neminovnost, a
pored toga je postalo i moda. Ko nema raunar, ili ne zna koristiti raunar, nije vie u
savremenom trendu. To je sasvim logino i prihvatljivo. Postoje, medjutim, razna pogrena
shvatanja u vezi informatike i raunarske tehnike koja proistiu uglavnom iz neznanja. Danas
naime najvei broj korisnika poetnika raunara smatra sebe informatiarem, a kao potvrdu za
to navodi koliko pisama je napisao pomou softvera Word2000, koliko crtea je sastavio u
Paintbrush Picture okruenju i koliko je slao i primao E-mail-ova u zadnjih mesec dana. Sve se
vie ini da su se pojmovi cilj, nain i sredstva za realizaciju (informacionog) sistema, odnosno
obrade podataka izmeali: ako naime neki informacioni sistem (aplikacija) sporo radi ili ne radi
besprekorno, kupuju snaniju mainu i/ili nabavljaju najnovije verzije raznih softvera, umesto da
se okrenu samoj aplikaciji, tj. obradi podataka, odnosno da analiziraju reenje zadatka ili
problema (moda ba u tom grmu lei zec!).
Treba naglasiti injenicu da strunjak koji je vet i iskusan u korienju raunara i raznih
softvera nije ujedno (ili automatski) i informatiar! Nenadmani u korienju raunara i
raunarskog softvera se ne mogu smatrati informatiarem iz sledeeg prostog razloga: problemi
u informatici nisu (samo ili pre svega) tehnike prirode! Primena raunara, znai, nije ujedno i
informatika. U informatici najvei problem predstavljaju brojnost i kompleksnost inilaca ili
elemenata informacionih sistema.
Pojam informatike je definisan na nekoliko naina do danas. Ovde emo navesti jedan
saeti, krai i jedan opirniji opis pojma informatike. Po opirnijoj definiciji informatika se bavi
raznim modalitetima (nainima) strujanja, prenosa informacija, metodima njene obrade i
korienja, njenim delovanjima na produktivnost i efektivnost (efikasnost) njenom
primenom za praenje, kontrolu i upravljanje, kao i ulogom informacija u razvoju
privrede i drutva
1
. Po ovom opisu informatika predstavlja jako opiran pojam: obuhvata
integraciju informacija (podataka) u sistem, informatika sredstva, naine obrade informacija od
trenutka nastanka informacija (tanije podataka) do njene isporuke do krajnjeg korisnika, pa sve
do raznoraznih uticaja informacija na privredne i drutvene subjekte. Po ovom shvatanju
informatika predstavlja interdisciplinarni pojam, koja u sebi sadri telekomunikacije, raunarsku

1
Izvor: [20.], strana: 8.
6
tehniku, primenu raunarske tehnike, primenu mikroelektronike i robotike, organizaciju,
upravljanje, kao i odgovarajue oblasti privrednih i drutvenih nauka. Ta definicija je preopirna
za nae potrebe.
Po saetoj definiciji informatika je nauka za upoznavanje, efikasno i svrsishodno
organizovanje, sredjivanje i obradu saznanja (podataka ili informacija). Informatiarem se
moe smatrati strunjak koji je vet u toj oblasti
2
.
Informatiar u procesu shvatanja, predstavljanja i obrade realnog sveta i njegovog
informatikog razradjivanja uvek treba da ima u vidu sledee tri sutine, kao i njihove
medjusobne veze:
1. objektivna stvarnost (realni sistem RS ),
2. slika stvarnosti na osnovu poznatih saznanja o njoj ( informacioni sistem IS ) i
3. skup sredstava (hardvera, softvera, lifeware-a i orgvera, tj. sistema sredstava SS ).
Tu se radi o tri sistema koji se delimino preklapaju, ali su u isto vreme i relativno
nezavisni (slika 2.1.). Te tri sutine moraju biti medjusobno uskladjene, odnosno moraju biti u
to veoj harmoniji. Taj stav se danas sve vie gubi iz vida. Dananji je trend da se kupuju to
snanije maine (raunari) i najnovije verzije softvera.
Sistem sredstava se moe prikazati i grafiki
3
, kao to se to nalazi na slici 2.2. Grafiki
prikaz dobro odslikava sintezu ili medjusobnu povezanost te etiri komponente sistema
sredstava.
Hardver (hardware) ine materijalni sadraji sistema sredstava: raunar sa svim ulaznim,
izlaznim i ulazno-izlaznim kao i uredjajima za prenos podataka na daljinu, dodatni uredjaji za
sakupljanje, prenos, predobradu, memorisanje i distribuciju podataka. Jednom reju hardver je
celokupno gvodje, ili sve to se moe opipati. Hardver raunara se intenzivno razvija. Nae
aplikacije koriste jedva nekoliko procenata ukupnog hardvera, no dananji softveri su jako

2
Izvor: [11.], strana: 35.
3
Izvor: [6.], strana:
Informacioni
sistem
IS
Realni sistem
RS
Sistem
sredstava
SS
Slika 2.1.
7
zahtevni prema performansama hardvera i hardver se samo upravo zbog njih i razvija. Prema
dananjim procenama razvoj hardvera prednjai oko 10-15 godina ispred razvoja softvera.
Softver obuhvata sve programsko-algoritamske sadraje: operativni(e) sistem(e), uslune
programe, jezike procesore (programske jezike), sisteme za rukovanje bazama podataka, editore
tekstova i tabela kao i raznorazne softverske produkte za reavanje optih problema na svim
moguim poljima ljudske aktivnosti. Razvoj softvera je na prvi pogled bri i oigledniji od
razvoja hardvera u zadnje vreme. Primena softvera, medjutim, kaska za njegovim razvojem
(razvojem hardvera) ak 20 godina po nekim procenama. Neki softveri za rukovanje bazama
podataka naime toliko su kompleksni, da ih laici skoro ni pokrenuti ne znaju, a i najsposobniji
projektanti i programeri mogu upoznati i razumno (u praksi) primeniti svega nekoliko procenata
njihovih mogunosti.
Lifeware sistema sredstava predstavlja kadrove neophodne za izvravanje poslova na svim
segmentima u toku ivotnog ciklusa informacionog sistema. Kadrovi su danas dobro
pripremljeni za korienje raunara i najnovijih softvera, ali imaju pogrean stav (i shvatanja)
prema razvoju informacionih sistema.
Orgver sistema sredstava predstavlja njegovo organizaciono ustrojstvo. Povezuje
prethodno opisane tri komponente u organizacionu strukturu sa ciljem da se ispune ciljevi
informacionog sistema zacrtani u zahtevima naruioca. Orgver je u stvari metod organizacije
saznanja.
U cilju besprekornog funkcionisanja informacionog sistema ili obrade podataka, sve etiri
komponente sistema sredstava moraju biti na visokom nivuo harmonije, odnosno medjusobno
dobro uskladjene i u potpunosti kompatibilne. Zapostavljanje bilo koje komponente rezultuje u
drastinom smanjenju efektivnosti informacionog sistema bez obzira na kvalitet i uskladjenost
ostale tri komponente.


S
O
F
T
W
A
R
E
HARDWARE
L
I
F
E
W
A
R
E
ORGWARE

Slika 2.2.
8
2.2. O SAZNANJU

Ljudsko bie neprekidno skuplja saznanja iz okolnog sveta pomou svojih ulnih organa.
Nepobitno je da i osmeh, prijatan miris i ukusno jelo moe biti jednoznano i vano saznanje,
informacija, no ipak se za komunikaciju izmedju ljudi najvie koristi jezik. Kao to emo kasnije
videti podatak je saznanje koje se moe protumaiti, ali koje jo nije protumaeno. Protumaeni
podatak, ako nosi novo saznanje za lice koje ga je protumailo, postae informacija.
U prirodnom govoru (jeziku) svaki prost iskaz (prosta reenica) ima subjekat i predikat. U
sluaju da fali subjekat ili predikat, on se podrazumeva, odnosno moe se zakljuiti na osnovu
prethodnih iskaza. Subjekat odredjuje o emu elimo neto izjaviti, a predikat sam iskaz u vezi
subjekta reenice.


2.1.1. Proces sticanja saznanja

Do samog sticanja saznanja moe se doi apsolviranjem sledea etiri koraka ili sledee
etiri aktivnosti:
1. opaanje (observation)
2. ulno primanje ili percepcija saznanja (perception),
3. umno primanje ili identifikacija sadraja saznanja shvatanje (comprehension) i
4. razumevanje (understanding).
U sluaju da se desi makar i jedna greka u prethodna etiri koraka ili izostane bilo koji
korak, do aktivnosti tumaenja saznanja ne moe doi.
Opaanje pretpostavlja prisustvo sredine, materije i/ili situacije koja ili koje nose saznanja
(ako ne sluam radio, ne mogu stei saznanje koje se prenosi preko radio talasa, ako ne itam
oglase u liftu, nikad neu saznati ko ta oglaava na taj nain).
Percepcija ukazuje na ulogu naih ulnih organa u procesu pretvaranja podataka u
informacije. Za hendikepirane ljude, preteno na polju sluha i vida, uslovi opaanja i percepcije,
odnosno stvaranja ili nastajanja informacija su oteani.
Identifikacija sadraja saznanja (shvatanje) se tee objanjava od percepcije, ali nam je
verovatno poznata situacija iz svakodnevnog ivota kad u pauzi za doruak grickajui kreker ili
sendvi, uz to itajui novine priupitamo naeg sagovornika: ta si ono rekao?. Percepcija
saznanja se oito odigrala, medjutim, identifikacija njegovog sadraja nije. Naa panja je bila
usmerena na vesti iz novina. U prvom trenutku kada shvatimo da nam se sagovornik obratio,
9
otpoinje rekonstrukcija percepcije, da bi, nakon neuspele rekonstrukcije sledilo gore
navedeno pitanje za ponavljanje sadraja izreene misli. Drugi karakteristian primer je obraun
struje: nikad u ivotu nisam imao u ruci obraunski list za potroenu elektrinu energiju sa kojeg
sam mogao saznati koliko za potroaa kota jedan kilovat-as elektrine energije! Taj podatak
nisam mogao izdejstvovati ni kada sam bio ef sektora Informatike u Elektrodistribuciji
SUBOTICA u Subotici! Cena jedinice elektrine energije se i tada, a i sad moe dobiti
agregiranjem (izraunavanjem) podataka sa obraunskog lista, ali to ni ja nisam nikada znao
kako! Primetimo da je fizika organizacija i prikazivanje saznanja bitno utiu na identifikaciju
saznanja: sutinska saznanja treba prikazati na upadljivim mestima i na nain koji se odmah, na
prvi pogled primeti.
Razumevanje saznanja predstavlja etvrti, zadnji korak pre njegovog protumaenja.
Saznanje se najee formulie u vidu vesti ili iskaza. Iskaz se moe shvatiti samo u tom sluaju
ako primaoc vesti razume svaku njenu re, tj. kad generator iskaza i primaoc govore istim
jezikom.
Protumaenje saznanja je u stvari povezivanje novodobijenog podatka ili iskaza sa ranijim
saznanjima. Ako ne postoje ranija saznanja sa kojima bi se mogao povezati podatak, informacija
naravno nee nastati. Nee se roditi informacija ni tada, ako se ve povezivanje jednom
dogodilo. Informacija nastaje u trenucima kada razmiljamo o samom sadraju podatka, kad
donosimo neki sud u vezi tog iskaza, kada pronadjemo mesto tog podatka u nekoj ili nekim
klasifikacijama, kada formiramo neku misao, kada formuliemo neki zakljuak.
Upravo iz prethodnih razloga na raunaru uvek smetamo samo podatke, koje posle, po
potrebi i obradimo. Informacija se radja samo u glavama ljudi, a obrada podataka na raunaru je
samo onda odgovarajua, ako obezbedjuje takve nizove podataka da ljudima olakava i ubrzava
proces njihovog protumaenja.


2.1.2. Podatak, informacija, znanje

Pojmovi kao to su podatak, informacija i znanje su objanjeni na vie mesta u strunoj
literaturi. Svugde u objanjenjima postoji semantika razlika izmedju podatka i informacije.
Najprostiji prilaz u objanjenju pojma podatak naglaava da je on zapis neke konkretne
injenice ili saznanja na proizvoljnom medijumu (papiru, magnetskom medijumu, itd.) nezavisno
od njegove dalje sudbine, tj. nezavisno od toga da li e biti upotrebljen za donoenje poslovnih
odluka i/ili upravljanje ili ne. Ako se podatak upotrebi za upravljanje, tj u procesu odluivanja,
10
on se transformie u informaciju. Zapis zadrava svojstvo podatka sve dok postoji verovatnoa
da e se na neki nain transformisati u informaciju, a posle gubi to svoje svojstvo
4
.
Takvo shvatanje pojma podatka i informacije u dananje doba ve ne moe da opstane.
Opteprihvaen je danas stav u vezi pojma podatka, da je on konkretizacija pojave (ili pojavnog
oblika) informacije, grupa simbola koja se moe obraditi na raunaru, ali sa suenijim znaenjem
i manjim znaajem od informacije. Informacija je bogatija u semantikom smislu od podatka.
Podatak je neprotumaeno saznanje ili neprotumaena informacija koja se moe protumaiti.
Informacija je, prema tome protumaeni podatak. Podaci nose u sebi informaciju, ali koliina
informacionog sadraja podatka je takodje relativan pojam, jer u velikoj meri zavisi od primaoca
podatka (informacija). Isti podatak, naime za jednog primaoca ostaje samo podatak (znai on ga
nije mogao protumaiti ili ve poseduje taj podatak), a za drugog primaoca postaje informacija
(ako za njega predstavlja novo saznanje).

Podatak je, znai, takav neprotumaeni niz simbola ili znakova koji opisuje
karakteristike (obeleja) stanja objekata ili uopte promena u realnom sistemu sa ciljem
kasnijeg korienja i/ili obrade, a obuhvata se u formi pogodnoj za memorisanje i prenos.

Istraivai koji se bave teorijom informacija se ni do dananjeg dana nisu mogli da se
usaglase u vezi precizne definicije informacije. O tome svedoe sledee formulacije definicije
informacije.
B. Langefors ima sledei stav:
Informacijom se smatra svako znanje, poruka koja se moe iskoristiti za neko
dokazivanje ili omoguuje donoenje odluka.
5
.

U Websters Dictionary-ju se takodje nalazi definicija informacije:
Informacija je znanje, inteligencija, vest, odnosno njihova predaja ili primanje.

Interesantnu formulaciju je dao H. Rittel, norveki istraiva:
Informacija je takva aktivnost koja rezultuje u izmeni neijeg znanja.
6
.

Novi momenat u sledeoj definiciji je taj da se informacijom smatra sredjeni niz ve
poznatih ili postojeih podataka:

4
Izvor: [6.], strana:
5
Izvor: [22.], strana: 13.
6
Izvor: [22.], strana: 13.
11
Informacija nije nita drugo, ve nesredjeni niz podataka ili injenica dovedenih
pomou izvesnih procesa na upotrebljivu formu.
7
.

Slino miljenje o pojmu informacije ima i E. Noszkay:
Informacija nije generalno novo saznanje, nego takvo novo odnosno otkriveno
saznanje koje nastaje na osnovu sistematizacije, uporedjivanja, analize i vrednovanja ve
poznatih saznanja (podataka, injenica)
8
.

Informacija je protumaeni podatak, iskaz, saznanje, saoptenje, vest, koja moe da
poslui za smanjenje neizvesnosti, za donoenje odluka, za upravljanje i uvek predstavlja
kvalitet vie od podatka i ostalih gore navedenih pojmova, jer angauje svog primaoca: za
razmiljanje, za neki izbor, za neku aktivnost itd.

Saznanja o realnom svetu vezana za njegove pojave i procese kroz iskustva i uenje
omoguuju formulisanje zakljuaka, analizu uzrono-posledinih veza, apstrahiranje izvlaenje
bitnih crta atributa, kao i sposobnost sticanja novih saznanja i oznaavaju sistem na viem
nivou apstarkcije koji se naziva znanjem.
Znanje je, prema tome, pojmovna slika realnosti u svesti oveka o stvarima,
objektima, injenicama, pojavama i procesima zajedno sa svim njihovim medjusobnim i
uzrono-posledinim vezama.


2.1.3. Sredine za prenos saznanja

Prvi korak u procesu sticanja saznanja je opaanje, a ono je uslovljeno prisustvom sredine
koja (pre)nosi predmetno saznanje koje elimo usvojiti. Sredine za prenos saznanja odreuju nai
ulni organi. Tako sredina za prenos saznanja moe biti slika, mimika, pokret, zvuk, ukus, miris,
njihova proizvoljna kombinacija itd., i naravno, najea sredina za prenos saznanja: jezik.
ovek najee koristi prostu (ili prostoproirenu) potvrdnu reenicu:
Zgrada Vojvoanske banke je bela.
Svaka potpuna reenica se sastoji od dvostrukog subjekta i dvostrukog predikata
(prethodna reenica nije potpuna u tom pogledu, potpuna reenica bi glasila: Boja zgrade

7
J Frates u [22.], strana: 13.
8
Izvor: [20.], strana: 9.
12
Vojvoanske banke je bela.)
9
. Dvostruki subjekat se sastoji iz dva dela: prvi oznaava najblii
rod (genus proximum), a drugi specifinu razliku (znak raspoznavanja differentia specifica).
esto se prvi deo subjekta zove generiki, a drugi specifini subjekat. U naem primeru je
najblii rod Zgrada, a specifini razlika ili znak razlikovanja Vojvoanska banka. Delovi
subjekta ne moraju uvek da se pojavljuju eksplicitno u reenici. Na primer u sluaju nedostatka
znaka razlikovanja reenica glasi: Zgrada je bela (Kad nema najblieg roda reenicaima oblik:
A Vojvoanske banke je bela). U tim sluajevima se podrazumevaju (na osnovu prethodnih
iskaza ili reenica) i kaemo da su implicitni.
Slino se moe rezonovati u vezi (dvostrukog) predikata. Generiki predikat (genus
proximum) je Boja (u prvobitnoj reenici taj deo predikata nije prisutan u reenici, tj. On je
implicitni predikat), a specifini predikat je bela.
U reenicama prirodnog govora (jezika) prisutni su naravno i drugi mogui delovi
reenice, kao to su objekti, prilozi i pridevi. Njih moemo smatrati iskazima i svrstavati ih meu
generine i specifine predikate.
Izjave, odnosno reence mogu biti i znatno sloenije od gore navedenih prostih i proirenih
reenica. Kod sloenih i viestruko sloenih reenica, meutim, uvek je mogue izvriti podelu
na proste i prostoproirene reenice.
Vano je primetiti i naglasiti da je za proces sticanja saznanja neophodno da su prisutni sve
etiri dimenzije saznanja: generiki i specifini subjekat, a take i generiki i specifini predikat.
Ta injenica je predstavljala i predstavlja osnovu za izgradnju raznoraznih modela podataka, o
emu e biti vie rei u sledeem poglavlju.

2.3. NAINI OBRADE SAZNANJA

Saznanja se danas (ako izuzmemo multimediju, tj. grafiku, sliku, zvk, itd) obradjuju na dva
osnovna naina:
1. injenini (faktografski) nain obrade saznanja i
2. tekstualni nain obrade saznanja.
U vezi faktografskog naina obrade saznanja treba se malo vratiti nazad u istoriji. Stari
Grci su injenice koje treba zabeleiti zvali rekordima. Jo i danas se za skup bitnih saznanja u
vezi znaajnih injenica i/ili dogadjaja od opteg interesa koristi izraz rekord i to ne samo u
naem jeziku. Ista re se koristi u engleskom jeziku i za niz vezanih podataka na nekom raunu.

9
Izvor: [9], str. 15-16.
13
Rekordi (slogovi, zapisi) se o pojavama ili stvarima koji pripadaju istoj klasi stvari
smetaju u isti fajl (dosije ili registrator), tako da je jedna stavka je u stvari jedan rekord (slog).
Rekord (slog) se sastoji od polja, a za sadraj polja se koristi pojam ili izraz podatak.
injenini nain obrade saznanja se danas zove obrada podataka. Obrada podataka se
moe realizovati na dva naina:
1. klasinom organizacijom datoteka i
2. pomou baze podataka.
Klasina organizacija podataka, odnosno obrada zasnovana na podacima smetenih u
pojedine datoteke ne vodi rauna o realno postojeim vezama izmeu pojedinih podataka. Podaci
se smetaju viestruko (redundantnost), shodno pojedinim obradama, to dovodi do
nekonzistentnosti (nemogunosti istovremenog auriranja vrednosti nekog podatka, smetenih u
razliitim datotekama) Nema povezanosti izmedju datoteka, odnosno izmeu slogova razliitih
datoteka (unato tome, to u realnom svetu moda ta veza i egzistira). Fiziko smetanje
podataka fajla je najvanije kod ove vrste obrade podataka, o sadraju, smislu, znaaju i
znaenju podataka u fajlovima malo je ko brinuo.
Baza podataka je u stvari organizovani skup fajlova. Fajlovi (u terminologiji baza podataka
zovu se tabele) su meusobno povezani, zbog objektivno postojeih povezanosti podataka u
njima. Obrada podataka na osnovu baze podataka ne iskljuuje klasinu obradu datoteka ili
vertikalno kretanje u tabeli prilikom obrade, ali je prvenstveno transverzijalnog karaktera (vie je
krasi horizontalno kretanje izmedju tabela).
Tekstualni nain obrade saznanja se esto mea sa pojmovima obrada teksta i editiranje
teksta. Editor teksta ne moe da se koristi za rukovanje podacima i za stvaranje novih podataka.
Kao to znamo tekstualni fajlovi nemaju stavke rekorde, editor ne poznaje ni jednu od etiri
dimenzije saznanja, a da o prirodno postojeim vezama izmeu podataka i ne govorimo.
Tekstualni nain obrade saznanja obuhvata dve mogue realizacije:
1. sisteme za obradu teksta i
2. sisteme za obradu tabela.
Sistemi za obradu teksta mogu prihvatiti reenice (tekstove) bilo kojeg prirodnog jezika.
Dok su rei, tj. podaci kod faktografskog naina obrade semetene u pojedina tano predviena
polja, u sistemima za obradu teksta rei se nalaze u neodreenom, prirodnom redosledu
nastanka, kako ih je sastavlja teksta sainio. Treba, meutim, primetiti da sistemi za obradu
teksta razlikuju, odnosno mogu prepoznati dve dimenzije saznanja: generiki i specifini
subjekat. Mogu naime da sadre saznanja o razliitim stvarima, formirajui time razliite
rekorde. Sa druge strane, u cilju efikasnog pretraivanja formiraju tzv. tezaurus u kojem se
14
smetaju rei (sadraji) i njihova mesta pojavljivanja u memorisanom tekstu. To je posebna
indeksna tabela (datoteka) koja u jednom delu sadri vrednost podatka (tj. sam podatak) na koju
se moe formulisati zahtev za pretraivanje, a u drugom delu sve adrese pojavljivanja te
vrednosti u okviru teksta. Time se ostvaruje specifini predikat. Tumaenje ili interpretacija niza
simbola (rei) koji se nalazi u tezaurusu time jo nije razreena. Taj problem se reava
mehanizmom koji se zove deskriptor. Sainjen je za eliminaciju problema postojanja homonima
(homonim je re ili niz simbola sa vie moguih znaenja). Fizika realizacija deskriptora je
slina tezaurusu, naime prilikom ukucavanja niza simbola koji se smeta u tezaurus, u
deskriptoru se memorie tano znaenje upravo uneenog niza simbola. Time je realizovan
geeriki predikat. Korisnik pri unosu testa moe oznaiti koje kljune rei treba zapamtiti u
tezaurusu (ujedn se memorie i njihovo mesto u tekstu), a deskriptor slui za pamenje obeleja
ili kategorije kojoj pomenuta kljuna re pripada. Time u stvari pomou tezaurusa i deskriptora
moemo pronai sve konkretizacije izabranih nizova simbola iz tezaurusa, a i sve pojave svih
konkretizacija memorisanih kategorija u deskriptorima.
Pojedini dokumenti se u sistemima za obradu tekstova mogu, na osnovu recimo
kljunih rei u deskriptorima, eksplicitno grupisati u fajl, koje sistem zajedno rukuje i
obradjuje. Time je ostvaren tip entiteta (fajl) i pojava tipa entiteta (dokument).
Sistemi za obradu tekstova, ipak, ne predstavljaju sistem za rukovanje bazom podataka jer
nisu zasnovani na modelu podataka i ne mogu obradu realizovati na osnovu veza koje postoje
izmedju fajlova.
Banka podataka je skup pogodno organizovanih i celishodno smetenih tekstualnih
datoteka (dokumenata) kojima se moe pristupiti pomou obezbedjenih sistema za obradu
tekstova. Povezivanje ovih dokumenata (datoteka) po sadraju nije mogue, ali je tehnika
njihove obrade ista.
Sistemi za obradu tabela se ponekad nazivaju (pogreno) sistemima za rukovanje bazom
podataka, ali to ne odgovara stvarnosti. Greka potie moda od toga to se na logikom nivou
entitetu (pojmovni nivo) odgovara pojam relacije ili tabele. Tu se radi o homonimu: pojam tabela
u terminologiji baze podataka oznaava skup slogova sa tano navedenim redosledom smetanja
podataka. No, u klasinoj tabeli (a to je drugi sadraj pojma tabela) bilo koji sadraj (bilo koji
podatak) moe da se smesti u bilo koju kolonu, bez kontrole se doputa upis proizvoljne
vrednosti u proizvoljnu kolonu. Kod klasinih tabela ne postoje nikakve medjusobne veze.


15
2.4. INFORMACIONI SISTEM

injenini ili faktografski nain obrade saznanja ili obrada podataka se realizuje
posredstvom aplikacija ili realizovanih (isprogramiranih i istestiranih) informacionih sistema.
Kako samo ime kae informacioni sistem je takodje sistem, dakle i za njega vae sve
zakonitosti koje su otkrivene i dokazane u naunoj oblasti teorije sistema. Treba, medjutim,
naglasiti da pojam informacioni sistem nije ekvivalentan pojmu sistem informacija. Sistem
informacija oznaava samo sredjivanje, odnosno organizaciju informacija, a informacioni sistem
obuhvata i razne druge elemente sasvim razliite naravi.
Upoznavanje sa sutinom informacionih sistema ne predstavlja prvenstveni cilj ovog
predmeta, ali baze podataka predstavljaju deo informacionog sistema i u tom smislu treba da se
upoznamo sa definicijom pojama informacionog sistema.
Informacioni sistem je organizovani skup sledeih inilaca ili elemenata kao i njihovih
medjuveza:
1. podataka (informacija),
2. sa njima povezanih informacionih dogadjaja,
3. nad njima izvrenih aktivnosti,
4. potrebni resursi vezani za prethodna tri elementa, kao i za razvoj i funkcionisanje
informacionog sistema
5. korisnika informacija (podataka) i
6. standarda i procedura koji upravljaju napred navedenim iniocima.
10


Informacioni sistemi se razvijaju da bi zadovoljili potrebe organizacija razliitih profila,
kao i pojedinaca, a iza tih zahteva i potreba, u pozadini uvek stoje ljudi i njihova tenja da to
bre i jednostavnije dodju do njima vanih podataka, informacija. Podaci i ljudi spadaju u
inioce informacionih sistema, i kako su oni medjusobno povezani, tako su i sa ostalim
elementima informacionog sistema u vezi.
Saznanja u okviru nekog konkretnog informacionog sistema i sami predstavljaju sistem.
Sistem podataka je i sam jako sloen. Od saznanja do podatka takodje treba stii (kao to je ve
napred izloeno), isto tako od podatka do informacije. Podatak, koji e za neke postati i
informacija predstavlja osnovu za komunikaciju. Podatak ima razne svoje aspekte. Njega treba
fiziki smestiti na magnetske medijume raunara, podaci su medjusobno i logiki povezani, a
svakako slue za stvaranje slike o realnom sistemu.

10
Izvor: [11.], strana: 43.
16
2.5. KONCEPCIJA BAZE PODATAKA

Poetkom ezdesetih godina javila se potreba za intenzivnijim razvojem programa u
razliitim oblastima (uglavnom u evidencijama stanja, obraunima potronje raznih energenata i
knjienjima). Tadanji programski jezici namenjeni za takve svrhe, COBOL i PL1 su obezbedili
potrebne mehanizme za definiciju i rukovanje podacima, ali su neophodno morali sadrati opis
(definiciju) podataka u svakom pojedinom programu. Tada je artikulisana potreba da se rutine za
obradu podataka i deklaracije za opis podataka uoptavaju i osamostale. Tako bi se programi
oslobodili od ponavljajuih balasta u vezi definicije i obrade podataka, i ujedno bi efikasnost
rada programera znatno porasla. Takav pristup je potpomagala pojava adresibilnih eksternih
memorija (diskova), a i tenja analitiara za eliminisanje redundancije u podacima. Rodila se
ideja o rukovanju podacima pomou baze podataka.
Prethodno formulisani zahtevi su pokrenuli razradu takvog softverskog produkta, koji je na
sasvim uopteni nain reavao deklaraciju podataka kao i njihovo standardizovano rukovanje.
Taj softver je kasnije prerastao u sistem (ili softver) za upravljanje bazom podataka. Programi su
postali nezavisni od podataka, a u datotekama u kojima do tada bilo velike redundancije
(ponavljanja istih podataka u razliitim datotekama razlog za to je taj, to su datoteke bile
projektovane za pojedine programe) preklapanja su se smanjivala do najnie neophodne mere.
Paralelno tim procesima se poveavao broj tih strunjaka, koji su uvideli i stalno
naglaavali injenicu, da je najstabilniji od inilaca informacionih sistema upravo skup podataka.
Posedovanje dobro izgraene baze podataka omoguuje realizaciju bilo kakve nove zahteve
korisnika. Zato su preporuili da se razvojne aktivnosti informacionog sistema otpoinju sa
projektovanjem i izgradnjom baze podataka.
Koncepcija baze podataka je ponudila mogunost definisanja prirodno postojeih veza
izmeu podataka. Na poetku prepoznavanja te alternative se rodila ideja o potpunom
eliminisanju preklapanja (redundancije) podataka. Ta ideja je bila pogrena, to su docnije i
dokazali, jer je za obezbeenje odravanja veza izmeu podataka u bazi podataka neophodan
jedan optimalni nivo redundancije.
Za formulisanje i postizanje optimalne redundancije je razraen proces pod nazivom
modeliranje podataka (razrada je trajala vie godina grubo tokom sedamdesetih godina). U tom
traganju su najzasluniji Bachmann, Codd i Halassy.

17
3. MODELI PODATAKA


3.1. FORMALNO-MATEMATIKI PRISTUP MODELIMA PODATAKA

Model podataka predstavja matematiko preslikavnje dela realnog sistema za koji se
projektuje informacioni sistem. U cilju obezbeenja podloge za realizaciju baze podataka i nad
njom izgraenog informacionog sistema model podataka treba da sadi informacije o:
1

1. statikim-strukturalnim osobinama
2. postojeim ogranienjima i
3. dinamikim osobinama
realnog sistema.
Statike osobine realnog sistema su relativno stabilne u vremenu i predodreuju strukturu
budue baze podataka. Ogranienja predstavljaju lepezu objektivno postojeih uslova u realnom
svetu kao to su dozvoljene i nedozvoljene vrednosti podataka, pravila poslovanja i ponaanja
realnog sistema. Ogranienja e se ugraditi u buduu bazu podataka u vidu uslova integriteta.
Dinamike osobine predstavljaju razvoj, odnosno promene realnog sistema, a odraavaju se u
promenama podataka o komponentama sistema. Na osnovu dinamikih osobina se definiu
operacije, odnosno procedure (programi) koje e realizovati promene podataka odgovarajuih
komponenata sistema shodno razvoju (promenama) u realnom svetu.
Shodno gore formulisanom sadraju modela podataka razlikovaemo tri njegove
komponente: strukturalnu, integritetu i operacijsku komponentu.
Strukturalna komponenta modela podataka obuhvata osnovne (elementarne,
primitivne) koncepte i pravila za izgradnju sloenih koncepata, koji se grade od elementarnih
koncepata. Koncept je apstrakcija entiteta ili tipa entiteta
2
(zajedniki naziv za neki konkretan
subjekat ili klasu slinih subjekata, neki konkretan objekat ili klasu slinih objekata i neki
konkretan dogaaj ili klasu slinih dogaaja), neka osobina entiteta ili konkretna vrednost
osobine entiteta, odnosno veza izmeu dva tipa entiteta (dve klase subjekata, dve klase objekata,
dve klase dogaaja, odreene klase subjekata i odreene klase objekata, odreene klase
subjekata i odreene klase dogaaja i najzad odreene klase objekata i odreene klase dogaaja),
ili dva razliita entiteta (dva konkretna subjekta, dva konkretna objekta, dva konkretna dogaaja,

1
Izvor: [19.], strana: 1-2.
2
Stroije odreivanje pojmova entitet i tip entiteta se nalazi u daljem tekstu.
18
konkretnog subjekta i konkretnog objekta, konkretnog subjekta i konkretnog dogaaja i na kraju
konkretnog objekta i konkretnog dogaaja).
Primitivni koncepti strukturalne komponente modela podataka su :
opis osobine skupa entiteta (obeleje) i
skup konkretnih vrednosti te osobine (domen).
Sloeni koncepti strukturalne komponente modela podataka su sledei:
opis skupa entiteta (tip entiteta)
opis veza izmeu skupa entiteta (poveznik) i
opis baze podataka (ema baze podataka).
Pomou koncepata i pravila za izgradnju grade se dve vrste modela: modeli skupova
entiteta (modeli tipa entiteta) i modeli konkretnih entiteta (modeli entiteta). Model tipa entiteta se
sastoji od naziva tipa entiteta i skupa obeleja (naziva bitnih zajednikih osobina skupa entiteta).
Model entiteta se dobija navoenjem konkretnih vrednosti pojedinih obeleja odgovarajueg tipa
entiteta kojem posmatrani entitet pripada.
Napred izreene pojmove, u cilju lakeg shvatanja i pamenja ilustrovaemo sledeim
primerom. Jedan model tipa entiteta vozila moe da se formulie i predstavlja na sledei nain:
VOZILO(registarski_broj, broj_asije, tip_vozila, boja).

Model entiteta, jednog konkretnog vozila moe biti
(SU 372-66,TMBEEA614TO334911,koda Felicija GLS, trula vinja).
Model tipa entiteta lice moe imati sledei oblik
LICE(identifikacioni_broj_lica, ime_i_prezime)
Izmeu entiteta u realnom svetu postoje raznovrsne veze (povezanosti). U cilju
predstavljanja tih veza u strukturalnoj komponenti modela podataka, formuliu se relacije u skup
modela tipa entiteta ili u skup modela entiteta (skup modela konkretnih entiteta). Tako nastaju
dve vrste struktura na dva nivoa apstrakcije. Struktura nad skupom modela tipa entiteta
predstavlja vii nivo apstrakcije od strukture nad skupom modela konkretnih entiteta.
Model relacije izmeu tipa entiteta LICE i tipa entiteta VOZILO moe da se izrazi na
sledei nain:
Poseduje(LICE, VOZILO).
Model veze izmeu konkretnih entiteta po prethodnom predlogu izgleda kao to sledi:
((1234,Imre Petkovi), (SU 372-66,TMBEEA614TO334911,koda Felicija GLS, trula vinja).
Oblast strukturalne komponente modela podataka obuhvata i dva dosta esto koriena
pojma, a to su: intenzija i ekstenzija. Intenzija predstavlja definicioni opis nekog skupa. To
drugim reima znai da je model skupa entiteta ili model tipa entiteta predstavlja intenziju.
19
Ekstenzija predstavlja barem jednu od moguih pojava nekog skupa, odnosno jedan model
entiteta (ili jedan skup konkretne pojave nednog tipa entiteta).
Integritetna komponenta modela podataka predstavlja skup ogranienja diktiranih od
strane realnog sistema, a posledica su njegovog poslovanja i ponaanja. Pravila ponaanja i
poslovanja realnog sistema artikuliu se pomou
ogranienja domena, odnosno skupa konkretnih vrednosti obeleja
ogranienja veza u skupu modela tipa entiteta ili u skupu modela entiteta (u skupu
modela konkretnih entiteta)
ogranienja odnosa izmeu konkretnih entiteta i njima pridruenih konkretnih
vrednosti iz odgovarajueg domena.
Na pogodan nain formulisana ogranienja se u procesu projektovanja nazivaju uslovima
integriteta baze podataka. Jedna mogua kombinacija naina formulisanja gore navedene tri vrste
ogranienja je sledea:
za ogranienje obeleja A notacija [a
1
,a
2
] oznaava interval dozvoljenih vrednosti, tj.
a
1
Aa
2
.
Za ogranienje veze niz simbola (LICE(0,N):VOZILO(1,1)) ima sledee znaenje
(ako je naziv veze poseduje)
o LICE ne mora biti povezan ni sa jednim vozilom (ne mora posedovati ni
jedno vozilo), a moe da bude u vezi sa vie vozila (tj. moe da ima vie
vozila)
o VOZILO mora biti u vezi sa najmanje jednim licem, a najvie sa jednim
licem (vozilo moe biti vlasnitvo samo jednog lica barem po mojim
dananjim saznanjima)
Za ogranienje odnosa izmeu konkretnih entiteta i njima pridruenih konkretnih
vrednosti umesto notacije koristiemo reenicu: svako VOZILO ima jedan
registarski_broj, a jedan registarski_broj se dodeljuje samo (ili najvie) jednom
VOZILU.
Ako je sadraj baze podataka u skladu sa uslovima integriteta, za nju kaemo da je
konzistentna (neprotivrena).
Strukturalna i integritetna komponenta modela podataka odreuju statiku strukturu dela
realnog ivota za koji se projektuje informacioni sistem.
Operacijska komponenta modela podataka opisuje dinamike osobine tj. promene u
realnom sistemu pomou skupa operacija. Operacije se izvravaju na konkretnim podacima (na
pojavi baze podataka). Svaka operacija oO, ako se dozvoljava njeno izvravanje, menja stanje
20
baze podataka (na osnovu korienih oznaka iz [19] za skup stanja: D={d
i
|i=1,...,n}, operacija se
moe formulisati kao o:DD). Izmena stanja baze podataka ne znai automatski izmenu pojave
baze podataka (korisnike podatke smetene u bazu), jer baza podataka pored korisnih podataka
sadri razne kontrolne mehanizme (zabranu pristupa grupi korisnika nekom skupu podataka) ili
indikatora (indikator tekueg sloga ili indikator aktvnosti). Sa druge strane izvravanje operacije
se ne dozvoljava, ako bi ona njenim izvravanjem dovela sadraj baze podataka u nekonzistentno
stanje.
Operacije se najee odnose samo na mali deo pojave baze podataka, stoga se sastoje iz
dva dela. U jednom delu se vri selekcija podataka na koje podatke se primenuje aktivnost
definisana u drugom delu operacije.
Selekcija podataka se realizuje na jedan od tri sledea naina:
1. pomou odnosa izmeu podataka
2. pomou vrednosti osobine
3. pomou vrednosti indikatora aktivnosti (prevazien nain).
Aktivnost definisana u drugom delu operacije predstavlja jednu od sledeih pet vrsta:
1. itanje podataka
2. upis novih podataka
3. brisanjepostojeih podataka
4. modifikacija postojeih podataka
5. definisanje vrednosti indikatora aktivnosti (prevazien nain).
Ako se selekcija realizuje samo po jednom iniocu pratei veze u statikoj komponenti
modela podataka (korienjem indikatora aktivnosti u toj strukturi), radi se o navigaciji, tj. takve
selekcije izvravaju navigacioni jezici. Za njih se kae da su proceduralni, jer opisuju ne samo to
ta se eli dobiti, nego na koji nain to treba izvesti.
Jezici koji izbor podataka (selekciju) vre po vie inioca se nazivaju deklarativnim ili
specifikacionim jezicima. Kod njih ne postoje procedure (neproceduralni jezici), jer formuliu
samo zahtev ta se eli dobiti, ali ne i to na koji nain treba to postii.
U toku sastavljanja modela podataka koristi se koncepcija apstrakcije u opisu
(formulisanju) podataka. Apstrakcija je intelektualni postupak za formulisanje i predstavljanje
samo optih, bitnih i zajednikih osobina pojedinih sloenih koncepata strukturalne komponente
modela podataka iz realnog sistema i zanemarivanje nebitnih osobina sa take gledita ciljeva i
granica informacionog sistema.
U toku razrade modela podataka koriste se sledee tri vrste apstrakcije:
1. Klasifikacija ili tipizacija i uzorkovanje
21
2. Generalizacija i specijalizacija i
3. Agregacija i dekompozicija.
Klasifikuju se, recimo neke vrednosti (ili skup nekih vrednosti) u obeleja. tipovi entiteta
se generalizuju u supertip (ili nadtip). Tip entiteta se moe smatrati agregacijom njegovih
obeleja.


3.2. RAZVOJ MODELA PODATAKA

Prvi modeli podataka nastali su u drugoj polovini ezdesetih godina. Nedostaci primeeni u
postojeim modelima podataka su predstavljali podstrek za definisanje i razvoj novih, boljih
modela. Razvijen je velik broj modela podataka, no u teoriji i praksi baze podataka su
najznaajniji sledei
3
:
1. mreni model podataka,
2. hijerarhijski model podataka,
3. relacioni model podataka,
4. model entiteta i poveznika (model entiteta, atribta i poveznika),
5. funkcionalni model podataka,
6. model semantikih hijerarhija,
7. semantiki model podataka,
8. objektno-orijentisani model podataka i
9. logiki model podataka.
U procesu projektovanja baze podataka koriste se model entiteta i poveznika, relacioni
model podataka i objektno-orijentisani model podataka. Iz istorijskih razloga se jo pominju i
objanjavaju mreni i hijerarhijski model podataka.
Ostali modeli podataka imaju uglavnom teoretski znaaj i ukazuju na razvoj izraavanja
semantike (znaenja) podataka pomou modela podataka. Semantiki bogati modeli podataka
imaju svoje koncepte za verno preslikavanje svih inilaca svakog realnog sistema.


3.3. SEMANTIKO-PRAKTIKI PRISTUP MODELIMA PODATAKA

U pragmatikom pristupu razvoja (projektovanja i realizacije) baze podataka razlikuju se
dve vrste modela podataka. U prvu grupu modela podataka spadaju oni koji omoguuju
22
projektovanje, a u drugu oni koji realizuju baze podataka. Za projektovanje se danas najee
koriste model entiteta i poveznika i objektno-orijentisani model podataka. Za implementaciju
projekta baze podataka izraenog pomou jednog od prethodno pomenuta dva modela podataka
se koriste relacioni sistemi za rukovanje bazama podataka (koji realizuju relacioni model
podataka) objektno-orijentisani sistemi za rukovanje bazama podataka (koji ostvaruju objektno-
orijentisane modele podataka u praksi).
U procesu modeliranja (projektovanja) i implementacije baze podataka niz aktivnosti je
sledei
4
: pojmovi vani sa take gledita funkcionisanja informacionog sistema se predstavljaju
na izabranom jeziku za projektovanje eme baze podataka (pomou simbola modela entiteta i
poveznika MEP ili objektno-orijentisanog model podataka OOMP), a posle se, po pravilu,
projekat implementira pomou relacionog sistema za upravljanje bazama podataka RSUBP
(kao to se vidi na sl. 3.1.). Postoji, naravno, i mogunost konverzije objektno-orijentisanog
modela podataka u neki objektno-orijentsani sistem za upravljanje bazama podataka OOSUBP.

Na teoretskom (pa ak i na praktinom) nivou tvrdnja o primeni dve vrste modela podataka
(kako je to izloeno u prvom paragrafu ove take ili na kraju prethodne take) nije sasvim
tana. U cilju lakeg razumevanja ove tvrdnje treba da krenemo od vane karakteristike
informacionog sistema.
Informacioni sistem je nehomogen sistem konkretnih i abstraktnih elemenata. U konkretne
inioce spadaju fiziki egzistirajue stvari kao to su tehnika sredstva, standardi i korisnici, a u
abstraktne elemente ubrajamo intelektualne proizvode ljudskog razmiljanja koji slue za verno
odslikavanje fizike stvarnosti, a to su dogadjaj, aktivnost i podatak. Konkretni elementi postoje,
a abstraktne elemente treba smisliti, projektovati, formulisati i izraditi, a takodje i otkriti i opisati

3
Po Moginu [19]

Pomovi realnog
sistema
OOMP
MEP
Relacije
OOSUBP
RSUBP


Sl. 3.1.
23
njihove medjusobne veze. Na osnovu prethodno izloenog se ve naziru dve projekcije
informacionog sistema, medjutim, poto su podatak sa jedne strane i dogadjaj i aktivnost sa
druge strane jako razliite prirode, razlikuju se sledee tri projekcije informacionog sistema:
1. projekcija podataka,
2. projekcija obrade i
3. projekcija okruenja.
Treba konstatovati da su saznanja i pojmovi u nekoj konkretnoj organizaciji poprilino
stabilni. este korekcije i dogradnje su preteno posledica nestruno izvedenih razvoja nego
nestabilnosti podataka (pojmova). Projekcija podataka je relativno objektivna. Podatak je u
velikoj meri nezavisan od ostalih inilaca informacionog sistema. Vano je istai da je podatak u
velikom stepenu nezavisan od obrade, sa kojom je moda u najtesnijoj vezi.
Projekcija obrade je u odnosu na projekciju podataka relativno nestabilna i subjektivna i,
uopteno govorei nema takav stepen nezavisnosti od ostalih elemenata informaconog sistema
kao to ima projekcija podataka. Projekcija obrade je relativno nestabilna iz razloga to korisnik
moe izmiljati razne vrste izvetaja i sopstvene dogadjaje bez izmene projekcije podataka.
Obrada, dakle, u odnosu na podatak moe biti viestruka. Promenljivost u obradi, medjutim, ne
uslovljava i promenu strukture podataka, jer logika nezavisnost podataka kao princip
propisuje da promene u obradi podataka ne smeju uticati na strukturu podataka i
obrnuto.
Projekcija okruenja obuhvata korisnike, resurse za realizaciju informacionog sistema
(vreme, novac, hardver i softver) i standarde, tj. realno postojee stvari , a ne abstrakcije.
Subjektivne elje korisnika, objektivne mogunosti hardvera i softvera kao i kvazi objektivni
standardi spreavaju analitiara da realizuje po njemu najbolji mogui informacioni sistem.
Promena okruenja u vremenu je neminovna pojava, ali to ne (bi) sme(lo) da izazove promenu
strukture podataka, jer princip fizike nezavisnosti podataka formulie stav da promene u
sredstvima za obradu ne smeju uticati na strukturu podataka i obrnuto.
Projekciju podataka, obrade i okruenja moemo shvatiti kao horizontalnu podelu inilaca
informacionog sistema. Elementi ovih projekcija nisu nezavisni jer predstavljaju inioce
(informacionog) sistema. Kako postoje povezanosti izmedju dva elemenata iz razliite projekcije
tako postoje i medjusobne veze izmedju inioca iz iste projekcije. Elementi projekcije podataka i
obrade nastaju kao rezultat intelektualnog napora na raznim nivoima abstrakcije. Projekcija
okruenja, poto oznaava fiziki postojee resurse, poseduje samo jeadan abstrakcioni nivo:

4
Izvor [27], strana 47.
24
fiziki. Ostale dve projekcije pored fizikog, imaju jo dva abstrakciona nivoa, tako da se
informacioni sistem posmatra i realizuje na sledea tri abstrakciona nivoa:
1. pojmovnom (konceptualnom),
2. logikom i
3. fizikom nivou.
Konceptualni nivo obuhvata sadraj ili sutinu dela realnog sistema koji se eli opisati
pomou informacionog sistema, a smo reenje se predstavlja na logikom i fizikom nivou.
Pomenuta tri nivoa informacionog sistema se mogu i moraju (ili morali bi) razlikovati pri
razvoju samog sistema. Neispotovanje ova tri abstrakciona nivoa moe dovesti do sledea dva
tipa problema u kojima se meaju sutina i reenje. Pri razvoju se najee predstavlja slika
stvarnosti koja odgovara korisniku-naruiocu, a ta slika je po pravilu izvitoperena u odnosu na
realni sistem. Sa druge strane razvojni tim pri izradi projekta je najee optereen sa
ogranienim mogunostima sistema za rukovanje i obradu podataka, znai i reenje e odraavati
ta ogranienja, a ne stvarnu sliku dela realnog sveta. Gore opisani problemi su objektivni i
naravno neizbeni. Naruioc je zainteresovan da njegovi zahtevi budu ispotovani pri razvoju, a
razvojni tim ne moe zaobii ogranienja hardvera i softvera raunara. Sve je to u savrenom
redu, jedina je manjkavost ta, da projektanti pripremaju samo jedan plan u kojem su i babe i
abe, tj. i sutina i reenje. A zato je to loe? Sutina i koncepcija nekog poduhvata ili posla se
znatno sporije menjaju nego raunari ili softveri za obradu podataka. U sluaju da postoji samo
jedan projekat u koji su ugradjena i ogranienja po zahtevu korisnika i ogranienja hardvera i
softvera, kupovina novih raunara ili prelazak na novi softver e iziskovati ponavljanje celog
razvojnog posla iz poetka.
Ispotovanje tri nivoa informacionog sistema znai sastavljanje tri plana ili modela (na
svakom nivou po jedan). Na konceptualnom nivou se predstavlja verna slika realnog sistema, na
logikom slika o stvarnosti koja odgovara korisniku, a na fizikom slika koja moe da se
realizuje na raunaru, a odgovara korisnikovom vidjenju stvarnosti. Nii nivoi informacionog
sistema sve vie izobliavaju pravu sliku stvarnosti, to je sasvim logino i razumljivo.
U razvoju projekcije podataka prvi je zadatak analitiara da upozna pojmove koje
korisnik upotrebljava i da otkrije njihovu semantiku. Pojmovi u realnom svetu nisu nezavisni,
shodno tome drugi zadatak analitiara je da ih organizuje, da saini njihovu strukturu (da
dokumentuje njihove medjusobne zavisnosti), tj. da izgradi pojmovnu strukturu ili pojmovni
model podataka. Pojmovna struktura ili pojmovni model podataka (pojmovni nivo strukture
podataka) je beskompromisna, verna i objektivna slika stvarnosti. Ili, drugim reima:
25
konceptualni plan podataka je struktura podataka koja realni sistem odslikava bez ijedne
greke.
Na zahtev korisnika naruioca projektant svesno izobliava, pokvari pravu sliku
stvarnosti. Uticaj ili zahteve korisnika moemo smatrati subjektivnim ili kvazi-subjektivnim
ogranienjima kojima valja izai u susret. Ponekad analitiar i nesvesno izobliava sliku realnog
sistema. To se dogadja u sluajevima kada on ne obuhvata sve elemente ili inioce informacionih
sistema, ili kada ne moe doi do prave objektivne slike realnog sistema, a o tome on sam ne
zna. Logika struktura ili logiki model podataka sadri izmenjenu pojmovnu strukturu
podataka shodno definisanim ogranienjima okoline (uglavnom korisnika), ili zbog pogrene
vizije projektanta o realnom sistemu. Logiki plan podataka je, prema tome, struktura podataka
koja odraava izmenjenu sliku stvarnosti usled subjektivnih zahteva naruioca ili pogrene
percepcije (pogrenog shvatanja) realnog sistema od strane projektanta.
U toku razvoja informacionog sistema analitiari moraju biti svesni svih ogranienja
sredstava za obradu podataka (hardvera) i softvera za rukovanje i obradu podataka. Razvojni tim
mora biti spreman na kompromise u vezi smetanja i predstavljanja podataka na raunaru.
Fizika struktura ili fiziki model podataka obuhvata nain predstavljanja i smetaja podataka
na memorijskom medijumu raunara i esto se naziva fiziki plan podataka.
Planove ili modele podataka na sva tri nivoa abstrakcije obavezno treba izraditi, i to u
jedino moguem i logikom redosledu: prvo se realizuje konceptualni plan, zatim logiki plan, a
na kraju fiziki plan podataka.
26
4. MODEL ENTITEA I POVEZNIKA ER MODEL PODATAKA

Pod pojmom modela entiteta i poveznika se podrazumeva najpoznatija verzija modela
podataka zasnovanih na entitetima i poveznicima koju je izradio P.P. Chen sredinom
sedamdesetih godina. Naziv ER model potie od skraenice engleskih rei Entity Relationship.
Ovaj model podataka predvia grafiku predstavu rezultata procesa projektovanja baze podataka
u obliku grafova i tabela. Intenzija modela se predstavlja grafovima, a ekstenzija tabelama. Bez
obzira to postoje razraene sve tri komponente ovog modela (strukturalna, itegritetna i
operacijska), on se skoro iskljuivo koristi za projektovanje statikog modela realnog sistema na
pojmovnom (konceptualnom) nivou. Jedan od razloga je sigurno i taj to je ovaj model
semantiki vrlo bogat, a drugi je grafiko predstavljanje (jedan pogled vredi vie od hiljadu
rei...).
Bez obzira to je netrivijalno koliko u ovom modelu ima osnovnih koncepata (neki tvrde
da ima dva, a drugi da postoje tri), ona je jednoznano najrasprostranjenija vrsta modela
podataka za konceptualno planiranje pojmovne strukture podataka informacionih sistema.


4.1. STRUKTURALNA KOMPONENTA MODELA ENTITETA I
POVEZNIKA

Model entiteta i poveznika preslikava realni svet pomou svega dva osnovna koncepta
(kako to i sam naziv modela sugerie): entiteta i poveznika (veze). ak i ona grupa koja priznaje
samo dva osnovna koncepta ovog modela podataka priznaje egzistenciju treeg, po njima
gradivnog elementa, od kojih se grade entiteti i poveznici, a taj element je obeleje.


4.1.1. Entitet, klasa entiteta i tip entiteta

Pojave realnog sveta koje elimo opisati informacionim sistemom, odnosno obuhvatiti u
buduoj bazi podataka na konceptualnom nivou apstrakcije nazivamo entitetima. Tanije entitet
predstavlja sliku neke pojave realnog sistema na pojmovnom nivou apstrakcije. Entitet je neto
to se moe jednoznano identifikovati, on je objekat posmatranja ili jedinica posmatranja.
27
Taj termin se moe koristiti za svaki realni subjekat, objekat, dogadjaj, pojavu ili apstraktni
pojam.
ovek uvek klasifikuje pojave realnog sveta. Klase pojava realnog sveta koje elimo
opisati pomou informacionog sistema na pojmovnom nivou abstrakcije krase neke osobine koje
te pojave, svrstane u klase poseduju.
Pojave realnog sveta ovek uvrtava u klase putem apstrakcije koja je uvek zavisna od
ciljeva samog sistema ili od namere oveka. Klasifikacija entitea se uvek vri po nekoj ili nekim
osobinama. Te zajednike osobine (koje se zovu obeleja) predstvaljaju osnovu za klasifikaciju.
Od trenutka konstruisanja nekog apstraktnog tipa entiteta, njemu pripadajue konkretne entitete
nazivamo konkretizacijama ili pojavama tipa entiteta. Konstruisanje abstraktnog tipa entiteta
znai selekciju i izbor vanih osobina klase entiteta sa take gledita cilja, odnosno ciljeva
informacionog sistema. To znai da u procesu konstruisanja tipa entiteta veliku ulogu igra
abstrakcija, jer nikada se ne obuhvataju u tipu entiteta sve mogue osobine date klase entiteta.
Konkretizacije tipa entiteta su u stvari vrednosti iz (vremenski zavisnog promenljivog) skupa
pojava pripadajueg tipa entiteta. Tip entiteta predstavlja pojam na viem nivou apstrakcije od
pojave tipa entiteta.
Pretpostavimo, u cilju ilustracije gore izloenih pojmova, da elimo voditi podatke o
studentima Zoranu i Dejanu, prema tome oni su entiteti (objekti posmatranja) za nas. Odredimo
li apstraktni tip entiteta STUDENT, od tog trenutka Zoran i Dejan gube svojstvo entiteta i
postaju konkretizacije ili pojave tipa entiteta STUDENT. Naravno, konstruiui tip entiteta
STUDENT neminovno je odrediti njegove vane osobine sa take gledita informacionog
sistema.


4.1.2. Obeleje, vrednost obeleja i domen

Pojave realnog sistema imaju osobine pomou kojih se mogu opisati, klase pojava takodje.
Osobine pojava realnog sveta, odnosno njihove vrednosti ooguavaju njihovu klasifikaciju, kako
je ve napred istaknuto. Slika osobine klase pojava realnog sveta na pojmovnom nivou
abstrakcije se naziva obeleje (atribut). Drugim reima osobine tipova entiteta na pojmovnom
nivou se nazivaju obelejima (atributima). Obeleje je takodje apstrakcija, jer ovek dodeljuje
pojmovima nazive. Sve pojave (konkretizacije) istog tipa entiteta imaju barem jednu zajedniku
osobinu (obeleje), na osnovu koje su svrstane u isti tip entiteta.
28
Kao ilustrativni primer navedimo mogua obeleja za apstraktni tip entiteta VOZILO:
registarski_broj, broj_asije, tip_vozila, boja, itd.
Svakom obeleju odgovara jedan skup moguih vrednosti (pojava ili konkretizacija) koje
pomenuto obeleje u konkretnim sluajevima moe imati. Taj skup vrednosti se zove domen
obeleja. Slino kao kod entiteta, ovde je obeleje apstraktni, a vrednost obeleja konkretni
pojam.
Obeleje koje se ne moe ili ne eli dalje dekomponovati na delove koji takoe
predstavljaju obeleja smatra se elementarnim obelejem. Niz elementarnih obeleja predstavlja
sloeno obeleje kojem se moe dodeliti sopstveno ime ili naziv.
Entiteti, konkretizacije entiteta, obeleja i vrednosti obeleja slue za preslikavanje pojava
i njenih osobina iz fizike realnosti na konceptualnom nivou predstavljanja modela podataka,
odnosno informacionog sistema. Treba, medjutim, istai da su entitet i obeleje relativni
pojmovi. Za boju po pravilu kaemo da je obeleje (napr. boja_automobila), i to s pravom,
medjutim u fabrici boja i lakova boja treba da bude opisana pomou raznih informacija (od
kojih osnovnih boja je sastavljena i sa kojim procentima, koliki je procenat razredjivaa u
sastavu, kojom tehnologijom treba nanositi tu boju, itd.), tj. tu je boja entitet.
Obeleje ili grupa obeleja koja za svaku pojavu entiteta datog tipa uzima razliite
(jedinstvene) vrednosti nazivamo identifikatorom ili kljuem (kandidatom za klju). Klju treba
da ispunjava dva uslova:
1. uslov jedinstvenosti i
2. uslov minimalnosti.
Ako klju zadovoljava samo prvi uslov onda je on superklju. Uslov minimalnosti
formulie zahtev da klju ne sme imati suvina obeleja ili, drugim reima klju ne sme da ima
takav pravi podskup koji zadovoljava uslov jedinstvenosti. Uslov minimalnosti, naravno ima
smisla kontrolisati samo u sluaju sloenog kljua (klju sastavljen od niza elementarnih
obeleja).
Retko se nadje neka prirodna osobina obeleje ije su konkretizacije (vrednosti) razliite
za svaku pojavu datog tipa entiteta. U tom sluaju se obino vetaki uvodi jedno obeleje
koje e imati razliite vrednosti za svaku pojavu posmatranog tipa entiteta, ili se grupisanjem
nekoliko atributa (obeleja) postie da e njihove konkretizacije biti razliite za svaku pojavu
datog entiteta.
Na osnovu prethodnog razmiljanja se moe zakljuiti da postoje dve vrste identifikacije:
1. nominativna i
2. deskriptivna.
29
Kod nominativne identifikacije postoji jedno pogodno izabrano obeleje ija je vrednost
razliita za sve konkretizacije posmatranog tipa entiteta. Primer: broj_narudbe koji jednoznano
identifikuje svaku narudbu, ili navodjenjem jedinstvenog matinog broja gradjana (JMBG) za
identifikaciju lica.
Deskriptivna identifikacija se dobije kada se ukljuuje toliki broj obeleja u identifikator
(klju), da on jednoznano identifikuje svaku pojavu tipa entiteta. Primer: deskriptivna
identifikacija lica (gradjana) se realizuje pomou identifikatora sastavljenog od sledeih
obeleja: ime, prezime, datum_rodjenja, mesto_rodjenja, ime_oca, adresa.
U praksi se moe desiti da jedan tip entiteta ima vie takvih obeleja koja jednoznano
odredjuju njegove konkretizacije, tj. ima vie kandidata za klju. U tom sluaju se jedan od
kadidata bira za klju (primarni klju).


4.1.3. Poveznik i tip poveznika

U prirodnom govoru retko koristimo kompletne proste iskaze (celovite proste reenice).
Reenice ili iskaze najee povezujemo. Danas je ve svim informatiarima poznato da
saznanje ili podatak generalno ima tri svoje projekcije:
1. intenzionalnu,
2. ekstenzionalnu i
3. transverzijalnu.
Dva od gore navedena pojma, intenzija i ekstenzija su ve poznata is prethodnih izlaganja.
Shodno tome intenziju tipa entiteta predstavlja naziv tipa entiteta i skup njegovih obeleja.
Intenzija tipa entiteta se dobije navodjenjem svih njegovih obeleja posle navedenog naziva:
E(A
1
,A
2
,A
3
,...,A
n
). Oznaka za osobinu A
i
potie od skraenice engleske rei atribute koja na
naem jeziku znai obeleje. Kao to je ve objanjeno tip entiteta predstavlja samo najbitnije
osobine klase entiteta realnog sveta (to je, inae, zajednika osobina svih modela, zbog
abstrakcije u procesu formulisanja istih). Pretpostavimo da klasa entiteta ima skup osobina-
obeleja {A
1
,A
2
,A
3
,...,A
m
}. Tada skup obeleja {A
1
,A
2
,A
3
,...,A
n
} u intenziji tipa entiteta E
predstavlja pravi ili nepravi podskup skupa osobina klase entiteta {A
1
,A
2
,A
3
,...,A
m
}.
Primer. Tip entiteta VOZILO se predstavlja na sledei nain:
VOZILO(registarski_broj, broj_asije, tip_vozila, boja).
Klasu entiteta VOZILO danas krase i druge, moda ak i vane osobine, kao to su
broj_retrovizora, broj_air_bagova, duina_garantnog_roka, prosena-potronja_goriva, itd., koje
30
se, kako se vidi iz tipa entiteta nisu nale u modelu (tipu) entiteta. Skup osobina za izgradnju tipa
entiteta VOZILO znai pravi je podskup skupa osobina klase entiteta VOZILO.
Ekstenzija tipa entiteta odgovara skupu njegove konkretizacije (pojave). To znai da
ekstenziju tipa entiteta dobijemo nabrajanjem svih njegovih pojava.
Transverzija predstavlja povezanost ili razmenu podataka izmedju pojava (entiteta) ili
grupa pojava (tipova entiteta). Transverzija se moe definisati na dva nivoa apstrakcije.
Povezanosti izmedju entiteta na pojavnom nivou ili odnosi izmedju pojava tipova entiteta
nazivaju se vezama (to su konkretne veze) ili poveznicima. Generiki odnosi izmedju tipova
entiteta nazivaju se tipovima poveznika. U praktinim realizacijama se najee koriste tipovi
poveznika izmeu dva tipa entiteta. Veze definisane izmeu dva razliita entiteta nazivaju se
nehomogenim vezama. No dva tipa entiteta se ne moraju razlikovati: veze izmeu dva ista tipa
entiteta zovu se homogenim ili rekurzivnim vezama.


4.1.4. Intenzija ER modela i njeno grafiko predstavljanje

Intenziju ER modela podataka sainjavaju tip entiteta i tip poveznika. Ova dva osnovna
koncepta se grade od osnovnog gradivnog elementa, od obeleja. Grafiko predstavljanje
statike strukture realnog sistema u formi intenzije ER modela realizuje se pomou ER
dijagrama.
Postoje dve vrste ER dijagrama koje prikazuju dva nivoa detaljnosti: nivo detaljnosti tipa
entiteta i tipa poveznika i nivo detaljnosti obeleja. Dva stila ER dijagrama nivoa detaljnosti tipa
entiteta i tipa poveznika su prikazana na sl. 4.1. Tip entiteta se crta kao pravougaonik sa
centriranim upisom naziva tipa entiteta. Tip poveznika se predstavlja obinim potegom koji
povezuje dva tipa entiteta (a iznad potega se upisuje naziv tipa entiteta) ili se crta kao romb sa

KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE


Sl. 4.1.
31
centriranim upisom naziva tipa poveznika. Za rekurzivne veze nain predstavljanja dijagrama na
ovom nivou detaljnosti je isti s tim, to postoji samo jedan tip entiteta, odnosno da tip entiteta
povezuje jedan tip entiteta sa samim sobom (sl.4.2.). U tom sluaju u okviru istog tipa entiteta
jedan skup pojave tipa entiteta je povezan sa drugim skupom pojave tipa entiteta koji redovno
predstavlja podskup pomenutog prvog skupa. Skupovi pojave tipa entiteta imaju razliite uloge u
rekurzivnoj vezi.
Nivo detaljnosti obeleja na ER dijagramima se ispoljava u pojavljivanju samih obeleja ili
domena obeleja (ako vie obeleja imaju isti domen) pored tipova entiteta i tipova poveznika.
To znai da ER dijagrami nivoa detaljnosti obeleja u stvari predstavljaju proirene dijagrame
nivoa detaljnosti tipa entiteta i tipa poveznika. Ilustrativni primer za ovaj nivo detaljnosti se
nalazi na sl. 4.3.
RADNIK RADNIK RUKOVODI
RUKOVODI


Sl. 4.2.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
K NAZK ADRK R NAZR KLR CENAR
K NAZK ADRK R NAZR KLR CENAR


Sl. 4.3.
32
U praksi projektovanja statike strukture realnog sistema se najee koriste ER dijagrami
nivoa detaljnosti tipa entiteta i tipa poveznika.

4.1.5. Ekstenzija ER modela i njeno grafiko predstavljanje

Ekstenziju ER modela ine pojava tipa entiteta, skup pojava tipa entiteta, pojava tipa
poveznika i skup pjava tipa poveznika. Predstavljanje ekstenzije ER modela se vri pomou
tabela: priprema se po jedna tabela za svaki tip entiteta i tip poveznika. Tabele predstavljaju
samo okvir, jer ekstenziju ER modela sainjavaju same vrednosti (podaci) u tabelama. Takvo
predstavljanje ekstenzije u potpunosti odgovara nainu predstavljanja modela podataka u
relacionom modelu. ak se, kao kod relacionog modela, i ove tabele nazivaju relacijama
(entiteta i poveznika). Ilustracija predstavljanje ekstenzije ER modela se nalazi na sl. 4.4.


4.2. INTEGRITETNA KOMPONENTA ER MODELA

Integritetna komponenta ER modela obuhvata dve vane vrste ogranienja koja se
predstavljaju na konceptualnom nivou:
NARUDBA
Br_narudbe ifra_kupca Naziv_kupca Datum_nar
17494 112 Carnex 12.09.2000.
15944 147 Pionir 15.09.2000.
13675 174 Sever 05.10.2000.
19395 174 Sever 14.07.2000.
25495 112 Carnex 15.09.2000.
... ... ...

NARUDBA_1
Br_narudbe ifra_kupca Datum_nar
17494 112 12.09.2000.
15944 147 15.09.2000.
13675 174 05.10.2000.
19395 174 14.07.2000.
25495 112 15.09.2000.
... ... ...

KUPAC
ifra_kupca Naziv_kupca
112 Carnex
147 Pionir
174 Sever
...

Sl. 4.4.
33
1. kardinalnost tipa poveznika i
2. integritet domena.

4.2.1. Kardinalnost tipa poveznika


Najvanija crta tipa poveznika je njegova kardinalnost. Tipovi poveznika se mogu podeliti
u tri grupe, to ujedno i znai da dva tipa entiteta mogu biti u sledeim odnosima: 1:1, 1:N i
M:N. Primer za kardinalnost veze 1:1 je veza izmedju vozila i obaveznog osiguranja, tj. da jedno
vozilo moe da ima samo jedno obavezno osiguranje, a takodje jedno osiguranje se moe
odnositi samo na jedno vozilo. Kardinalnost tipa 1:N je prisutna u povezanosti izmedju lica
(vlasnika) i vozila, tj. da jedno vozilo moe imati samo jednog vlasnika, a jedno fiziko lice
moe imati vie vozila. Primer za tip kardinalnosti M:N je veza izmedju vozila i saobraajnih
nezgoda, tj. u jednoj saobraajnoj nezgodi mogu uestvovati vie vozila, a da jedno vozilo moe
preiveti ili uestvovati u vie saobraajnih nezgoda (naravno, i nadajmo se, ne istovremeno).
1

Postoje miljenja da se svaki tip poveznika, bez obzira na njegovu kardinalnost, mora
opisati podacima (saznanjima). Treba, medjutim, imati na umu i injenicu da sve pojave koje se
ele opisati saznanjima nazivaju entitetima, tj. ako se veza opie podacima postae entitet
(primer robe, narudbe i stavke narudbe), ili kako se jo naziva entitet-poveznik. U strunoj
literaturi se podacima opisan tip poveznika (entitet-poveznik) naziva gerundom. Gerund je tip
entiteta koji se dobije pretvaranjem tipa poveznika u tip entiteta. Potreba za stvaranjem gerunda
se javlja kada su neke pojave jednog tipa poveznika povezane sa nekim pojavama drugog tipa
poveznika. U tom sluaju se povezani tipovi poveznika pretvaraju u gerunde.
Ima preporuka sa anglosaksonskog govornog podruja da povezanost oznaava (vee) dve
sutine u zavisnosti od toga sa koje strane se posmatra ta veza, pa prema tome treba dodeliti dva
naziva za istu fiziku vezu. Povezanost je jedna bez obzira to povezuje dva (tipa) entiteta i zato
je pogreno posmatrati sa dve razliite strane i dodeliti joj dva naziva.
Za povezanost tipa kardinalnosti M:N se kae da ne predstavlja pravu vezu izmedju dva
entiteta koje povezuje, tj. ti entiteti nisu u vezi u pravom smislu rei. Dva entiteta su samo tada
povezani ako se identifikator (klju) jednog entiteta moe pronai u drugom entitetu. Tip
poveznika kardinalnosti M:N nije poeljan i zato ga treba ubacivanjem novog entitetapoveznika
razbiti na dva tipa poveznika kardinalnosti 1:N.
Poveznik ili povezanost je pojam koji se najtee shvata, medjutim veze predstavljaju klju
za efikasno memorisanje i rukovanje povezanih saznanja.
34
Semantika kardinaliteta tipa poveznika

Podrobnijom analizom optih osobina veza izmedju razliitih tipova entiteta, a takodje
izmedju razliitih pojava entiteta istog tipa, moe se doi do opteg opisa kardinaliteta tipa
poveznika koji ima sledei oblik:
)) b , (a E : ) b , (a E ( R
1 1 2 2 2 1

Grafiki prikaz veze opisane prethodnim optim opisom tipa kardinaliteta se nalazi na sl.
4.5.

U prethodnom izrazu R oznaava naziv tipa poveznika, E
1
i E
2
su nazivi entiteta, a
1
i a
2
su
minimalni, a b
1
i b
2
su maksimalni kardinaliteti tipa poveznika R.
U sluaju kad se govori o kardinalitetu poveznika, kao u taki 4.2.1., obino se
podrazumevaju maksimalni kardinaliteti. Shodno maksimalnim kardinalitetima (kardinalitetima
grupe 1:1, 1:N i M:N) upoznatih kod definisanja poveznika vri e se analiza moguih
kombinacija tipa i kardinalnosti, tj. minimalne i maksimalne kardinalnosti veza.
Svaka veza (svaki tip veze) definie dva tipa preslikavanja. Na osnovu gornje opte
definicije tipa poveznika ta dva tipa preslikavanja su sledea:
( )
( )
1 1 1 2 2
2 2 2 1 1
E b , a E : P
E b , a E : P


U preslikavanju P
1
E
1
predstavlja domen, a E
2
kodomen, pri emu a
2
i b
2
oznaavaju
minimalni (najmanji) i maksimalni (najvei) broj elemenata kodomena u koji se preslikava jedan
element domena, respektivno. Shodno tome
a
2
= min(card(P
1
)) i
b
2
= max(card(P
1
)).
Ponekad se minimalne vrednosti preslikavanja (napr. a
2
za preslikavanje P
1
) ne oznaavaju
na dijagramima, ve se formuliu reima (to je krajnje nepodesno za dijagramski prikaz). Za
nulu vrednost minimalne kardinalnosti se kae da je re o parcijalnoj (opcionoj) vezi, a kad je
minimalna kardinalnost jednaka jedinici, kae se da je veza totalna (obavezna).

1
Primeri uzeti iz [11.]

E
1
E
2
R
P
1
P
2
(a
2
,b
2
) (a
1
,b
1
)


Sl. 4.5.
35
Preslikavanje se moe predstaviti i u sledeem obliku:
( )
2 1 1
E GG , DG E : P
pri emu je, naravno:
DG = min(card(P
1
)) i
GG = max(card(P
1
)).


Kardinalitet grupe M:N
Kod ove grupe kardinaliteta su maksimalni kardinaliteti fiksni i poznati: b
1
= N i b
2
= M.
Minimalni kardinaliteti se slobodno menjaju i mogu uzimati bilo koje vrednosti. etiri osnovna
sluaja se analiziraju u ovoj grupi kardinaliteta kao to sledi u daljem tekstu.
1. a
1
=0 i a
2
=0 [ N)) , (0 E : M) , (0 E ( R
2 1
]
Minimalni kardinaliteti ukazuju na injenicu da u obe klase mogu postojati entiteti koji
nisu povezani sa bilo kojim entitetom druge klase, ali, naravno, nije iskljuen ni taj
sluaj kada su svi entiteti posmatrana dva tipa entiteta (posmatranih klasa) medjusobno
povezani. Grafika predstava ove vrste veze je prikazana na sl. 4.6. Entiteti klase E
1

(KUPAC) ne moraju biti povezani ni sa jednim entitetom, mogu biti povezani sa
jednim ili sa vie entiteta klase E
2
(ROBA). To vai i obratno, tj. entiteti klase E
2

(ROBA) mogu biti povezani sa jednim (ali ne moraju ni sa jednim) ili vie entiteta
klase E
1
(KUPAC).

KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(0,M) (0,N)


Sl. 4.6.
36
2. a
1
=1 i a
2
=0 [ N)) , (1 E : M) , (0 E ( R
2 1
]
Formulacija ove veze je sedea: svi entiteti tipa entiteta E
2
moraju biti povezani bar sa
jednim entitetom klase E
1
. To znai da je egzistencija entiteta u klasi E
2
je uslovljena
njihovom povezanou sa barem jednim entitetom iz tipa entiteta E
1
. Entiteti iz tipa
entiteta E
1
ne moraju biti povezani ni sa jednim entitetom, mogu biti povezani sa
jednim ili sa vie entiteta klase E
2
. Grafika predstava ove veze se nalazi na sl. 4.7.

3. a
1
=0 i a
2
=1 [ N)) , (0 E : M) , (1 E ( R
2 1
]
Ova veze se moe opisati na sledei nain: svi entiteti tipa entiteta E
1
moraju biti
povezani bar sa jednim entitetom klase E
2
. To znai da je egzistencija entiteta u klasi
E
1
je uslovljena njihovom povezanou sa barem jednim entitetom iz klase entiteta E
2
.
Entiteti iz tipa entiteta E
2
ne moraju biti povezani ni sa jednim entitetom, mogu biti
povezani sa jednim ili sa vie entiteta klase E
1
. Grafika predstava ove veze se nalazi
na sl. 4.8.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(0, M )
(1, N )


Sl. 4.7.

KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(1, M ) (0, N )


Sl. 4.8.
37
4. a
1
=1 i a
2
=1 [ N)) , (1 E : M) , (1 E ( R
2 1
]
Ovaj etvrti tip veze grupe vie prema vie ima sledee semantiko znaenje. Svaki
entitet jednog tipa entiteta mora biti povezan sa bar jednim entitetom druge klase.
Egzistencija entiteta u obe klase uslovljena je njihovom povezanou sa bar jednim
entitetom druge klase, to predstavlja izuzetno strogo ogranienje. Konkretno, svi
entiteti tipa entiteta E
1
moraju biti povezani bar sa jednim (a, naravno, mogu i sa vie)
entitetom klase E
2
, a takodje svi entiteti klase E
2
moraju biti povezani bar sa jednim (a,
naravno, mogu i sa vie) entitetom tipa entiteta E
2
. Grafika predstava ove veze se
nalazi na sl. 4.9.


Kardinalitet grupe 1:N
Za ovu grupu kardinaliteta vai da su maksimalni kardinaliteti b
1
= N i b
2
= 1. Kombinacija
minimalnih kardinaliteta i u ovom sluaju daje etiri razliite veze.
1. a
1
=0 i a
2
=0 [ N)) , (0 E : 1) , (0 E ( R
2 1
]
U ovom sluaju svaki entitet tipa entiteta E
1
ne mora biti povezan ni sa jednim, a moe
biti povezan sa najvie jednim entitetom iz klase E
2
. Entiteti klase E
2
ne moraju biti
povezani ni sa jednim entitetom, mogu biti povezani sa jednim ili sa vie entiteta klase
E
1
. Na jeziku grafike ova veza je formulisana na sl 4.10.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(1, M ) (1, N )


Sl. 4.9.
38

2. a
1
=0 i a
2
=1 [ N)) , (0 E : 1) , (1 E ( R
2 1
]
Za ovu vezu je karakteristino, da svaki entitet klase E
1
mora biti povezan sa jednim i
samo jednim entitetom iz klase entiteta E
2
, a entiteti tipa entiteta E
2
ne moraju biti
povezani ni sa jednim entitetom, mogu biti povezani sa jednim ili sa vie entiteta klase
E
1
. U grafikoj formi ova veza je predstavljena na sl 4.11.


3. a
1
=1 i a
2
=0 [ N)) , (1 E : 1) , (0 E ( R
2 1
]
Semantika ove veze je sledea. Svaki entitet tipa entiteta E
1
ne mora biti povezan ni sa
jednim, a moe biti povezan sa najvie jednim entitetom iz klase E
2
, a istovremeno
svaki entiteti klase E
2
mora biti povezan sa barem jednim, a moe biti povezan sa
veim brojem entiteta klase E
1
. Kao to se vidi sada su entiteti klase E
2
egzistencijalno
zavisni od postojanja veze sa entitetima klase E
1
. Odgovarajui grafik je na sl. 4.12.

KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(0, 1) (0, N)


Sl. 4.10.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(1, 1 ) (0, N )


Sl. 4.11.
39

4. a
1
=1 i a
2
=1 [ N)) , (1 E : 1) , (1 E ( R
2 1
]
Ova vrsta veze se reima moe opisati na sledei nain. Svaki entitet klase E
1
mora biti
povezan sa jednim i samo jednim entitetom klase E
2
, a entiteti tipa entiteta E
2
moraju
biti povezani bar sa jednim (a mogu i sa vie) entitetom klase E
1
. Ovde su entiteti obe
povezane klase su egzistencijalno uslovljeni postojanjem barem jedne konkretne veze
sa entitetima druge klase. Ovu formulaciju predstavlja grafik 4.13.


Kardinalitet grupe 1:1
Kod ove grupe kardinaliteta su maksimalni kardinaliteti isti i imaju vrednost b
1
= b
2
= 1, i
kao kod prethodne dve grupe kardinaliteta kombinacije dva minimalna kardinaliteta rezultuju
etiri mogue konkretne veze.

KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(0, 1 ) (1, N )


Sl. 4.12.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(1, 1 ) (1, N )


Sl. 4.13.
40
1. a
1
=0 i a
2
=0 [ 1)) , (0 E : 1) , (0 E ( R
2 1
]
Ova veza predstavlja situaciju kada svaki entitet jedne klase moe biti povezan sa
najvie jednim entitetom druge klase. Drugim reima svaki entitet tipa entiteta E
1
ne
mora biti povezan ni sa jednim, a moe biti povezan sa najvie jednim entitetom iz klase
E
2
, a to vai i za entitete klase E
2
, koji ne moraju biti povezani ni sa jednim, a mogu biti
povezani sa najvie jednim entitetom iz klase E
1
. Slika sl. 4.14. prikazuje ovu vezu.

2. a
1
=0 i a
2
=1 [ 1)) , (0 E : 1) , (1 E ( R
2 1
]
Svaki entitet klase E
1
za ovu vezu mora biti povezan sa jednim i samo jednim entitetom
iz klase entiteta E
2
, a konkretni entiteti tipa entiteta E
2
ne moraju, a mogu biti povezani
sa najvie jednim entitetom klase E
1
. Crte na sl 4.15. prikazuje ovu vezu.

3. a
1
=1 i a
2
=0 [ 1)) , (1 E : 1) , (0 E ( R
2 1
]
Semantiku ove veze je mogue formulisati na sledei nain. Svaki entitet tipa entiteta
E
1
ne mora biti povezan ni sa jednim, a moe biti povezan sa najvie jednim entitetom
iz klase E
2
, a istovremeno svaki entiteti klase E
2
mora biti povezan sa barem jednim i
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(0, 1) (0, 1)


Sl. 4.14.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(1, 1 ) (0, 1 )


Sl. 4.15.
41
samo jednim entitetom iz klase E
1
. Egzistencijalna zavisnost entiteta klase E
2
od
postojanja veze sa entitetima klase E
1
je oigledna. Odgovarajui grafik je na sl. 4.16.



4. a
1
=1 i a
2
=1 [ 1)) , (1 E : 1) , (1 E ( R
2 1
]
Poslednja vrsta veze u ovoj grupi se reima moe opisati na sledei nain. Svaki entitet
klase E
1
mora biti povezan sa jednim i samo jednim entitetom klase E
2
, a isto to vai i
za entitete klase E
2
, tj. svaki entitet klase E
2
mora biti povezani bar sa jednim i samo
jednim entitetom klase E
1
. Ovde je prisutna egzistencijalna uslovljenost svih entiteta
obe povezane klase od postojanja barem jedne konkretne veze sa entitetima druge
klase. Slikovito predstavljanje ove veze se nalazi na sl. 4.17.


KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(0, 1 ) (1, 1 )


Sl. 4.16.
KUPAC ROBA
KUPAC ROBA KUPUJE
KUPUJE
(1, 1 ) (1, 1 )


Sl. 4.17.
42
Rekurzivne veze
Odnosi izmedju razliitih entiteta istoga tipa se na konceptualnom nivou apstrakcije
nazivaju rekurzivnim vezama. Apstrakcijom konkretnih odnosa izmedju entiteta istoga tipa se
dolazi do pojma rekurzivnog tipa poveznika. Kod rekurzivnog tipa poveznika (ako se uporedjuje
sa klasinim tipom poveznika) isti tip entiteta predstavlja i prvu i drugu klasu entiteta, pri
emu jedna klasa obino predstavlja podskup druge klase. Kardinaliteti rekurzivnog tipa
poveznika mogu uzimati sve mogue vrednosti objanjenih u prethodnom delu ove take.
Kao primer za rekurzivni tip poveznika moe da poslui tip entiteta radnik i rekurzivni tip
poveznika Rukovodi sa kardinalitetima:

N)) (1, " nadredjeni " - Radnik : (0,1) " podredjeni " - (Radnik Rukovodi

Grafika predstava rekurzivnog tipa poveznika Rukovodi je na sl. 4.18.

Slabi tip entiteta
Na dijagramima tipova entiteta i tipova poveznika (ER dijagrami po engleskim reima
Entity Relationship) ponekad se zadaju samo maksimalne vrednosti kardinaliteta. Na takvim
crteima egzistencijalno zavisan tip entiteta (onaj koji ima minimalnu kardinalnost 1) se
oznaava dvostrukim pravougaonikom i naziva se slabi tip entiteta. Linija koja povezuje tip
poveznika (koji ima oznaku E za egzistencijalnu zavisnost) sa slabim tipom entiteta je usmerena
ka slabom tipu entiteta. esto se i tip poveznika koji povezuje slabi tip entiteta sa drugim tipom
entiteta naziva slabim tipom poveznika. Egzistencijalno nezavisni tipovi entiteta i njihovi tipovi
poveznika se smatraju regularnim i ponekad se to posebno istie u cilju razlikovanja od slabih
tipova entiteta i poveznika. Takav primer ilustruje sl. 4.19. na nama svim poznatim jezicima
grafike predstave.
RADNIK RADNIK RUKOVODI
(0, 1)
(1, N)
RUKOVODI


Sl. 4.18.
43

Identifikaciono zavisan tip entiteta
Identifikaciono zavisan tip entiteta predstavlja specijalan sluaj slabog tipa entiteta. Ako
slabi tip entiteta nema svoj (jedinstveni) identifikator, nego se identifikuje pomou
identifikatora egzistencijalno nezavisnog entiteta sa kojim je u neposrednoj vezi, onda se on
zove identifikaciono zavisni tip entiteta. Pojave tipa identifikaciono zavisnog entiteta se ne
mogu jednoznano identifikovati pomou vrednosti nekog svog obeleja, ve im treba
pridruiti identifikator regularnog tipa entiteta sa kojim ga povezuje identifikaciono zavisan tip
poveznika. Identifikaciona zavisnost uvek znai i egzistencijalnu zavisnost, a to obrnuto ne
mora automatski vaiti.
Pretpostavimo primer studenta koji ima za svoju identifikaciju broj indeksa na svom
matinom fakultetu, no to ga ne moe identifikovati na nivou drave. Na nivou drave njegov
identifikator moe biti broj indeksa i identifikator (ifra) matinog fakulteta koji je jedinstven
na nivou drave (sl. 4.20.).
RADNO MESTO RADNIK RASPOREDJEN
RADNO MESTO RADNIK
RADNO MESTO RADNIK RASPOREDJEN
(0, N) (1, 1)
N 1
E


Sl. 4.19.
FAKULTET STUDENT F - S
FAKULTET STUDENT
FAKULTET STUDENT F - S
(0, N) (1, 1)
N 1
ID


Sl. 4.20.
44
4.2.2. Integritet domena

Integritet domena je ogranienje koje se u optem sluaju predstavlja pomou trojke: tip
podatka, duina podatka, uslov. Tip i duina podatka ograniavaju vrednosti obeleja iz domena
na tip i broj simbola, a uslov precizira prefinjenije zahteve. Uslov se formulie izrazom ili
funkcijom. Izrazi sadre konstante, operacije poreenja i logike operacije za stvaranje sloenih
uslova (ogranienja). Funkcije obuhvataju obeleja u svojim argument listama, tj. pored
konstanti sadre i obeleja u opisu ili realizuju neki algoritam.
Nula vrednost je specijalno ogranienje domena. Ovo ogranienje nema nikakve veze sa
brojem 0. Nula vrednost oznaava da li obeleje moe imati nedefinisanu vrednost ili vrednost
prazno. Nula vrednost ima sledea tri semantika znaenja:
1. postojea, ali u trenutku upisivanja nepoznata vrednost
2. postojea i poznata prazna vrednost ili
3. neprimereno svojstvo.

4.3. OPERACIJSKA KOMPONENTA MODELA ENTITETA I POVEZNIKA

Model entiteta i poveznika (Entity Relationship Model ER Model) se intenzivno koristi u
izgradnji pojmovnog modela podataka (za logiko projektovaje baze podataka), to predstavlja
statiki model sistema podataka. ER model nema realizovanog sistema za upravljanje bazom
podataka. Prvobitno (od strane tvorca modela P. P. Chen-a) operacijska komponenta modela nije
bila razraena. Kasnije, tokom osamdesetih godina XX. veka predloeno je vie jezika za
manipulisanje podacima za ovaj model. I sam Chen je definisao operacijsku komponentu ER
modela koja je slina SQL jeziku relacionog modela podataka. U nastavku se nalazi opis jezika
za manipulaciju podataka razraen na Fakultetu organizacionih nauka u Beogradu.
Operacijska komponenta sadri dve razliite klase operacija, i to:
1. operacije pretraivanja (izvetavanja) i
2. operacije auriranja (odravanja).
Operacije pretraivanja odnosno izvetavanja se vezuju za upitne jezike danas preteno
relacionog tipa (SQL SELECT), i zbog toga se ovde pomenute operacije ne razmatraju. Njima e
biti posveena nuno potrebna panja u glavi 8.


45
4.3.1. Operacije auriranja baze podataka

Meu operacije za auriranje baze podataka spadaju sledee osnovne operacije: upii, brii,
promeni, povei, razvei i prevei. Prve tri operacije se odnose na entitet (pojavu tipa entiteta), a
naredne tri na konkretne veze (pojave tipa poveznika).
Operacije auriranja nad bazom podataka nisu ograniene samo na jedan tip entiteta (na
sve pojave jednog tipa entiteta), ve se mogu iriti kroz bazu podataka. Pri izvravanju osnovnih
operacija za auriranje baze podataka mora se odravati integritet baze podataka: mora se
kontrolisati da li su sva modelom definisana strukturna i vrednosna ogranienja zadovoljena.
Strukturna pravila integriteta predstavljaju akcije (niz operacija) koje se izvravaju u
situacijama kada neka osnovna operacija narui neko strukturno ogranienje. Mogua strukturna
pravila integriteta (SPI) su:
1. RESTRICTED (R) operacija koja bi naruila neko strukturno ogranienje se ne
izvodi (njeni efekti se ponitavaju),
2. CASCADES (C) osnovna operacija se nastavlja nad tipom entiteta kod kojeg je
integritet (strukturno ogranienje) naruen takvim operacijama koje e obezbediti
zadovoljavanje (odravanje) uslova integriteta,
3. NULLIFIES (N) oporavak naruenog integriteta se obezbeuje upisivanjem nula
(jo nepoznatog) entiteta (jo nepoznate pojave tipa entiteta) koji zamenjuje entitet
iji nedostatak (nepostojanje) naruio uslov integriteta, i
4. DEFAULT (D) oporavak naruenog integriteta se obezbeuje upisivanjem
default (pretpostavljenog) entiteta (pretpostavljeno pojavljivanje tipa entiteta) koji
zamenjuje entitet iji nedostatak (nepostojanje) naruio uslov integriteta.

Semantika i sintaksa osnovnih operacija za auriranje (odravanje) baze podataka se
definie navoenjem naziva operacije, ulaznih parametara, strukturnog pravila integriteta (SPI)
kao specifinog ulaznog parametra, preduslova za izvrenje operacije, efekata operacije
(postuslova), a u opisu semantike (algoritma) pojedinih operacija koriste se sledee oznake
(prema Draganu Mihajloviu i Laboratorije za informacione sisteme FON-a):
X naziv tipa entiteta sa kojim se vri operacija,
X entitet, tj. jedna pojava tipa entiteta X,
Y naziv tipa entiteta kodomena posmatranog preslikavanja,
Y entitet, tj. jedna pojava tipa entiteta Y kodomena posmatranog preslikavanja,
X.P naziv preslikavanja,
x.P podskup preslikavanja P za dati entitet x (pojavu tipa entiteta X),
46
Y.P
-1
inverzno preslikavanje preslikavanju P,
y.P
-1
podskup inverznog preslikavanja P za dati entitet y (pojavu tipa entiteta Y),
vspi jedno od strukturnih pravila integriteta: RESTRICTED (R), CASCADES (C),
NULLIFIES (N), DEFAULT (D),
nula_y nula entitet tipa entiteta Y,
default_y default entitet tipa entiteta Y.

(1) UPII_X(x,y
1
,y
2
,...,y
n
)
SPI: vspi X.P
1
, vspi X.P
2
,..., vspi X.P
n

Argumenti ove operacije su entitet x (jedna pojava tipa entiteta X) i po jedan entitet iz
tipova entiteta kodomena za sva obavezna preslikavanja (za koja minimalna kardinalnost
jednaka 1)

pre: ne postoji x u X (ne postoji entitet x u tipu entiteta X)
post: postoji x u X

if nisu zadati svi parametri
then zadaj sve parametre;
end if;
if x JE_U X
then odbij_operaciju;
end if;
for each X.P
i
iz SPI do
if card(y
i
.P
i
-1
) = GG(P
i
-1
)
then odbij_operaciju;
end for;
upii_X(x);
for each P
i
iz SPI do
if y
i
JE_U Y
i

then povei_X.P
i
(x,y)
else case vspi of
R: odbij_operaciju;
C: UPII_Y
i
(y
i
)
47
povei_X.P
i
(x,y
i
);
N: povei_X.P
i
(x,nula_y);
D: povei_X.P
i
(x,default_y);
end case;
end if;
end for;
end;

(2) BRII_X(x)
SPI: vspi X.P
1
, vspi X.P
2
,..., vspi X.P
n

Argument ove operacije je jedan entitet x, tanije samo njegov identifikator

pre: postoji x u X
post: ne postoji x u X

if x NOT JE_U X
then odbij_operaciju;
end if;
for each X.P
i
do
if POSTOJI y JE_U x.P
i
AND card(y.P
i
-1
) = DG(P
i
-1
) AND X.P
i
JE_U SPI
then case vspi of
R: odbij_operaciju;
C: for each y iz x.P
i
do
razvei_y.P
i
-1
(y,x);
BRII_Y(y);
end for;
N: prevei_Y.P
i
-1
(y,x,nula_x);
D: prevei_Y.P
i
-1
(y,x,default_x);
end case;
end if;
end for;
brii_X(x);
end;
48
(3) PROMENI_X(x
1s
,x
1n
)

Argumenti ove operacije su stari i novi entitet, a strukturna pravila integriteta nisu
navedena, jer operacija promeni ne naruava strukturalni integritet (strukturalna
ogranienja). Ovoj operaciji odgovarajua operacija u relacionom modelu, ako se menja
klju ili spoljni klju relacije moe da dovede do naruavanja integritet baze podataka.

pre: postoji x
1s
u X
post: entitet x
1s
dobija nove konkretizacije obeleja (x
1n
)


(4) POVEI_X.P(x,y)
SPI: vspi Y

pre: ne postoji <x,y> (konkretno preslikavanje) u preslikavanju X.P
post: postoji <x,y> u preslikavanju X.P

if x NOT JE_U X
then odbij_operaciju;
end if;
if <x,y> JE_U X.P
then odbij_operaciju;
end if;
if card(x.P) = GG(X.P)
then odbij_operaciju;
end if;
if card(y.P
-1
) = GG(Y.P
-1
)
then odbij_operaciju;
end if;
if y JE_U Y
then povei_X.P(,y)
else case vspi of
R: odbij_operaciju;
C: UPII_Y(y)
49
povei_X.P(x,y);
N: povei_X.P(x,nula_y);
D: povei_X.P(x,default_y);
end case;
end if;
end;


(5) RAZVEI_X.P(x,y)
SPI: vspi Y

pre: postoji <x,y> (konkretno preslikavanje) u klasi preslikavanja X.P
post: ne postoji <x,y> u klasi preslikavanja X.P

if <x,y> NOT JE_U X.P
then odbij_operaciju;
end if;
if card(x.P) = DG(X.P)
then odbij_operaciju;
end if;
if card(y.P
-1
) > DG(Y.P
-1
)
then razvei_X.P(x,y)
else case vspi of
R: odbij_operaciju;
C: BRII_Y(y)
Razvei_X.P(x,y);
N: prevei_Y.P
-1
(y,x,nula_x);
D: prevei_Y.P
-1
(y,x,default_x);
end case;
end if;
end;



50
(6) PREVEI_X.P(x,y
1
,y
2
)
SPI: vspi Y(sa), vspi Y(na)
pre: postoji <x,y
1
> (konkretno preslikavanje) u klasi preslikavanja X.P i
ne postoji <x,y
2
> (konkretno preslikavanje) u klasi preslikavanja X.P
post: ne postoji <x,y
1
> (konkretno preslikavanje) u klasi preslikavanja X.P i
postoji <x,y
2
> (konkretno preslikavanje) u klasi preslikavanja X.P

if <x,y
1
> NOT JE_U X.P
then odbij_operaciju;
end if;
if <x,y
2
> JE_U X.P
then odbij_operaciju;
end if;
if card(x.P) = DG(X.P)
then odbij_operaciju;
end if;
if card(y
2
.P
-1
) = GG(X.P
-1
)
then odbij_operaciju;
end if;
if card(y
1
.P
-1
) > DG(Y.P
-1
)
then if y
2
JE_U Y
then razvei_X.P(x,y
1
);
povei_X.P(x,y
2
);
else razvei_X.P(x,y
1
);
POVEI_X.P(x,y
2
); {pod uslovom vspi(na)}
end if;
else if y
2
JE_U Y
then povei_X.P(x,y
2
);
RAZVEI_X.P(x,y
1
); {pod uslovom vspi(sa)}
else POVEI_X.P(x,y
2
); {pod uslovom vspi(na)}
RAZVEI_X.P(x,y
1
); {pod uslovom vspi(sa)}
end if;
end if;
end;
51
4.4. PROIRENJA MODELA ENTITETA I POVEZNIKA

Nakon ireg prihvatanja i primene modela entiteta i poveznika, ukazala se potreba za
uvoenjem novih koncepata i postupaka u cilju obogaenja semantike ER modela. Bogatija
sematika modela obezbeuje efikasnije opisivanje realnog sistema. Proirenje modela entiteta i
poveznika obuhvata sledee nove koncepte: superklasa, potklasa, kategorija i gerund. Za
realizaciju prethodno navedenih novih koncepata su neophodne sledee apstrakcije (postupci):
generalizacija, specijalizacija, kategorizacija, agregacija i asocijacija.
Superklasa i potklasa kao novi koncepti su nastali prepoznavanjem situacije da realni
entiteti iste klase ili kategorije imaju iste vrednosti nekog ili nekih obeleja. Grupisanje tih
entiteta po zajednikim obelejima se vri pomou generalizacije ili specijalizacije. To je proces
koji dovodi do tzv. IS_A hijerarhije entiteta. Predstavljanje grupisanjem dobijenih podskupova
entiteta pomou koncepta superklase i potklase se moe realizovati nakon to se:
1. zajednike osobine (obeleja) grupiu u superklasu i
2. specifine osobine (obeleja) se grupiu u odgovarajue potklase.
Specifina obeleja predstavljaju svojstvenu osobinu samo dotine potklase, za entitete
drugih potklasa predstavljaju neprimereno svojstvo. Geometrijska prezentacija IS_A hijerarhije
se nalazi na sl. 4.21. Superklasa sadri zajednie osobine-obeleja (i primarni klju, naravno), a
potklasa naleuje primarni klju superklase i ima svoja specifina obeleja. Potklasa (preko
vrednosti primarnog kljua) nasleuje svoje osobine-obeleja od svoje superklase, zbog toga se
ona ne moe izdvojeno razmatrati (bez svoje superklase).
STUDENT VT-a
BRINDEKSA ADRESASTU TELEFSTU
JE
SAMOFINANSIJER NA TERET BUDZETA
KOLARINA PLACENA KOLARINA USLOV ZA STATUS USLOV ISPUNJEN


sl.4.21.
52
Proces izgradnje IS_A hijerarhije se zove specijalizacija, ako izgradnja krene od tipa
entiteta (budua superklasa) iz koje se izdvajaju potklase sa odgovarajuim obelejima.
Generalizacija je obrnuti proces u odnosu na specijalizaciju: kree se od grupe razliitih tipova
entiteta (budue potklase) prepoznavanjem i izdvajanjem zajednikih obeleja (na taj nain se
gradi superklasa).
Kardinalnost poveznika u IS_A hijerarhiji se odreuje na isti nain kao za svaki drugi tip
poveznika, s tim, da je kardinalnost preslikavanja sa skupa pojava potklasa na skup pojave
superklase je uvek 1:1 (i to, po pravilu, se i ne oznaava na ER dijagramima). Kardinalnost tipa
poveznika u IS_A hijerarhiji iz pravca superklase prema potklasama je specifina, jer u okviru
minimalnog kardinaliteta se posmatra broj pojava veza (ili broj konkretnih povezanosti)
izmeu pojava dve klase, a maksimalni kardinalitet odraava broj pojava razliitih potklasa koje
odgovaraju jednoj konkretizaciji superklase. Ako svakoj pojavi superklase odgovara bar jedna
pojava neke od potklasa, minimalni kardinalitet je 1 (totalno preslikavanje), a ako bar jednoj
pojavi superklase ne odgovara ni jedna pojava bilo koje podklase, minimalni kardinalitet je 0
(parcijalno preslikavanje). Ako svakoj pojavi superklase odgovara pojava iz najvie jedne
potklase, maximalni kardinalitet je 1 (disjunktno preslikavanje), a ako bar jednoj pojavi
superklase odgovaraju pojave iz vie od jedne potklase, maximalni kardinalitet je N (preseno
preslikavanje). Primer na sl. 4.21. prikazuje superklasu (nadtip entiteta) STUDENT VT-a sa
potklasama (podtipovima entiteta) SAMOFINANSIJER i NA TERET BUDZETA. Nadtip
entiteta ima kardinalnost tipa poveznika (u IS_A hijerarhiji) 1:1, tj. radi se o totalnom i
disjunktnom preslikavanju. Verbalno objanjenje je sledee: pojava nadtipa entiteta STUDENT
VT-a ima za posledicu da e se pojaviti bar jedna pojava u nekoj potklasi (student je
samofinansijer, ili studira na teret budeta) minimalni kardinalitet 1, tj. totalno preslikavanje;
pojava nadtipa entiteta STUDENT VT-a ima za posledicu da e se pojaviti pojava u striktno
samo jednoj potklasi (student je ili samofinansijer, ili studira na teret budeta, tree mogunosti
nema) maksimalni kardinalitet 1, tj. radi se o disjunktnom preslikavanju.
Kategorija kao novi koncept u modelu entiteta i poveznika nastaje u situacijama kada
potklasa, na osnovu uloga pojava razliitih tipova entiteta, neke od pojava tih, razliitih tipova
entiteta se obuhvata u jednu kategoriju. Tada potklasa predstavlja kategoriju. Ilustracija za
grafiku predstavu kategorije se nalazi na sl.4.22. Narudbu moe da poalje kako fiziko tako i
pravno lice. KUPAC je, znai, podskup unije konkretnih fizikih i pravnih lica i predstavlja
kategoriju. Superklase su PRAVNO LICE i FIZIKO LICE. Poto Kupac nasleuje obeleja od
pravnog ili fizikog lica (ali, naravno ne istovremeno od oba) i identifikatori nadtipa entiteta
53
FIZICKO LICE PRAVNO LICE
JE
ALJE
KUPAC
NARUDZBA
(0,1)
(0,1)
(0,1)
(1,N)
(1,1)


sl.4.22.
PRAVNO LICE i FIZIKO LICE su razliiti, za kategoriju se uvodi novi identifikator
(obeleje) klju kategorije (koji se esto naziva surogatom).
Gerund je ve pominjan u prethodnom delu teksta, i reeno je da predstavlja vezni tip
entiteta ili tip entiteta koji se dobije pretvaranjem tipa poveznika. Neki ga zovu kao meoviti tip
entitet-veza. Primena gerunda je neophodna u situacijama kada je potrebno povezati dva tipa
poveznika (tada se tipovi poveznika transformiu u gerunde) ili kada treba povezati tip
poveznika sa tipom entiteta (i ovde se tip poveznika pretvara u gerund). Identifikator gerunda je
PROFESOR PREDMET
SLUA
IZABRAN
ODELJENJE
PREDAJE

sl.4.23.
54
sloene konstrukcije koji se formira prenoenjem identifikatora dva povezana tipa entiteta.
Drugim reima gerund nema sopstveni identifikator, ve ga identifikuju identifikatori tipova
entiteta koje on povezuje. Na dijagramima se gerund prikazuje rombom upisanim u
pravougaonik. Primer primene gerunda se nalazi na sl. 4.23.
Semantika znaenja dela ER dijagrama sa sl.4.23. je sledea:
1. profesor pr je IZABRAN za predmet pt,
2. predmet pt SLUA odeljenje od i
3. profesor pr predmet pt za koji je IZABRAN PREDAJE odeljenju od koji taj predmet
SLUA.
Isti deo realnog sistema predstavljen ER dijagramom, ali bez primene gerunda se nalazi na
sl.4.24.

Da bi ukazali na bogatiju mo i preciznost izraavanja pomou gerunda, analiziramo
znaenje dela ER dijagrama na sl.4.24.:
1. profesor pr je IZABRAN za predmet pt,
2. predmet pt SLUA odeljenje od i
3. profesor pr predmet pt PREDAJE odeljenju od.
Treba istai da na sl.4.24. nema nikakvog ogranienja ko e kakav predmet predavati
kojem odeljenju, tj. moe se desiti da e profesor pr drati predavanje iz predmeta pt, za koji i
nije izabran odeljenju od koji uopte ne slua taj predmet pt. Smisaono znaenje dela ER
dijagrama na sl.4.23. i sl.4.24. je sasvim drugo, razlike su ogromne.
PROFESOR PREDMET
ODELJENJE
PREDAJE
SLUA
IZABRAN


sl.4.24.
55
4.5. IZRADA MODELA ENTITETA I POVEZNIKA (ER MODELA)

ER model slui za prikaz statikog modela realnog sistema. Model obuhvata bitne pojave
(entitete) o kojima vode evidenciju u delu realnog sveta koji se modelira i o meusobnim vezama
(poveznicima) izmeu bitnih pojava. Preduslov za izradu ER modela je upoznavanje realnog
sveta to se moe apsolvirati na osnovu tekstualnog ili usmenog objanjavanja sutine (bitnih
pojmova), veza izmeu bitnih pojmova, funkcionisanja, ciljeva i pravila poslovanja, itd.
Neformalne tekstove za opis realnog sistema treba pretvarati pomou raspoloivih postupaka u
koncepte ER modela. Heuristika uputstva [19] pruaju grube vodilje pri projektovanju modela
realnog sistema na osnovu tekstualnog opisa istog:
1. imenice predstavljaju potencijalne tipove entiteta,
2. glagolski oblici ukazuju na mogue poveznike ili gerunde,
3. izrazi tipa barem jedan, vie i slino predstavljaju mogue kardinalitete tipova
poveznika ili gerunda,
4. postojanje razliitih uloga entiteta jednog tipa u vezama sa entitetima drugih tipova
ukazuje na
a. potrebu uvoenja vie tipova poveznika izmeu dotinih tipova entiteta, ili
b. potrebu uvoenja IS_A hijerarhije,
5. veze izmeu entiteta u okviru istog tipa entiteta signalizira potrebu izgradnje
rekurzivnog tipa entiteta (uloge entiteta se kod takvih veza obavezno navode),
6. vremensko prethoenje entiteta jednog tipa u odnosu na entitete nekog drugog tipa
oznaava egzistencijalnu zavisnost entiteta drugog tipa od entiteta prvog tipa
(minimalni kardinalitet poveznika sa pravca drugog tipa bie 1),
7. potreba takvog selektivnog povezivanja entiteta tri ili vie skupova, kod kojeg u
vezi mogu uesvovati samo entiteti, koji su ve u nekakvoj drugoj vezi sa
entitetima jednog (ili vie) drugih skupova, ukazuje na neophodnost korienja
gerunda, kao modela tih drugih veza
2

8. postojanje specifinih vrednosti obeleja entiteta istog tipa signalizira potrebu
uvoenja IS_A hijerarhije,
9. obeleje moe pripadati samo jednom entitetu ili gerundu,
10. osobina tipa entiteta ili gerunda moe postati obeleje samo ako je bitna sa take
gledita realizacije ciljeva informacionog sistema u razvoju.


2
izvor [19], str. 51-52.
56
RADNIK POZAJMLJUJE KNJIGA
(0, M )
(0, N )
ODELJENJE
NAZIV
TELEFON


Sl. 4.26.
BRAK
MUZ
LICE
(1,1 )
DATUM
(0, 1 )
ZENA
(1,1 ) (0, 1 )


Sl. 4.27.
ODELJENJE RADNIK RADI
(0, N ) (1, 1 )
UCESTVUJE PROJEKT
(0, M )
(0, N )

Sl. 4.25.
Preslikavanje pojmova iz realnog sveta nije jednoznano. Razliite predstave istog pojma
ne mora oznaavati loe reenje. U narednim primerima se ukazuje na relativnost predstavljanja.
U prvom primeru isti pojam (ODELJENJE) moe da se javlja i kao entitet i kao obeleje. ER
dijagram na sl.4.25. prikazuje deo strukture nekog preduzea, na kojem ODELJENJE predstavlja
nezavisan objekat posmatranja o kojem elimo evidentirati podatke. Sl.4.26. predstavlja deo
modela podataka za biblioteku nekog preduzea. U tom modelu ODELJENJE nema taku vanu
ulogu (nema svoju samostalnost posebno nas ne interesuje, ve samo kao opis radnika), da bi
se o njemu vodila evidencija, ve predstavlja samo fiziko okruenje radnika koji posuuje
knjige iz pomenute biblioteke.



U drugom primeru izabrani pojam (BRAK) u zavisnosti od realnog sistema i ciljeva
informacionog sistema igra takoe dvojnu ulogu: jednom kao entitet (sl. 4.27.), a u drugom
sluaju kao veza (sl. 4.28.). U matinom uredu se evidentiraju brakovi i vode se podaci o
57
VOZILO LICE
REG.BROJ
VLASNIK JMBG


Sl. 4.29.
VOZILO LICE
REG.BROJ
JMBG
VLASNIK
(0,1)
(0,N)


Sl. 4.30.
pojedinim sklopljenim brakovima (ne samo datum sklapanja, ve i svedoci, matiar, mesto, itd.).
Tu je brak naravno entitet. Za poreske vlasti (sl. 4.28.) sam brak nije interesantan sa svim
prethodno nabrajanim pojedinostima: za njih brak slui samo za identifikaciju porodice, tanije
prihoda steenih od strane lanova porodice. Ovde brak slui za povezivanje lica sa
odgovarajuim poreskim podacima.

U treem primeru je VLASNIK taj pojam koji se prikazuje u razliitim okolnostima kao
obeleje ili veza. VLASNIK se moe prikazati kao obeleje u okviru tipa entiteta VOZILO
(sl.4.29.), mada se to u strunim krugovima ne smatra besprekornim reenjem. Prihvatljivije je
da se VLASNIK prikae kao veza (sl. 4.30) izmeu LICA i VOZILA.


LICE
(0, 1 )
(0, 1 )
BRAK
PORESKI BROJ


Sl. 4.28.
58
5. RELACIONI MODEL PODATAKA

Relacioni model podataka je nastao poetkom sedamdesetih godina, kada je Codd objavio
njegov uveni rad u vezi ovog, tada novog modela podataka. Daljem razvoju relacionog modela
su doprineli takvi istaknuti naunici kao to su Fagin, Ullmann, Rissanen Beeri, Bernstein, itd.
Nedostaci u do tada primenjena dva (mreni i hijerarhijski) modela podataka su definisali cilj
istraivanja u vezi razrade novog (relacionog) modela, a to su (Mogin):
1. razgranienje logike od fizike strukture baze podataka
2. obezbeenje strukturalne jednostavnosti modela i
3. razrada deklarativnog (neproceduralnog) jezika za manipulisanje podacima.
Istraivanja u vezi razgraniavanja logike od fizike strukture podataka su dovela su do
logike i fizike nezavisnosti podataka, dva fundamentalna principa koji su ispotovani,
deklarisani u relacionom modelu i predstavljaju kvalitetan napredak u odnosu na prethodne
modele podataka.
Strukturalna jednostavnost u relacionom modelu je postignuta prihvatanjem relacije,
odnosno dvodimenzionalne tabele kao reprezenta modela. Odnosi izmeu podataka u razliitim
tabelama su realizovani podacima u okviru postojeih tabela (prosleivanjem stranog klju) ili
pomou nove tabele (nove relacije).
Za razvoj deklarativnog jezika za manipulisanje podacima iskorieni su relaciona algebra
i relacioni raun. Relaciona algebra je u toku razvoja deklarativnog jezika proiren veim brojem
skupovnih operatora za potrebe relacionog modela. Operacije relacione algebre se mogu
predstaviti jednim logikim iskazom relacionog rauna. Deklarativni jezik za manipulisanje
podacima (SQL) se bazira na relacionom raunu. SQL je prvenstveno namenjen za definisaje i
auriranje podataka i za postavljanje upita bilo koje vrste (koji se odnose na podatke u jednoj ili
u vie tabela). SQL nije projektovan za izvrenje obrade podataka, nego za ugradnju u jezike
tree i etvrte generacije, a tamo ve postoje naredbe za obradu podataka.


5.1. STRUKTURALNA KOMPONENTA RELACIONOG MODELA

Strukturalna komponenta ukazuje na elemente (koncepte) modela od kojih se gradi relacioni
model. Na nivou intenzije koncepti su obeleje, ema relacije (relacija) i ema baze podataka, a
na nivou ekstenzije su domen obeleja, torka, relacija i pojava baze podataka. Osnovni ili
59
primitivni koncepti (elementi) su samo obeleje i element domena obeleja i pomou njih se
grade, na osnovu matematikih pravila ostali elementi modela.
Relacija se u matematici definie kao podskup Dekartovog proizvoda domena obeleja u
strogo odreenom redosledu: dom(A
1
)dom(A
2
) dom(A
k
). Relacija je, znai, skup ureenih
k-torki sa datim redosledom obeleja (atributa), tako da u (a
1
,a
2
,,a
k
) vai za svako
i{1,2,,k}, a
i
dom(A
i
). U relacionom modelu se preuzima matematika definicija relacije, s
tim, da se strogi redosled obeleja iz matematike definicije ne trai.
Relacije se predstavljaju tabelama, gde (sadraji) zaglavlja predstavljaju (konkretna)
obeleja, a redovi su konkretne relacije. Redosled pojavljivanja vrsta u tabeli je takoe nevaan.
ema relacije je koncept na intenzionalnom nivou i predstavlja sliku relacije (koncepta
na ekstenzionalnom nivou). emu relacije predstavlja dvojka kojoj se dodeljuje ime: R(A, O)
gde je R naziv eme relacije, A skup obeleja (atributa), a O je skup ogranienja. ema relacije
opisuje statiku strukturu (osobine) jednog tipa entiteta. Svaka pojava eme relacije predstavlja
jedan konkretan entitet (eksplicitnom listom vrednosti njegovih osobina) dotinog tipa entiteta.
Naravno, svaka pojava nad emom relacije mora odgovarati celokupnom skupu ogranienja O.
Klju eme relacije je obeleje ili skup obeleja sa sledeim osobinama: klju, sa jedne
strane, mora biti jedinstven, tj. pomou njegove vrednosti se moraju jednoznano identifikovati
redovi (torke, odnosno, konkretni entiteti). Sa druge strane klju mora biti minimalan, tj. nijedan
njegov pravi podskup ne sme imati osobine kljua. ema relacije teoretski moe imati vie
ekvivalentnih kljueva (ili kandidata za klju), od kojih se jedan bira za primarni (a ostali postaju
alternativni kljuevi).
ema baze podataka se, slino emi relacije, predstavlja kao imenovana dvojka S(SR,
MRO), gde je S naziv eme baze podataka, SR je konaan skup eme ralacija, a MRO je skup
meurelacionih ogranienja i ogranienja, koja su posledica pravnih i drugih pravila poslovanja.
Pojava baze podataka je takva pojava koja obuhvata pojavu ili pojave ema relacije iz eme baze
podataka, ali samo takve pojave mogu doi u obzir koje odgovaraju svim ogranienjima iz skupa
MRO.


5.2. INTEGRITETNA KOMPONENTA RELACIONOG MODELA

Ogranienja predstavljaju sutinsku komponentu definicije eme baze podataka. Ona su
neophodna pri iniciranju i auriranju baze podataka i obavezno se kontroliu pri obradi u cilju
60
obezbeenja konzistentnog sadraja (stanja) baze podataka. Ogranienja se mogu svrstavati u
sledee grupe (Mogin, str. 93):
1. ogranienja torki,
2. relaciona ogranienja i
3. meurelaciona ogranienja.
Ogranienja torki su u stvari specijalan sluaj relacionih ogranienja. Prve dve vrste
ogranienja obezbeuju da relacije predstavljaju pojave nad emom relacije kojoj pripadaju po
skupu obeleja. Relaciona ogranienja, znai, predstavljaju osnovu za kontrolu da li svaka torka
(svaki red tabele) predstavlja pojavu nad emom relacije kojoj pripada, pomou njih se
kontrolie lokalna konzistentnost.
Meurelaciona ogranienja slue za kontrolu globalne konzistentnosti baze podataka (kao
pojave), tj. kontrolie se pojava baze podataka, da li odgovara svim meurelacionim
ogranienjima (MRO) definisanim u emi baze podataka. Baza podataka mora biti i lokalno i
globalno konzistentna, tako se meurelaciona ogranienja mogu smatrati kao specijalan sluaj
ogranienja baze podataka.
Najvei broj ogranienja se ugrauje, odnosno proizilazi iz strukture baze podataka.
Ogranienja naravno postoje i na pojmovnom nivou, tj. u modelu podataka, i, upravo ta
ogranienja se u modelu podataka preko integritetne komponente relacionog modela ugrauju
(preteno) u strukturu baze podataka.
U narednom izlaganju e biti rei o sledeim ogranienjima: ogranienja domena, integritet
entiteta (klju), funkcionalna zavisnost, tranzitivna zavisnost, vieznana zavisnost, zavisnost
spoja, zavisnost sadravanja i uoptena ogranienja.
U praksi projektovanja baza podataka ureenost relacija se meri normalnim formama
(videti kasnije). Bez obzira to je definisano est normalnih formi, nivo kvaliteta tree normalne
forme ve zadovoljava projektante u najveem broju sluajeva. Shodno tome vieznane
zavisnosti i zavisnosti spoja neemo razmatrati jer su one vezane za etvrtu i petu normalnu
formu.
Ogranienja domena oznaavaju injenicu, da obeleje (atribut) moe uzimati vrednsoti
iz odreenog domena (eventualno opsega vrednosti).
Integritet entiteta se sastoji od dva ogranienja:
1. klju predstavlja obeleje ili skup obeleja koji jednoznano identifikuje svaku
torku nad emom relacije (svaki red u tabeli), tj. vrednosti kljua moraju biti
jedinstvene i
61
2. ni klju, ni bilo koje obeleje u sastavu kljua ne sme imati nepoznatu (nul)
vrednost.
Ipak treba jo rei nekoliko rei o pojmu kljua. Obeleje ili grupa obeleja koja za svaku
torku nad emom relacije uzima razliite vrednosti nazivamo kljuem, eventualno kandidatom za
klju. Klju treba da je minimalne konstrukcije. To drugim reima znai, da ne postoji nijedan
pravi podskup kandidata za klju koji sam moe biti kandidat za klju (sve zavisnosti u kojima
figurie klju moraju biti potpune).
Ako u nekoj emi relacije postoji opisno, neidentfikujue (nekljuno) obeleje koje je u
drugoj emi relacije klju, onda ga zovemo spoljnim kljuem.
Ako se klju sastoji od jednog obeleja, onda se zove prost klju. U sluaju da se klju
sastoji od vie spoljnih kljueva, zove se sloeni klju. Ako se klju sastoji od jednog ili vie
spoljnih kljueva i od barem jednog obeleja koje pripada tipu netiteta onda se naziva
hijerarhijski klju.
Naj poznatija zavisnost izmedju obeleja je funkcionalna zavisnost. Izraz oblika f: XY,
ili, skraeno XY predstavlja funcionalnu zavisnost, pri emu X i Y u optem sluaju
predstavljaju skupove obeleja. Prikazana funkcionalna zavisnost se reima moe formulisati na
sledei nain: X funkcionalno odredjuje Y, ili, Y funkcionalno zavisi od X. Funkcionalna
zavisnost se moe opisati i na drugi nain: svakom elementu domena X (svakoj konkretizaciji
obeleja X) se moe pridruiti najvie jedan elemenat iz domena Y (jedna konkretizacija
obeleja Y).
Funkcionalna zavisnost u obrnutom smeru, u optem sluaju oznaava nezavisnost,
odnosno u sluaju XY vai da Y-/->X. Primetimo da funkcionalna zavisnost definie
hijerarhiju izmedju obeleja.
Primer: Matini_broj_studentaIme_i_prezime_studenta, gde izmedju konkretizacija
(vrednosti domena) ova dva obeleja postoji veza tipa N:1. Vei broj studenata sa istim imenom
i prezimenom imaju razliite matine brojeve (N), a svakom matinom broju odgovara samo
jedno ime studenta (1).
Funkcionalna zavisnost moe biti jaka, kada svakoj levoj strani, tj. X-u mora postojati
desna strana, tj. Y, ili slaba, kada postoje X-evi za koje ne postoje Y-i.
Primer: funkcionalna zavisnost Matini_broj_studentaIme_i_prezime_studenta je jaka,
jer svakom matinom broju studenta uvek pripada ime i prezime studenta, a
Matini_broj_studentaVrsta_primljenog_kredita predstavlja slabu funkcionalnu zavisnost,
poto ima studenata koji ne primaju nikakav kredit.
62
Funkcionalna zavisnost moe biti potpuna (full dependence) ili nepotpuna (partial
dependence). Ako se na levoj strani zavisnosti nalazi obeleje, a ne skup obeleja, za zavisnost
se kae da je elementarna, u suprotnom se radi o sloenoj zavisnosti. Klasifikacija funkcionalnih
zavisnosti na potpune i nepotpune se primenjuje samo na sloene zavisnosti. Potpuna je sloena
funkcionalna zavisnost u tom sluaju kad desna strana (obeleje na desnoj strani) zavisi od
kompletne leve strane (celog skupa obeleja na levoj strani). To znai da odstranjivanjem bilo
kojeg obeleja iz skupa obeleja na levoj strani kod potpune zavisnosti unitimo funcionalnu
zavisnost. Ako izvlaenjem bilo kojeg obeleja iz skupa obeleja na levoj strani sloene
funkcionalne zavisnosti automatski ne dolazi i do unitavanja funkcionalne zavisnosti, onda se
radi o nepotpunoj funkcionalnoj zavisnosti.
Primer: posmatrajmo relaciju POLOENI_ISPITI, i dve funkcionalne zavisnosti u okviru
njega:
POLOENI_ISPITI (Matini_broj_studenta+ifra_predmeta, ocena, ..., Naziv_predmeta)
Matini_broj_studenta+ifra_predmetaocena
Matini_broj_studenta+ifra_predmetaNaziv_predmeta
Oigledno je da je prva funkcionalna zavisnost potpuna, poto ni prvo ni drugo obeleje na
levoj strani ponaosob ne odredjuju desnu stranu. Druga funkcionalna zavisnost je nepotpuna, jer
izbacivanjem matinog broja studenta zavisnost ostaje dalje na snazi poto ifra predmeta
odredjuje naziv predmeta.
Semantiki funkcionalna zavisnost f: XY predstavlja vremenski promenljivu funkciju.
To znai da se leva strana (domen) i desna strana (kodomen) funkcionalne zavisnosti menjaju u
vremenu, odnosno da u razliitim trenucima, istoj vrednosti iz domena X, f moe pridruiti
razliite vrednosti iz domena Y. Kao primer za prethodnu konstataciju moe da poslui
funkcionalna zavisnost REG_BR_VOZILABR_OBAVEZNIH_SERVISA u kojoj se
pridruena vrednost levoj strani menja u vremenu: broj obavljenih obaveznih servisa raste u toku
ivotnog ciklusa automobila.
Funkcionalna zavisnost predstavlja intenzionalno ogranienje, jer se formulie pomou
oznaka i pojmova koji se koriste pri definisanju intenzije relacije. Jedini nain za utvrdjivanje
funkcionalne zavisnosti se otkrivaju, formuliu i utvruju paljivom analizom realnog sistema:
pojava, njegovih obeleja i njihovih domena.
Tranzitivna zavisnost se definie na sledei nain. Oznaimo skup obeleja (atributa)
neke relacije sa A, i neka postoje skupovi obeleja X i Y (X,YA) i XY. Kae se da Y
tranzitivno zavisi od X, ako postoji takav skup obeleja ZA, da XZ i ZY, ali tako da ne
vai ZX i YZ.
63
Jednostavnija formulacija tranzitivne zavisnosti je sledea. Nekljuno obeleje Y
posmatrane relacije tranzitivno zavisi od kljua relacije X samo u tom sluaju ako ga (obeleje
Y) funkcionalno odredjuje i neko nekljuno obeleje Z, koje je, naravno, funkcionalno zavisno
od kljua relacije X.

Zavisnost sadravanja je uslov integriteta koji se moe formulisati na sledei nain:
relacije r i p su relacije nad emama relacije R(A,O
R
) i P(B,O
P
), A
1
,A
2
,...A
n
A
i
, a
B
1
,B
2
,...B
n
B
i
koje zadovoljavaju zavisnost sadravanja, u oznaci
R[A
1
,A
2
,...A
n
] P[B
1
,B
2
,...B
n
]
ako vai da je
} { [ ] [ ])
k
B
j
t
k
A
i
t )( n ... 2, 1, k p)(
j
t r)(
i
t ( = .
Zavisnost sadravanja formulie egzistencijalno ogranienje koje ukazuje na zahtev da se
pre upisa torke u r mora kontrolisati postojanje barem jedne torke u p takve da je t
i
[A
k
]= t
j
[B
k
] za
k{1,2,...,n}.
Referencijalni integritet kao poseban sluaj meurelacione zavisnosti sadravanja
R[A
1
,A
2
,...A
n
] P[B
1
,B
2
,...B
n
] poseduje poseban uslov da podskup obeleja { B
1
,B
2
,...B
n
}
mora biti primarni klju u emi relacije P.
Nul-vrednost ili nula vrednost predstavlja specifino ogranienje za vrednost obeleja.
Naziv nula vrednost nema nikakve veze sa brojem 0, ve oznaava sledee tri situacije:
1. signifikantna nula (izvesno se zna, da obeleje jo nema vrednost),
2. nesignifikantna nula (ne zna se da li obeleje ima neku konkretnu vrednost) i
3. neprimenjeno svojstvo (not-applicable, napr. devojako prezime za mukarce)


5.3. OPERACIJSKA KOMPONENTA RELACIONOG MODELA
PODATAKA

Strukturalna i integritetna komponenta relacionog modela slue za opis statike strukture
realnog sistema. Operacijska komponenta odraava dinamiku realnog sveta (predstavlja
dinamike karakteristike) i slui za artikulaciju jezika za manipulisanje podacima. Taj
jedinstveni jezik za manipulisanje podacima slui (ili projektovan je) pre svega za upit i
auriranje baze podataka. Jezik za manipulaciju podacima se temelji na relacionom raunu i
64
relacionoj algebri i predstavlja visoko deklarativni jezik (naredbe sadre ono to se eli dobiti, a
ne i nain kako doi do eljenog rezultata).
Realaciona algebra se zasniva na matematikoj teoriji skupova, a relacioni raun na
predikatskom raunu, a moe se dokazati ekvivalentnost relacione algebre i relacionog rauna sa
take gledita ekspresivne moi (Mogin, str. 166) u vezi manipulacije podacima.
Za formulisanje upita relaciona algebra poseduje dve vrste operatora:
1. standardne operacije nad skupovima u koje spadaju
- unija,
- presek i
- razlika (neki tu svrstavaju i Dekartov proizvod) i
2. specijalne operacije koje sainjavaju
- selekcija,
- projekcija,
- spoj i
- kolinik.
Poto su standardne operacije nad skupovima poznate, naveemo ih samo ukratko. Treba,
meutim, istai da se navedene tri standardne operacije mogu primeniti samo nad relacijama
koje su unijski kompatibilne (definisane su nad istim skupom obeleja).
Unija relacija R
1
(A) i R
2
(A) u oznaci R
1
(A) R
2
(A) je skup svih torki t iz R
1
, R
2
ili obe
relacije, odnosno:
{ }.
2
R t
1
R t t
2
R
1
R =
Presek relacija R
1
(A) i R
2
(A) u oznaci R
1
(A) R
2
(A) je skup svih takvih torki t koje su
istovremeno prisutne i u R
1
, i u R
2
, tj.:
{ }.
2
R t
1
R t t
2
R
1
R =
Razlika izmeu relacija R
1
(A) i R
2
(A) u oznaci R
1
(A) R
2
(A) je skup takvih torki t iz
relacije R
1
, koje se istovremeno ne pojavljuju u relaciji R
2
, u oznaci:
{ }.
2
R t
1
R t t
2
R -
1
R =
Dekartov proizvod se moe definisati i nad relacijama. Obeleja Dekartovog proizvoda
predstavljaju uniju skupova obeleja relacija koja uestvuju u Dekartovom proizvodu. Stoga, ako
relacije, uesnici u Dekartovom proizvodu imaju prazan skup preseka skupova svojih obeleja,
onda Dekartov proizvod predstavlja relaciju. Ako presek skupova obeleja relacija u
Dekartovom proizvodu nije prazan skup, proizvod bi sadrao dva puta neka obeleja (obeleja iz
preseka skupova obeleja), a to u relaciji nije dozvoljeno.
65
Selekcija je unarna operacija, tj. definie se nad jednom relacijom. Pomou selekcije koja
se ponekad naziva i restrikcijom, se izdvajaju torke koje odgovaraju nekom kriterijumu
(zadovoljavaju neki uslov). Uslov u selekciji moe da sadri konstante, obeleja relacije koja
uestvuje u selekciji, aritmetike operatore poreenja i logike operatore. Selekcija se definie
izrazom

F
(R) = {t | t R t zadovoljava F}.
Semantika gornjeg izraza je sledea: selekcija nad relacijom R prema uslovu F je relacija
koja sadri sve torke iz R koje zadovoljavaju uslov F.
Projekcija je takoe unarna operacija koja obezbeuje mogunost izdvajanja (izbora) onih
obeleja relacije koja su interesantna za neki upit. Izraz za projekciju relacije R na skup obeleja
X ima sledei oblik

X
(R) = {t[X] | t R }.
Operacija spoj predstavlja sloenu binarnu operaciju sa sledeim koracima:
1. stvaranje Dekartovog proizvoda
2. izdvajanje torki iz Dekartovog proizvoda shodno definisanim uslovima
3. iz relacije dobijene u prethodnoj taki se izdvajaju po jedno od identinih obeleja
(samo kod prirodnog spoja).
Theta spoj je najuopteniji sluaj spoja (uslov je da vrednosti oznaenih obeleja A
i
iz
jedne i B
j
iz druge polazne relacije budu povezani kao A
i
B
j
, gde je {=, NOT=, >, , < ,
}. Ako nema uslova izdvajanja theta spoj postaje Dekartov proizvod, a u sluaju kada
predstavlja = spoj ima naziv equi-join (izjednaavanje). Ako iz rezultata dobijenog equi-joinom
odstranimo po jedno od identinih obeleja, dobijamo prirodni spoj (natural join).
Deljenje je sloena operacija relacione algebre koja se moe definisati preko jednostavnih
operacija opisanih u prethodnom delu teksta na sledei nain:
R/P(X) =
X
(R)
X
((
X
(R) P) R).
U gornjem izrazu su R(X,Y) i P(Z) relacije tako da je Y unijski kompatibilan sa Z (uslov
dozvaljava i mogunost da se skupovi obeleja Y i Z budu identini, tj. Y=Z). Deljenje daje kao
rezultat relaciju Q(X) koja je najvei podskup od
X
(R) za koji vai da je QR ( je oznaka za
Dekartov proizvod) sadran u R.
Deljenje se, recimo, moe dobro primeniti na upite tipa koji radnici su kvalifikovani za
rad na svim tipovima maine za dole navedenu relaciju K(W,M). Ovaj upit se definie izrazom
(deljenjem) K(W,M)/P(M):
K/P(W) =
W
(K)
W
((
W
(K) P) K).

66

K(W,M)
W M
R
1
M
1
R
2
M
1
R
1
M
2
R
3
M
4
R
2
M
2
R
3
M
1
R
2
M
4
R
4
M
4
R
3
M
2





P(M)
M
M
1
M
2
M
4







W
(K)
W
R
1
R
2
R
3
R
4







W
(K) P
W M
R
1
M
1
R
1
M
2
R
1
M
4
R
2
M
1
R
2
M
2
R
2
M
4
R
3
M
1
R
3
M
2
R
3
M
4
R
4
M
1
R
4
M
2
R
4
M
4
(
W
(K) P) K
W M
R
1
M
4
R
4
M
1
R
4
M
2


W
((
W
(K) P) K)
W
R
1
R
4


W
(K)
W
((
W
(K) P) K)
W
R
2
R
3

5.4. REALIZACIJA RELACIONOG MODELA

Tok projektovanja baze podataka diktira korake u procesu razvoja informacionog sistema,
a u okviru njega i u razvoju projekcije podataka istog. Aktivnosti na izradi projekcije podataka
poinju razradom modela entiteta i poveznika (ER model) na pojmovnom nivou, nakon ega
sledi prevoenje ER modela u relacioni model koji se moe neposredno implementirati pomou
nekog od relacionog sistema za upravljanje bazama podataka (RSUBP).
Prevoenju modela podataka (pojmovni nivo) u relacioni model (logiki nivo) je
posveeno posebno poglavlje u ovim belekama, gde se opisuju tehnike pomenutog prevoenja.
Primena tih tehnika oznaava proces nastanka (realizacije) relacionog modela koji se kasnije
pretvara u bazu podataka (fiziki nivo) pomou nekog RSUBP.
67
6. NORMALIZACIJA

Nornalizacija je proces u kojem eme relacije dovode na jedan kvalitetan i prihvatljiv oblik
sa take gledita redundanse i anomalije auriranja. Kod relacionih baza podataka nuno postoji
redundansa podataka koju ne moemo (i ne smemo) eliminisati. Setimo se da kod relacionih
baza podataka ne postoje pointeri ili poveznici koji bi fiziki realizovali vezu izmeu dve eme
relacije. Veza izmeu dve eme relacije se u relacionim bazama podataka ostvaruje smetanjem
kljua jedne relacije u drugu (meu nekljuna obeleja ili kao deo kljua). Cilj procesa
normalizacije je postizanje minimalno nune redundanse podataka.
Znaajniji problem od prethodnog predstavljaju anomalije auriranja. Postoje tri vrste
anomalije, ali svaka odnjih se javlja zbog iste situacije, a to je obuhvatanje osobina (obeleja)
razliitih pojava (entiteta, objekata) u istu emu relacije.
Anomalija upisa (dodavanja) se, recimo, javlja kod upisa torki za emu relacije koja
memorie podatke o katedri sa pripadajuim predmetima i profesorima koji rade na tim
predmetima. Katedru nije mogue upisati u bazu dok ne postoji barem jedan profesor koji radi
bar na jednom predmetu dotine katedre.
Anomalija brisanja se u vezi eme relacije opisane u prethodnom pasusu ispoljava u
injenici gubljenja informacija o predmetu, ako se brie profesor koji je sam radio na
pomenutom predmetu, odnosno, u sluaju da se brie jedini profesor na nekoj katedri, gube se
informacije i o toj katedri.
Anomalija menjanja (izmene, modifikacije) se javlja u gornjem primeru kad se modifikuju
podaci o profesoru koji radi na vie predmeta (eventualno na vie katedri). Tada modifikaciju
treba izvriti na svim torkama gde se pojavljuju podaci o posmatranom profesoru.
Normalne forme formuliu uslov(e) za eme relacije. One ujedno i odraavanju stanje
(kvalitet strukture) eme relacije (na pojmovnom nivou unutranje strukture tipa entiteta). Postoji
vei broj normalnih formi, koji se oznaavaju u obliku xNF, u kojem se na mestu x-a nalazi broj,
a NF potie od skraenice engleskih rei Normal Form. Da bi ukazali na jedini izuzetak u
oznaavanju dajemo spisak svih normalnih formi od najslabije do najkvalitetnije: 0NF, 1NF,
2NF, 3NF, BCNF (Boyce-Codd-ova normalna forma), 4NF i 5NF.
Normalizacija je nastala kao matematiki metod za poboljanje nenormalizovane relacije
(ili relacije nie normalne forme) u skup manjih normalizovanih relacija (u relacije eljene
normalne forme). Uz navoenje strogo formalnog (matematikog) postupka normalizacije
neminovno je ukazati i na potrebu primene paralelne semantike analize (greke u shvatanju i
68
razumevanju fizike realnosti i njenom strukturiranju) uz izvravanje koraka normalizacije.
Normalizacija se kao proces moe realizovati metodom dekompozicije i metodom sinteze.
Dekompozicija kao postupak izvrenja normalizacije kree od jedne nenormalizovane
relacione eme (eme univerzalne relacije), a izvrava se postupno, u koracima. U svakom
koraku se polazne relacije prevode (razbijaju, podele) u relacije koje su u vioj normalnoj formi.
Uslov reverzibilnosti mora biti zadovoljen pri svakom koraku, tj. na osnovu novodobijenih ema
relacije se uvek moe rekonstruisati prvobitna struktura (ema univerzalne relacije). Takva
dekompozicija se zove dekompozicija bez gubitaka (non-loss decomposition). (Aktivnost
suprotna projekciji je spoj. Uslov spajanja dva tipa entiteta je postojanje istog obeleja u oba tipa
entiteta. Uobiajeno je da se od spoja takodje trai reverzibilnost, tj. da realizuje novi spajani tip
entiteta bez gubitaka informacija u njima - non-loss join.)
Sinteza kao postupak realizacije normalizacije polazi od skupa obeleja i skupa zavisnosti
formulisanih na osnovu realnog sistema. Sinteza daje eme relacije eljenog kvaliteta (u
zahtevanoj normalnoj formi) u jednom prolazu.
U izlaganjima se prikazuje metoda dekompozicije kao sredstvo za realizaciju
normalizacije. U narednim pasusima se objanjava proces dekomponovanja jedne eme relacije.
Neka skup obeleja eme relacije R
1
A, i neka postoje podskupovi XA i YA tako, da
je XY=A. Ogranienje da je presek podskupova X i Y ne sme biti prazan skup svakako mora
biti zadovoljeno ( Y X ). Kae se da X i Y predstavljaju dekompozicioni par u emi relacije
R
1
, ako iz egzistencije (postojanja) dve pojave eme relacija R
1
, recimo za pojave t
i
i t
j
(t
i
= ext
(R
1
) i t
j
= ext (R
1
), to su redovi t
i
i t
j
u tabeli 7.1.) za koje je ispunjen uslov t
i
=t
j
na preseku dva
skupa XY, sledi da postoji takva konkretizacija tipa entiteta (red t) za koju t=t
i
na skupu X, a
t=t
j
na skupu Y. Definicija se moe formalno napisati na sledei nain:
(Y) t t(Y) i (X) t t(X) da t takav i Y) (X t Y) (X t da takvi t , t Ako
i i j i j i
= = = ,
onda X i Y predstavljaju dekompozicioni par u emi relacije R
1
.
Primer: Neka je X = {A
1
, A
2
, A
3
, A
4
} i Y = {A
3
, A
4
, A
5
, A
6
}, tj XY = {A
3
, A
4
}, a ema
relacije ima ekstenzije (pojave) prikazane u sledeoj tabeli 6.1.
Tabela 6.1.
A
1
A
2
A
3
A
4
A
5
A
6
t
1
a b c d e f
t
2
g f c d h e
t
3
a b c d h e
t
4
. . . . . .

Na osnovu prikazane ekstenzije u tabeli za tip entiteta E
1
se moe zakljuiti da X i Y
predstavljaju dekompozicioni par, jer
69
1. t
1
(XY) = t
2
(XY) = {c, d} i
2. t
3
(X) = t
1
(X) i t
3
(Y) = t
2
(Y)

ema relacije sadri ponavljajua saznanja ako sadri takva obeleja koja nisu
funkcionalno zavisna od kljua eme relacije.

6.1. NENORMALIZOVANA EMA RELACIJE

ema relacije je u nenormalizovanoj formi (0NF) ako u njoj postoji bar jedno takvo
nekljuno obeleje koje je funkcionalno nezavisno od kljua.
Primer: STUDENT (Br_indeksa, Ime_i_prz, ..., ifra_pr, Naziv_pr, Datum_ispita, Ocena).
ema relacije STUDENT je prikazan i grafiki na sl. 6.1. Obeleja ifra predmeta (ifra_pr),
naziv predmeta (Naziv_pr), datum ispita i ocena u nekim redovima (pojavama tipa entiteta)
mogu uzimati vie vrednosti. Klju eme relacije STUDENT je Br_indeksa.


6.2. PRVA NORMALNA FORMA

ema relacije se sa sigurnou nalazi barem u prvoj normalnoj formi (1NF) ako svako
nekljuno obeleje funkcionalno zavisno od kljua (kandidata kljua, tj. u svakoj pojavi eme
relacije za svaku konkretizaciju obeleja stoji tano jedna vrednost).
U cilju dovodjenja eme relacije na 1NF, nuno je iz eme relacije odstraniti sva obeleja
koja nisu funkcionalno zavisna od kljua (imaju viestruke vrednosti). Prvobitna ema relacije se
dekomponuje na dve nove eme realcije: u prvoj ostaju obeleja koja su funkcionalno zavisna od
kljua u prvobitnoj emi relacije, a ona sa viestrukim vrednostima iz prvobitne eme relacije se
smetaju u drugu emu relacije dopunjujui ih sa kljuem prvobitne eme relacije. Razlog tog
dopunjavanja je dvojake prirode: bez dopune druga novodobijena ema relacije ne bi imala
STUDENT

Br_indeksa Ime_i_prz ... ifra_pr Naziv_pr Datum_ispita Ocena
E494 Marko Markovi 112
147
174
Matematika
Fizika
Elektrotehnika
12.09.2000.
15.09.2000.
05.10.2000.
9
7
6
E495 Petar Petrovi 174
112
Elektrotehnika
Matematika
14.07.2000.
15.09.2000.
8
8
... ... ... ... ... ...

Sl. 6.1.
70
(jednoznaan) klju, a sa druge strane izgubili bi postojeu vezu izmeu podataka (da klju
prvobitne eme relacije nije prosleen drugoj novodobijenoj emi relacije, spajanjem se nikad
ne bi magla dobiti prvobitna ema relacije). Tu dekompoziciju bez gubitaka prikazuje sl. 6.2.
Nova ema relacije je dobila naziv POLOENI_ISPITI i ima sloeni klju sastavljen iz
dva obeleja, a ona su: Br_indeksa i ifra_pr. Klju prve novodobijene eme relacije (to je u
stvari ona stara, ali okrnjena ema relacije) je isti kao i prvobitne.


Neki strunjaci smatraju da 0NF forma i ne predstavljaju relaciju, jer se pod pojmom
relacije podrazumeva dvodimenzionalna tabela sa ad hoc atomarnim vrednostima u elementima
tabele.


6.3. DRUGA NORMALNA FORMA

ema relacije je samo tada u barem drugoj normalnoj formi (2NF) ako se nalazi u 1NF i
ako je svako nekljuno obeleje potpuno funkcionalno zavisno od (kandidata) kljua.
Na osnovu prethodne definicije se mogu izvui dva zakljuka:
1. ako ema relacije ima prost klju, a nalazi se u 1NF onda je sigurno i u 2NF i
2. ako ema relacije nema nekljuna (neidentifikujua) obeleja, takodje je sigurno, da
se nalazi u 2NF.
U procesu dovodjenja eme relacije u 2NF prvo se otkrivaju nepotpune funkcionalne
zavisnosti da bi se posle te zavisnosti uklonile. Algoritam dovodjenja eme relacije u 2NF se
sastoji od tri koraka:
STUDENT
Br_indeksa Ime_i_prz ...
E494 Marko Markovi
E495 Petar Petrovi
... ...

POLOENI_ISPITI
Br_indeksa ifra_pr Naziv_pr Datum_ispita Ocena
E494 112 Matematika 12.09.2000. 9
E494 147 Fizika 15.09.2000. 7
E494 174 Elektrotehnika 05.10.2000. 6
E495 174 Elektrotehnika 14.07.2000. 8
E495 112 Matematika 15.09.2000. 8
... ... ... ... ...

Sl. 6.2.
71
1. iz kljua eme relacije se izdvajaju ona obeleja (grupe obeleja) koja i sama
funkcionalno odredjuju neidentifikujua (nekljuna) obeleja (ta obeleja su kriva za
nepotpunost funkcionalne zavisnosti),
2. obeleja izabrana u taki 1. sa njima pripadajuim nekljunim obelejima (koja su
od njih funkcionalno zavisna) se izdvajaju u posebne eme relacija, a
3. nekljuna obeleja koja su u potpunoj funkcionalnoj zavisnosti od (celokupnog)
kljua u prvobitnoj emi relacije, ostaju na svom starom mestu, tj. u prvobitnoj emi
relacije.
Vezu izmeu dve novodobijene eme relacije predstavlja(ju) obeleje (a) izabrano(a) u
taki 1. algoritma dovodjenja eme relacije u 2NF (krivci za nepotpunu funkcionalnu
zavisnost). Za svaku nepotpunu funkcionalnu zavisnosti se definie po jedna nova ema relacije.
Poto ema relacije STUDENT ima prost klju, dovodjenje na 2NF se moe prikazati na
emi relacije POLOENI_ISPITI. U toj emi relacije deo kljua ifra_pr, odnosno ifra
predmeta funkcionalno odredjuje Naziv_pr , ili naziv predmeta, to znai da njih treba izdvojiti u
novu emu relacije PREDMET. Prodiskutovane eme relacije u drugoj normalnoj formi se
nalaze na sl. 6.3.


STUDENT
Br_indeksa Ime_i_prz ...
E494 Marko Markovi
E495 Petar Petrovi
... ...

PREDMET
ifra_pr Naziv_pr
112 Matematika
147 Fizika
174 Elektrotehnika
174 Elektrotehnika
112 Matematika
... ...

POLOENI_ISPITI
Br_indeksa ifra_pr Datum_ispita Ocena
E494 112 12.09.2000. 9
E494 147 15.09.2000. 7
E494 174 05.10.2000. 6
E495 174 14.07.2000. 8
E495 112 15.09.2000. 8
... ... ... ...

Sl. 6.3.
72
6.4. TREA NORMALNA FORMA

ema relacije se garantovano nalazi bar u treoj normalnoj formi (3NF), ako je u 2NF i ako
nijedno neidentifikujue (nekljuno) obeleje nije tranzitivno zavisno od (kandidata) kljua eme
relacije.
O unutranjoj strukturi eme relacije se moe tvrditi da su u njoj sva opisna
(neidentifikujua) obeleja zavisna od identifikatora (kljua 1NF), i to potpuno funkcionalno
zavisna od (celokupnog sloenog) kljua (2NF), a da su funkcionalno nezavisna od ostalih
opisnih obeleja (3NF).
Dovodjenje eme relacije u treu normalnu formu se izvrava na osnovu sledeeg
algoritma:
1. iz eme relacije se izdvajaju ona nekljuna obeleja (grupe obeleja) koja i sama
funkcionalno odredjuju druga neidentifikujua (nekljuna) obeleja (ta obeleja su
kriva za tranzitivne zavisnosti),
2. obeleja izabrana u taki 1. sa njima pripadajuim nekljunim obelejima (koja su
od njih funkcionalno zavisna) se izdvajaju u posebne eme relacija, a
3. nekljuna obeleja koja su u potpunoj (i netranzitivnoj) funkcionalnoj zavisnosti od
kljua u prvobitnoj emi relacije, ostaju na svom starom mestu, tj. u prvobitnoj emi
relacije.
Vezu izmeu dve novodobijene eme relacije predstavlja(ju) obeleje (a) izabrano(a) u
taki 1. algoritma dovodjenja eme relacije u 3NF (krivci za nepotpunu funkcionalnu
zavisnost). Za svaku tranzitivnu zavisnost se definie po jedna nova ema relacije.
Primer za dovodjenje eme elacije na 3NF je uzet iz oblasti trgovine. Konkretno se radi o
evidenciji narudbe. ema relacije NARUDBA koja je u drugoj normalnoj formi, se
dekompozicijom pretvara u 3NF (sl. 6.4.).
Proces normalizacije (dovodjenje unutranje strukture eme relacije na sve bolje normalne
forme) je realizovan metodom dekompozicije, podelom prvobitnog na dve ili vie nove eme
relacije. Normalizacija omoguuje postizanje sve savrenije interne strukture eme relacije.
Dekompozicija se ostvaruje projekcijom (odstranjivanjem) obeleja koja nisu funkcionalno
zavisna od kljua (1NF), koja su nepotpuno (delimino) zavisna od sloenog kljua (2NF), ili,
pak zavise i od drugih opisnih (nekljunih) obeleja pored postojanja njihove funkcionalne
zavisnosti od kljua (3NF) u nove eme relacije. Postavlja se, medjutim, specijalan zahtev za
dekompoziciju: mora predstavljati reverzibilan proces, odnosno da se na osnovu novodobijenih
ema relacija uvek moe rekonstruisati prvobitna struktura. Takva dekompozicija se zove
dekompozicija bez gubitaka (non-loss decomposition).
73
Aktivnost suprotna projekciji je spoj. Uslov spajanja dve eme relacije je postojanje istog
obeleja u obe eme relacije. Uobiajeno je da se od spoja takodje trai reverzibilnost, tj. da
realizuje novu spojenu emu relacije bez gubitaka informacija u njima (non-loss join).
NARUDBA
Br_narudbe ifra_kupca Naziv_kupca Datum_nar
17494 112 Carnex 12.09.2000.
15944 147 Pionir 15.09.2000.
13675 174 Sever 05.10.2000.
19395 174 Sever 14.07.2000.
25495 112 Carnex 15.09.2000.
... ... ...

NARUDBA_1
Br_narudbe ifra_kupca Datum_nar
17494 112 12.09.2000.
15944 147 15.09.2000.
13675 174 05.10.2000.
19395 174 14.07.2000.
25495 112 15.09.2000.
... ... ...

KUPAC
ifra_kupca Naziv_kupca
112 Carnex
147 Pionir
174 Sever
...

Sl. 6.4.
74
7. PREVOENJE ER MODELA U RELACIONI MODEL

Projektovanje baze podataka se realizuje na pojmovnom (konceptualnom) i logikom (neki
ga zovu implementacioni) nivou. Konceptualno projektovanje se vri pomou ER modela.
Dananji sistemi za upravljanje bazama podataka su, meutim, zasnovani na relacionom modelu.
Prevoenje ER modela u relacioni model je tako nuno zlo u dananjoj praksi.
ER model je semantiki bogatiji od relacionog modela. Prevoenje izmeu koncepata
strukture jednog i drugog modela zbog prethodno navedene injenice ne moe biti 1:1, tj svakom
konceptu strukture jednog modela ne mora odgovarati jedan koncept strukture drugog modela.
Isto vai i za operacije i za ogranienja u dva pomenuta modela.
Postoje razni pristupi za prevoenje ER u relacioni model. Neki od njih su previe
teoretskog, a drugi, pak, neadekvatno slobodne formulacije. Postupak opisan u ovom delu
sledi stil formulisan u [28. Mihajlovi].


7.1. PREVOENJE ENTITETA

Prevoenje entiteta u relaciju predstavlja relativno jednostavan zadatak koji se moe
formalizovati i automatizovati. Evo opisa tih kombinacija koje mogu nastati kod prevoenja tipa
entiteta.
E1. Svaki obian tip entiteta kao i gerund iz ER dijagrama postaje ema relacije.
Naziv tipa entiteta (gerunda) postaje naziv eme realcije, a obeleja tipa entiteta
(gerunda) postaju obeleja eme relacije. Identifikator tipa entiteta (gerunda) postaje
klju eme relacije.
E2. Slabi tip entiteta e postati ema relacije. Naziv slabog tipa entiteta e postati
naziv eme relacije, a obeleja slabog tipa entiteta e postati obeleja eme relacije.
Klju eme relacije (slabog tipa entiteta) e postati identifikator slabog tipa entiteta, a
klju eme relacije nadreenog tipa entiteta se pojavljuje kao obino nekljuno obeleje
u emi relacije slabog tipa (kao kod prevoenja veza sa kardinalnou (1,1) : (0,N)
videti u kasnijem izlaganju) predstavljajui time spoljni klju u pomenutoj relaciji.
Egzistencijalna zavisnost propisuje uslov da spoljni klju ne sme imatu nul vrednost u
emi relacije slabog tipa entiteta.
75
E3. Identifikacioni tip entiteta e postati ema relacije. Naziv identifikacionog tipa
entiteta e postati naziv eme relacije, a obeleja identifikacionog tipa entiteta e postati
obeleja eme relacije. Klju eme relacije (identifikacionog tipa entiteta) e postati
identifikator nadreenog tipa entiteta zajedno sa obelejima identifikacionog tipa
entiteta koji zajedniki jednoznano odreuju (identifikuju) svaku pojavu slabog tipa
entiteta.
E4. Tip entiteta koji odgovara nadtipu (superklasi) postaje ema relacije. Naziv
nadtipa postaje naziv eme relacije. Obeleja nadtipa postaju obeleja eme relacije, a
identifikator nadipa postaje klju eme relacije.
E5. Tip entiteta koji odgovara podtipu (potklasi) postae ema relacije. Naziv podtipa
e postati naziv eme relacije, a obeleja podtipa, obeleja eme relacije. ema relacije
(koja odgovara podtipu) preuzee identifikator nadtipa (posmatranog podtipa) koji e
postati njen klju.
E6. Kod hijerarhije tipa kategorija prevoenje nadtipa se vri po opisu u taki 4.
Razlika u odnosu na prevoenje hijerarhije tipa generalizacija/specifikacija (opisanog u
takama 4 i 5) se javlja kod prevoenja potklase (podtipa). Kategorija predstavlja
potklasu u istoimenoj hijerarhiji, ali ona ima poseban, novokonstruisani (u procesu
formiranja kategorije) klju. Prevoenje kategorije se vri po taki 1.

Za primer prevoenja slabog (egzistencijalno zavisnog) tipa entiteta uzmimo naveden
primer iz glave 4 koji se nalazi na sl. 7.1.

eme relacije se mogu dobiti primenom pravila E1 i E2, a imaju oblik kao to sledi:
RADNO_MESTO (_RADNOG_MESTA, NAZIV_RADNOG_MESTA)
RADNIK (_RADNIKA, _RADNOG_MESTA, IME_RADNIKA)
RADNO_MESTO RADNIK RASPOREDJEN
N 1
E
_RADNOG_MESTA NAZIV_RADNOG_MESTA IME_RADNIKA _RADNIKA


Sl. 7.1.
76
Egzistencijalna zavisnost propisuje uslov da spoljni klju u emi relacije RADNIK
(_RADNOG_MESTA) ne sme imati null vrednost. Reima to znai da radnik ne moe biti
upisan u bazu podataka ako nije rasporeen na neko konkretno radno mesto.
Identifikaciono zavisan tip entiteta se prevodi neto drugaije od slabog tipa entiteta.
Primer iz glave 4. se nalazi na sl. 7.2.

eme relacije koje odgovaraju primeru sa sl. 7.2. su sledee:
FAKULTET (_FAKULTETA, NAZIV_FAKULTETA)
STUDENT (_FAKULTETA, BROJ_INDEKSA, IME_STUDENTA)
Slino kao u sluaju slabog (egzistencijalno zavisnog) tipa entiteta, ni identifikaciono
zavisan tip entiteta se ne moe upisati u bazu podataka ako njegov nadreeni tip entiteta ne
postoji (kod slabog tipa entiteta taj uslov je obezbeen zabranom nul vrednosti za spoljni klju, a
ovde se ta zabrana odnosi na delove kljua tj. na kljuna obeleja) . Ovde e klju eme relacije
nadreenog tipa entiteta postati deo sloenog (hijerarhijskog) kljua eme relacije
identifikaciono zavisnog tipa entiteta.
Za strukturu supertip-podtip se odnose pravila E4 i E5, i za primer sa sl. 7.3. eme
relacije su sledee:
STUDENT (BRINDEKSA, ADRESASTU, TELEFSTU)
SAMOFINANSIJER (BRINDEKSA, KOLARINA PLAENA, KOLARINA)
NA TERET BUDZETA (BRINDEKSA, USLOV ZA STATUS, USLOV ISPUNJEN)
Za objanjenje naina prevoenja gerunda i kategorije neemo navoditi primere, jer bi se
oni sveli na one koji su objanjeni u okviru prethodnih prevoenja. Gerund se prevodi kao
obian tip entiteta, a u hijerarhiji kategorije uesnici nadtip i kategorija se prevode po pravilu E4
(nadtip) i E1 (kategorija).
FAKULTET STUDENT F - S
N 1
ID
_FAKULT ET A NAZIV_FAKULT ET A BROJ_INDEKSA IME_ST UDENT A


Sl. 7.2.
77

7.2. PREVOENJE POVEZNIKA

Prevoenje koncepta poveznika ER modela moe, a ne mora rezultovati novu emu
relacije. Prostiranjem kljueva se u odgovarajuim sluajevima takoe moe predstaviti vezu u
ER modelu.

7.2.1. Poveznici sa kardinalnou 1:1

V11-1. Veze sa kardinalnou (1,1) : (1,1) zajedno sa oba tipa entiteta koji su vezani
takvom vezom se prevode u jednu emu relacije. Tu se, znai, vri spajanje dva tipa
entiteta u jednu emu relacije, a poveznik nee postati nova relacija. Klju eme relacije
se bira od dva kandidata za klju (identifikatora jednog i drugog tipa entiteta).
V11-2. Veze sa kardinalnou (0,1) : (1,1) sa dva tipa entiteta u vezi se prevode u dve
eme relacije. Tipovi entiteta u ovakvoj vezi se prevode u eme relacije prema pravilu
E1. iz 7.1., a veza izmeu tipova entiteta nee postati nova ema relacije. Veza se ovde
realizuje prostiranjem kljueva: identifikator jednog tipa entiteta se smeta kao obino
obeleje u drugu emu relacije. Novosmeteno obeleje u drugoj emi relacije
predstavlja spoljni klju. Spoljni klju treba da se realizuje u emi relacije koja
odgovara tipu entiteta sa strane (1,1). Drugo mogue reenje (pojava spoljnog kljua sa
STUDENT
BRINDEKSA ADRESASTU TELEFSTU
JE
SAMOFINANSIJER NA TERET BUDZETA
KOLARINA PLACENA KOLARINA USLOV ZA STATUS USLOV ISPUNJEN


Sl.7.3.
78
strane (0,1)) bi prouzrokovalo pojavu nul vrednosti za taj spoljni klju (videti sledei
primer).
ER dijagram sa sl. 7.4. odslikava deo realnog sveta u kojem postoje radne jedinice i
radnici. Radna jedinica mora imati barem jednog radnika za rukovodioca, a moe imati najvie
jednog. Radnik ne mora biti rukovodilac ni jedne radne jedinice, a moe rukovoditi najvie
jednom radnom jedinicom. Mogue pretvaranje ovog ER dijagrama daje dva reenja od koja se
samo jedno moe prihvatiti. Reenje br.1.:
RADNA_JEDINICA (_RADNE_JEDINICE, NAZIV_RADNE-JEDINICE)
RADNIK (_RADNIKA, IME_RADNIKA, _RADNE_JEDINICE_KOJOM_RUKOVODI)
Reenje br.2.:
RADNA_JEDINICA (_RADNE_JEDINICE, NAZIV_RADNE_JEDINICE, _RADNIKA_RUKOVODIOCA)
RADNIK (_RADNIKA, IME_RADNIKA)
Prvo reenje prouzrokuje velik broj nula-vrednosti za spoljni klju u konkretizacijama
eme relacija (redovima tabele) RADNIK, naime svi radnici koji nisu rukovodioci imae nula-
vrednost za obeleje _RADNE_JEDINICE_KOJOM_RUKOVODI. Drugo reenje nee dovesti do
nula-vrednosti spoljnog kljua u emi relacije RADNA_JEDINICA, jer tip entiteta
RADNA_JEDINICA mora imati rukovodioca (i to, samo jednog).
Ima tu jo jedan momenat koji iziskuje kratko objanjenje. Prilikom realizacije prostiranja
kljua i u jednom i u drugom reenju naziv spoljnog kljua se razlikuje od naziva primarnog
kljua iz druge eme relacije (_RADNE_JEDINICE
_RADNE_JEDINICE_KOJOM_RUKOVODI i _RADNIKA _RADNIKA_RUKOVODIOCA). Sa
jedne strane, modifikovani nazivi spoljnih kljueva ukazuju na njihovu ogranienu ulogu u
dotinoj emi relacije (u emi relacije RADNIK ne moe figurisati bilo koja postojea radna
jedinica, ve samo ona kojom upravo posmatrani radnik rukovodi), a, sa druge strane,
promenjeni nazivi odraavaju i vezu usled koje su primarni kljuevi dospeli u predmetnu emu
relacije.
RADNA_JEDINICA RADNIK RUKOVODI
_RADNE_JEDINICE NAZIV_RADNE_JEDINICE IME_RADNIKA _RADNIKA
(1,1) (0,1)


Sl. 7.4.
79
V11-3. Veze sa kardinalnou (0,1) : (0,1) sa dva tipa entiteta u vezi se pretvaraju u tri
eme relacije. Tipovi entiteta u ovakvoj vezi se prevode u eme relacije po taki E1. iz
7.1., a veza izmeu tipova entiteta e postati nova ema relacije. ema relacija koja
predstavlja vezu imae obeleja iz oba tipa entiteta, koja su istovremeno i kandidati za
klju za posmatranu relaciju.
ER dijagram na sl. 7.5. predstavlja situaciju u kojoj student ne mora, ali ako hoe moe da
postane lan sportskog drutva. Isto tako sportista ne mora, ali moe studirati. eme relacije koje
odgovaraju dijagrama sa sl. 7.5. su sledee:
STUDENT (BROJ_INDEKSA, IME_STUDENTA)
SPORTISTA (_SPORTISTE, IME_SPORTISTE, VRSTE_SPORTA)
CLANSTVO (BROJ_INDEKSA, _SPORTISTE)

7.2.2. Poveznici sa kardinalnou 1:N

V1N-1. Same veze sa kardinalnou (1,1) : (0,N) i (1,1) : (1,N) nee postati eme relacija,
ve se veza predstavlja prostiranjem kljueva. Identifikator tipa entiteta na strani za koju
je maksimalni kardinalitet M se smeta kao obino obeleje u drugu emu relacije (koja
odgovara tipu entiteta na strani za koju je maksimalni kardinalitet 1). Novosmeteno
obeleje u drugoj emi relacije predstavlja spoljni klju.
STUDENT SPORTISTA CLANSTVO
BROJ_INDEKSA IME_STUDENTA IME_SPORTISTE _SPORTISTE
(0,1)
(0,1)
VRSTE_SPORTA

Sl. 7.5.
STUDENT SMER UPISUJE
BROJ_INDEKSA IME_STUDENTA NAZIV_SMERA _SMERA
(1,1) (0,N)


Sl. 7.6.
80
Primer na sl. 7.6. predstavlja situaciju u kojoj student mora da bira jedan smer studiranja
(ali tano jedan, a ne vie), istovremeno smer egzistira bez obzira da li je neko od studenata
uopte birao taj smer (postoji i bez jednog prijavljenog studenta), a, naravno smer moe upisati
vie studenata. eme relacije su sledee:
STUDENT (BROJ_INDEKSA, IME-STUDENTA, _SMERA_UPISANOG)
SMER (_SMERA, NAZIV_SMERA)

ER dijagram na sl. 7.7. odraava san studenata: svaki predmet mora imati udbenik (ali
samo jedan), pri emu udbenik mora da se koristi barem za jedan predmet, a moe i za vie
predmeta. eme relacije su kao to sledi:
PREDMET (_PREDMETA, NAZIV-PREDMETA, _UDZBENIKA_KORIENOG)
UDZBENIK (_UDZBENIKA, NASLOV_UDZBENIKA)

V1N-2. Veze sa kardinalnou (0,1) : (0,N) i (0,1) : (1,N) e postati posebna, nova ema
relacija. Obeleja eme relacije koja odgovara ovim vezama obrazuju identifikatori
tipova entiteta koji su u vezi. Klju novoobrazovane eme relacije predstavlja
identifikator tipa entiteta na strani za koju je maksimalni kardinalitet 1.

Sl. 7.8. predstavlja deo realnog sveta studenata primaoca kredita. Taj deo ER modela se
prevodi u relacioni model pomou sledeih ema relacija:
PREDMET UDZBENIK KORISTI
_PREDMETA NAZIV_PREDMETA NASLOV_UDZBENIKA _UDZBENIKA
(1,1) (1,N)


Sl. 7.7.
STUDENT KREDIT PRIMA
BROJ_INDEKSA IME_STUDENTA VRSTA_KREDITA _KREDITA
(0,1) (0,N)
IZNOS

Sl. 7.8.
81
STUDENT (BROJ_INDEKSA, IME_STUDENTA)
KREDIT (_KREDITA, VRSTA_KREDITA, IZNOS)
PRIMA (BROJ_INDEKSA, _KREDITA)

V1N-3. Veza izmeu nadreenog i slabog tipa entiteta, superklase (nadtipa) i potklase
(podtipa) kod generalizacije/specijalizacije, kao i nadtipa i kategorije kod kategorizacije
ne postaje posebna ema relacije. Prevoenje ovih veza je opisano u 7.1. (take od 1. do
6.).

7.2.3. Poveznici sa kardinalnou M:N

VMN-1. Sve mogue kombinacije veza sa kardinalnou M:N, a tu spadaju (0,M) : (0,N),
(1,N) : (0,M), (0,N) : (1,M) i (1,N) : (1,M) postaju nove eme relacije. Obeleja ove
dodatne eme relacije postae identifikatori tipa entiteta koji su u vezi. Klju ove eme
relacije e biti sloen klju sastavljen od oba identifikator tipa entiteta u vezi. To znai
da e nova ema relacije sadrati samo kljuna obeleja (nee sadrati ni jedno
nekljuno obeleje). Neki je, zbog toga zovu relacija-klju.

Primer na sl. 7.9. prikazuje tipove entiteta PROFESOR i PREDMET i njihov meusobni
odnos. Ima takvih profesora koji jo ili ve ne rade ni na jednom predmetu u svojstvu nastavnika.
Sluaj je slian sa predmetima: iz nekih se jo ili ve ne odravaju predavanja iz razloga to su
predvieni u novom nastavnom planu ili u nekom starom nastavnom planu po kojem se vie ne
radi. Prevoenje dijagrama sa sl. 7.9. daje sledee relacije:
PROFESOR (_PROFESORA, IME_PROFESORA)
PREDMET (_PREDMETA, NAZIV_PREDMETA)
PREDAJE (_PROFESORA, _PREDMETA)
PROFESOR PREDMET PREDAJE
_PROFESORA IME_PROFESORA NAZIV_PREDMETA _PREDMETA
(0,M) (0,N)


Sl. 7.9.
82
7.2.4. Rekurzivni tip poveznika

Rekurzivni tip poveznika se ponekad naziva i unarnom vezom. Tu se radi o vezi koja
povezuje pojave istog tipa entiteta. Prevoenje unarnih veza se realizuje na isti nain kao za
obine, prethodno opisane binarne veze. Prevoenje zavisi od kardinalnosti tipa poveznika.
Postoji, meutim, jedna specifinost koja krasi rekurzivne tipove poveznika. Pri prevoenju
unarnih veza spoljni klju bi u emi relacije imao isto ime kao i primarni klju, to je
nedozvoljeno, zato se vri preimenovanje spoljanjeg kljua.


Postoje dva prihvatljiva reenja:
1.
RADNIK(JMBG, IME, PREZIME)
RUKOVODI(JMBG, JMBG_RUKOVODIOCA)

2.
RADNIK(JMBG, IME, PREZIME, JMBG_RUKOVODIOCA)


7.3. POSEBNA PRAVILA INTEGRITETA ZA SAUVANJE SEMANTIKE
ER MODELA

U napred izloenom je ve istaknuto da je ER model semantiki bogatiji od relacionog
modela. Neka ogranienja definisana u ER modelu ne mogu da se artikuliu iskljuivo
RADNIK RUKOVODI
(0, 1)
(1, N)
rukovodi sa
rukovodjen od
JMBG
IME
PREZIME


Sl. 7.10.
83
prevoenjem entiteta i poveznika. U cilju sauvanja semantike ER modela se pored prevoenjem
dobijenih ema relacija moraju definisati posebna pravila integriteta. Ta posebna pravila
integriteta se mogu formulisati na osnovu ER dijagrama analizom jedne veze sa pripadajua dva
tipa entiteta. Posebna pravila integriteta mogu biti statika i dinamika.
Statika pravila integriteta definiu uslove koji moraju biti zadovoljeni pre i posle izvrenja
proizvoljne operacija nad bazom podataka.
Dinamika pravila integriteta definiu procedure u relacionom modelu koje odgovaraju
operacijama u ER modelu (osnovnim operacijama operacijske komponente ER modela), a
ujedno obezbeuju odravanje (ostvarenje) uslova integriteta. Poto je operacijska komponenta
ER modela u potpunosti je analizirana u glavi 4, dinamika pravila integriteta neemo analizirati.

7.3.1. Posebna pravila integriteta vezana za entitete

PPI-E1. Vrednost identifikatora tipa entiteta, shodno tome primarnog kljua eme relacije
kao celine, a i bilo koje njegove komponente ne sme imati nul vrednost.
PPI-E2. Vrednost identifikatora slabog tipa entiteta, odnosno u njemu odgovarajuoj emi
relacije vrednost primarnog kljua ne moe imati vrednost koja ne postoji kao vrednost
primarnog kljua u emi relacije koja odgovara nadreenom tipu entiteta.
PPI-E3. Vrednost identifikatora podtipa, tj. vrednost primarnog kljua eme relacije koja
odgovara podtipu ne moe imati vrednost koja ne postoji kao vrednost kljua u emi
relacije koja odgovara nadtipu.
PPI-E4. Za vrednost identifikatora tj. vrednost kjlua eme relacije koja odgovara gerundu
(sigurno sloeni kjlu) vai pravilo integriteta pod 1. u ovoj taki.
PPI-E5. Za vrednost identifikatora kategorije (potklase u hijerarhiji kategorija) odnosno
u njemu odgovarajuoj emi relacije za vrednost primarnog kljua (poto je vetaki
uveden jedinstveni klju surogat) vai pravilo integriteta pod 1. u ovoj taki.

7.3.2. Posebna pravila integriteta za veze sa kardinalnou 1:1

PPI-V11-1. Za veze sa kardinalnou (1,1) : (1,1) vai ogranienje kao posebno
pravilo integriteta da nijedan od dva kandidata za klju ne smeju imati nul vrednost.
Kao to je poznato veze sa kardinalnou (1,1) : (1,1) zajedno sa oba tipa entiteta koji su
84
vezani takvom vezom se prevode u jednu emu relacije, pri emu se klju eme relacije
bira od dva kandidata za klju (identifikatora jednog i drugog tipa entiteta u vezi).
PPI-V11-2. Za veze sa kardinalnou (0,1) : (1,1) vai pravilo integriteta koje glasi:
spoljni klju u emi relacije koja odgovara tipu entiteta sa strane (1,1) ne sme imati
vrednost ako ta ista vrednost ne postoji kao vrednost primarnog kljua u emi relacije
koja odgovara tipu entiteta sa strane (0,1).
PPI-V11-3. Za veze sa kardinalnou (0,1) : (0,1) vai sledee pravilo integriteta: za
treu emu relacije koja predstavlja vezu nijedan od dva kandidata za klju ne smeju
imati nul vrednost.

7.3.3. Posebna pravila integriteta za veze sa kardinalnou 1:N

PPI-V1N-1. Posebno pravilo integriteta za veze sa kardinalnou (1,1) : (1,M) glasi:
neka konkretna vrednost obeleja (spoljnog kljua) se ne moe pojaviti u emi relacije
koja odgovara tipu entiteta sa strane (1,1), ako se ta ista vrednost se ne pojavljuje kao
vrednost primarnog kljua u emi relacije koja odgovara tipu entiteta sa strane (1,M), a
istovremeno se vrednost primarnog kljua u emi relacije koja odgovara tipu entiteta sa
strane (1,M) mora, barem jednom, pojaviti kao vrednost odgovarajueg obeleja
(spoljnog kljua) u emi relacije koja odgovara tipu entiteta sa strane (1,1). Prethodno
opisano ogranienje nalae istovremeno auriranje obe relacije kojima se predstavljaju
veze sa kardinalnou (1,1) : (1,M) u ER modelu.
PPI-V1N-2. Za veze sa kardinalnou (1,1) : (0,M) posebno pravilo integriteta glasi:
neka konkretna vrednost obeleja (spoljnog kljua) se ne moe pojaviti u emi relacije
koja odgovara tipu entiteta sa strane (1,1), ako se ta ista vrednost se ne pojavljuje kao
vrednost primarnog kljua u emi relacije koja odgovara tipu entiteta sa strane (1,M).
PPI-V1N-3. Za veze sa kardinalnou (0,1) : (1,M) vai ogranienje kao posebno
(dosta sloeno) pravilo integriteta koje se moe formulisati na sledei nain. Neka
konkretna vrednost obeleja (spoljnog kljua) se ne moe pojaviti u emi relacije koja
odgovara vezi (trea relacija), ako se ta ista vrednost ne pojavljuje kao vrednost
primarnog kljua u emi relacije koja odgovara tipu entiteta sa strane (1,M), a
istovremeno se vrednost primarnog kljua u emi relacije koja odgovara tipu entiteta sa
strane (1,M) mora, barem jednom, pojaviti kao vrednost odgovarajueg obeleja
(spoljnog kljua) u emi relacije koja odgovara vezi (ovo ukazuje na uzajamni integritet
to ima za posledicu istovremeno auriranje relacije veze i relacije na strani (1,M). Sa
85
druge strane neka konkretna vrednost obeleja (primarnog kljua) se ne moe pojaviti u
emi relacije koja odgovara vezi, ako se ta ista vrednost se ne pojavljuje kao vrednost
primarnog kljua u emi relacije koja odgovara tipu entiteta sa strane (0,1).
PPI-V1N-4. Za veze sa kardinalnou (0,1) : (0,M) ogranienje kao posebno pravilo
integriteta se moe formulisati na sledei nain. Neka konkretna vrednost obeleja
(spoljnog kljua) se ne moe pojaviti u emi relacije koja odgovara vezi, ako se ta ista
vrednost ne pojavljuje kao vrednost primarnog kljua u emi relacije koja odgovara tipu
entiteta sa strane (0,M), a istovremeno mora vaiti da se ne moe pojaviti neka
konkretna vrednost obeleja (primarnog kljua) u emi relacije koja odgovara vezi, ako
se ta ista vrednost ne pojavljuje kao vrednost primarnog kljua u emi relacije koja
odgovara tipu entiteta sa strane (0,1).

7.3.4. Posebna pravila integriteta za veze sa kardinalnou M:N

Kod tipova veza sa kardinalnou M:N prevoenje se realizuje posebnom (veznom)emom
relacije. Klju vezne eme relacije je u ovom sluaju sloen i sastavljen je od kljueva i jedne i
druge eme relacije koje su u vezi.
PPI-VMN-1. Za veze sa kardinalnou (0,M) : (0,N) vai ogranienje kao posebno
pravilo integriteta koje se moe opisati na sledei nain. Neka je jedna konkretizacija
sloenog kljua u veznoj relaciji {a,b}, pri emu je a vrednost obeleja Sif_A (kljua
prve relacije relacije A u vezi), a b je vrednost obeleja Sif_B (kljua druge relacije
relacijeB u vezi). U tom sluaju vrednost a mora egzistirati kao vrednost kljua u
relaciji A, a vrednost b mora postojati kao vrednost kljua u relaciji B.
PPI-VMN-2. Za veze sa kardinalnou (0,M) : (1,N) vai stroije ogranienje od
prethonog kao posebno pravilo integriteta i moe se formulisati na sledei nain. Neka
je jedna konkretizacija sloenog kljua u veznoj relaciji {a,b}, pri emu je a vrednost
obeleja Sif_A (kljua prve relacije relacije A u vezi), a b je vrednost obeleja Sif_B
(kljua druge relacije relacijeB u vezi). U tom sluaju vrednost a mora egzistirati kao
vrednost kljua u relaciji A, a vrednost b mora postojati kao vrednost kljua u relaciji B.
(Do ove take pravilo integriteta je ekvivalentno prethodnom ogranienju.). Pored toga,
u relaciji B ne moe postojati vrednost kljua b, ako ta ista vrednost b ne postoji kao
deo konkretizacije kljua u veznoj relaciji. Auriranje relacije B i vezne relacije se,
dakle mora istovremeno uraditi.
86
PPI-VMN-3. Za veze sa kardinalnou (1,M) : (1,N) vai jo stroije ogranienje od
prethonog i moe se formulisati na sledei nain. Neka je jedna konkretizacija sloenog
kljua u veznoj relaciji {a,b}, pri emu je a vrednost obeleja Sif_A (kljua prve
relacije relacije A u vezi), a b je vrednost obeleja Sif_B (kljua druge relacije
relacijeB u vezi). U tom sluaju vrednost a mora egzistirati kao vrednost kljua u
relaciji A, a vrednost b mora postojati kao vrednost kljua u relaciji B. (Do ove take
pravilo integriteta je ekvivalentno prethodnom ogranienju.). Pored toga, u relaciji B ne
moe postojati vrednost kljua b, ako ta ista vrednost b ne postoji kao deo
konkretizacije kljua u veznoj relaciji. A isto vai i za drugu relaciju: u relaciji A ne
moe postojati vrednost kljua a, ako ta ista vrednost a ne postoji kao deo
konkretizacije kljua u veznoj relaciji. Auriranje sve tri relacije se, dakle mora
istovremeno uraditi.
87
8. SQL JEZIK ZA UPRAVLJANJE RELACIONIM BAZAMA
PODATAKA

Relacioni model je strukturalno jednostavan i zasniva se na relacijama, odnosno
dvodimenzionalnim tabelama. Kod razrade prvog jezika za upravljanje bazama podataka
relacionih sistema prvenstveni cilj je bio da se realizuje takav deklarativni (opisni upravljaki)
jezik koji e omoguiti obradu relacija pomou skupovnih operacija relacione algebre. Prvi jezik
za upravljanje relacionim bazama podataka je objavljen 1974. godine pod nazivom SEQUEL
(Structured English Query Language) ukazajui i nazivom da se radi o strukturalnom (sintaktiki
strogo odreenom) jeziku baziranom na razumljivim engleskim reima. Skraenica obuhvata i
re upitni (Query) naglaavajui efikasnost ovog jezika u izraavanju upita, mada ovaj jezik
moe da poslui za razne druge aktivnosti u vezi upravljanja relacionim bazama podataka.
Kasnije se naziv jezika promenio na SQL pod kojim imenom je i danas poznat.
Prvi korak na putu standardizacije SQL jezika je napravio ANSI (American National
Standards Institute) 1986. godine, a godinu dana kasnije je i ISO (International Standards
Organisation) objavio ISO SQL standard. Dve korekcije SQL standarda su obavljene 1989.,
1992. i 1999. godine. SQL86 preporuke su obuhvatale samo osnovne elemente iz tada postojeih
SQL realizacija, tako da su tadanji SQL jezici preteno prevazili objavljeni standard. SQL89 je
korigovao nedostale preporuke kod postojeih realizacija, a SQL92 i SQL99 sadre viziju
razvoja za budunost.
SQL nije softver za upravljanje bazama podataka ve samo jezik za rukovanje relacionim
bazama. SQL je samo jedna komponenta softvera za rukovanje relacionim bazama podataka.
Pored funkcije rukovanja podacima u relacionim bazama SQL obezbeuje i druge vrste naredbi.
Naredbe SQL jezika se dele na kategorije na osnovu kojih se definiu podjezici SQL jezika:
1. Jezik za definisanje podataka (DDL Data Definition Language),
2. Jezik za manipulisanje podacima (DML Data Manipulation Language),
3. Jezik za upit (Query) i
4. Jezik za upravljanje podacima (DCL Data Control Language).
U nastavku e biti prikazane naredbe SQL86 jezika, jer su najprostije, a kompatibilne su sa
naredbama novijih standarda. Krenuemo kategorijama SQL naredbi shodno njihovoj nameni, a
prema gore datom redosledu. Za primenu SQL jezika za pisanje standardnih aplikacija, skup
SQL naredbi treba da se proiri proceduralnim naredbama. Za realizaciju prethodno
formulisanog zahteva postoje dve mogunosti:
1. ugradnja SQL-a u postojee proceduralne jezike i
88
2. proirenje SQL jezika proceduralnim instrukcijama (naredbama).


8.1. JEZIK ZA DEFINISANJE PODATAKA (DDL)

Prvi korak u primeni baze podataka je definisanje (prazne) strukture za smetaj podataka
koja e kasnije biti punjena i obraivana. Za relacione baze podataka prazna struktura oznaava
samu bazu podataka i njene tabele. Baza podataka predstavlja okvir u kojem tabele egzistiraju, a
koje tabele moraju jedinstveno ime pomou kojeg se mogu jednoznano identifikovati. Unutar
tabele se nalaze polja (nazivi kolona) tabele. Kako nazivi tabela moraju imati jedinstveno ime
unutar iste baze podataka tako i nazivi kolona moraju biti jedinstveni unutar iste tabele. Kod
kreiranja tabele se zadaju naziv tabele i nazivi i tipovi polja koja sainjavaju tabelu.
Referencijalni integritet predstavlja sastavni deo relacionog modela, no SQL86 ne sadri
definicije svih moguih uslova integriteta.
Instrukcija pomou koje se definie baza podataka ima sledeu formu:

CREATE DATABASE naziv_baze_podataka;

Izvravanjem ove instrukcije nastaje baza podataka pod navedenim nazivom u aktuelnom
(default) folderu.
Brisanje baze podataka je mogue izvriti ako je ona zatvorena (nije aktivna) i to pomou
sledee naredbe:

DROP DATABASE naziv_baze_podataka;

Za dobijanje informacija (naziv, matini folder baze podataka, datum kreiranja,
identifikator korisnika-kreatora baze) o svim postojeim bazama podataka koristi se instrukcija
oblika:

SHOW DATABASE;

Pre korienja bazu podataka treba aktivirati (uvek samo jedna baza podataka moe biti
aktivna) pomou:

89
START DATABASE naziv_baze_podataka;

Zatvaranje (deaktiviranje) baze podataka se realizuje sledeom naredbom:

STOP DATABASE;

Naredba za kreiranje prazne (definisanje strukture za smetaj podataka) tabele je sledeeg
oblika:

CREATE TABLE naziv_tabele (ime_polja
1
tip_polja
1
(duina_polja
1
) [integritet_polja
1
]
[,..., ime_polja
n
tip_polja
n
(duina_polja
n
) [integritet_polja
n
]]
[, integritet_za_grupu_polja])

ime_polja
i
- jedinstveno ime naziva kolone (polja) tabele
tip_polja
i
- ukazuje na tip podatka koji e se smestiti u posmatrano polje (svaki relacioni
sistem za upravljanje bazama podataka ima svojstven skup moguih tipova podataka
unapred definisanih dimenzija duina)
integritet_polja
i
- predstavlja uslov integriteta koji mora biti zadovoljen za dotino polje
vrsta uslova integriteta za polje moe biti:
UNIQUE - sadraj polja mora biti jedinstven u okviru tabele i
NOT NULL - polje ne sme ostati nepopunjen (ne moe sadrati nula-
vrednost)
integritet_za_grupu_polja od gore navedena dva uslova integriteta za polje samo prvi
moe da se primeni za grupu polja navoenjem imena polja u zagradi:
UNIQUE (ime_polja
1
[,..., ime_polja
n
])

Kao primer za kreiranje tabele moe da poslui ema relacije student u sledeem obliku
(izgledu):
STUDENT (BRINDEKSA, IMESTU, GODRODJSTU, ADRESASTU, TELEFSTU)

CREATE TABLE STUDENT (BRINDEKSA CHAR(8) NOT NULL UNIQUE,
IMESTU CHAR(20) NOT NULL,
GODRODJSTU NUMBER(4),
ADRESASTU CHAR(20),
90
TELEFSTU CHAR(12));

U standardu SQL86 nije postojala naredba za modifikaciju strukture tabele (naredba
ALTER kojom je bilo mogue dodavati polja (nazive kolona) tabele je tek kasnije uveden), ve
samo za njeno brisanje u obliku:

DROP TABLE naziv_tabele;

Tabele kreirane pomou CREATE TABLE instrukcije su i fiziki postojee tabele u koje
se fiziki smetaju podaci. Pored ovakvih, fiziki postojeih tabela u bazi podataka mogu
definisati i pogledi (VIEW), fiziki nepostojee, izvedene tabele. Sistem za rukovanje bazama
podataka memorie samo njegovu definiciju. Podaci u jednom redu VIEW tabele fiziki nigde
nisu zajedno smeteni kako ih vidimo u prikazu VIEW tabele, ve se sakupljaju iz razliitih
(fiziki postojeih) tabela shodno definiciji samog VIEW-a:

CREATE VIEW naziv_tabele_pogleda [(ime_polja
1
[, ime_polja
2...
ime_polja
n
])] AS
niz_operacija;

Naznaena imena polja u CREATE VIEW naredbi ukazuju na mogunost korienja
razliitih imena polja u VIEW-u od imena prvobitnih, fiziki postojeih polja u osnovnim
tabelama. Ako se ne specificiraju imena polja u CREATE VIEW naredbi onda e nazivi za polja
u pogledu naslediti nazive iz osnovnih, fiziki postojeih tabela. U CREATE VIEW instrukciji
niz_operacija oznaava skup upitnih aktivnosti formulisan pomou SELECT naredbe (format
SELECT nardbe se kasnije objanjava). Kao primer definiimo pogled studenata roenih 1982.
godine koji e sadrati broj indeksa, ime i telefon:

CREATE VIEW student1982 AS SELECT brindeksa, imestu, telefstu
FROM student WHERE godrodjstu = 1982;

Brisanje definicije pogleda (VIEW tabele) se vri na isti nain kao bilo koje fiziki
postojee tabele:

DROP VIEW naziv_tabele_pogleda;

91
8.2. JEZIK ZA MANIPULISANJE PODACIMA (DML)

Posle definisanja imamo prazne tabele na raspolaganju. SQL86 standard omoguava tri
osnovne aktivnosti za manipulisanje podacima:
1. unos podataka,
2. modifikaciju podataka i
3. brisanje podataka.

8.2.1. Naredbe DML-a za unos podataka

Za unos podataka se koristi INSERT naredba ija je sintaksa sledea:

INSERT INTO naziv_tabele
[ime_polja
1
, ime_polja
2
,..., ime_polja
n
]
VALUES (vrednost_polja
1
, vrednost_polja
2
,..., vrednost_polja
n
);

Unos konkretnog studenta u tabelu STUDENT se izvrava na sledei nain:

INSERT INTO student
brindeksa, imestu, godrodjstu, adresastu, telefstu
VALUES ("I-18/2003", "Petar Petrovi", 1984, "Subotica Rumska 17", NULL);

U primeru student ne poseduje telefon (ili samo u trenutku upisa broj njegovog telefona je
nepoznat), tako e polje telefstu ostati prazan (NULL ili nula-vrednost).
Postoji i drugi oblik INSERT naredbe koji slui ne za pojedinani nego za masovni unos
(masovno punjenje) podataka iz neke druge tabele

INSERT INTO naziv_tabele niz_operacija;

8.2.2. Naredba DML-a za modifikaciju podataka

U sluaju pogreno unetih podataka neophodno je ispravljati loe unoene podatke. U
naredbi za modifikaciju je mogue definisati uslov pomou kojeg se odreuju redovi na koje se
modifikacije odnose. Format naredbe je sledei:
92

UPDATE naziv_tabele
SET ime_polja
1
= vrednost_polja
1

[,ime_polja
2
= vrednost_polja
2

.
.
ime_polja
n
= vrednost_polja
n
]
[WHERE uslov];

U prethodnoj naredbi uslov moe biti i sloen logiki izraz u kojem proste izraze vezuju
logike AND, OR i NOT operacije. U prostim izrazima mogu da se koriste sledei relacioni
operatori: = (jednako), > (vee), < (manje), >= (vee ili jednako ne manje od), <= (manje ili
jednako ne vee od), <> (nije jednako), BETWEEN, IN, LIKE i IS NULL.
Uobiajeni relacioni operatori su poznati iz svakidanje prakse. Zadnja etiri relaciona
operatora su specifina, pa e njihova sintaksa biti objanjena u narednim pasusima.
Pomou operatora BETWEEN se vri kontrola neke vrednosti da li se nalazi unutar nekog
zadatog intervala vrednosti ili ne. Operator se primenjuje u sledeem formatu:

izraz
1
BETWEEN izraz
2
AND izraz
3


U gore formulisanom izrazu izraz
2
je manji ili jednak izrazu izraz
3
i vraa istinitu vrednost
ako je vrednost izraza izraz
1
vea ili jednaka vrednosti izraza izraz
2
, odnosno istovremeno manja
ili jednaka vrednosti izraza izraz
3
.
IN operator uporeuje vrednost polja tabele sa elementima jedne liste. Oblik uslova
formulisanog pomou IN operatora je sledei:

ime_polja IN (element_liste
1
[, element_liste
2
,..., element_liste
n
])

Gornji izraz daje istinitu vrednost ako se vrednost ime_polja poklapa sa vredou nekog
elementa liste element_liste
i
, i=1,2, ..., n.
Operator LIKE slui za uporeivanje stringova (tip polja je CHAR). Nije rigorozan kao
operator = (kod operatora = uporeeni stringovi moraju biti potpuno ekvivalentni), ve se
pomou njega mogu formulisati delimine jednakosti ili ekvivalencije pojedinih delova
stringova. Formulisanje uslova treba da sledi sledeu sintaktiku:
93

ime_polja LIKE 'abcd' [ESCAPE 'x']

U gornjem izrazu 'abcd' predstavlja sadraj sa kojim se uporeuje vrednost ime_polja.
Mustra 'abcd' moe da sadri i karaktere za maskiranje ili jocker karaktere, i to samo dva
dozvoljena karaktera:
_ - taj znak zamenjuje jedan karakter i
% - zamenjuje proizvoljan niz karaktera.
Da bi se mogli i ovi jocker karakteri koristiti u mustri za uporeivanje uveden je ESCAPE
opcija. ESCAPE opcija deklarie neki specijalni karakter iza kojeg u mustri rezervisani jocker
karakter nema svoju funkciju maskiranja, ve ga treba smatrati obinim znakom. U sledeem
primeru formuliemo uslov za ispitivanje da li sadraj ime_polja poinje nizom znakova 50%:

ime_polja LIKE '50#%%' ESCAPE '#'

ESCAPE opcijom deklarisan karakter # (taraba) obezbeuje da e se znak % iza njega
smatrati obinim karakterom za uporeivanje, no to se ne odnosi na sledei (drugi po redu) znak
% (jer ispred njega ne stoji ESCAPE-om definisan specijalni simbol) on oznaava da se ostali
znaci uopte ne uporeuju (bitno je samo da prva tri znaka budu sledea: 50%).
IS NULL operator vri ispitivanje sadraja polja na praznu (nepopunjenu) vrednost. Vraa
istinitu vrednost ako je polje ime_polja prazno:

ime_polja IS NULL

Pomou kljune rei NOT je mogue negirati sva etiri do sada objanjena operatora
stavljanjem rei NOT ispred svakog od operatora osim IS NULL operatora. Kod njega se
negiranje formulie u obliku IS NOT NULL.
U prostim logikim izrazima se mogu koristiti i poznati aritmetiki operatori: + (sabiranje),
- (oduzimanje), * - mnoenje i / - deljenje.
Kao primer za modifikaciju e nam posluiti previd unosa kod imena prethodno
insertovanog studenta: student se istinski zove Petar Koi, a ne Petar Petrovi:
UPDATE student
SET imestu = "Petar Koi"
WHERE brindeksa = "I-18/2003";
94
8.2.3. Naredba DML-a za brisanje podataka

Konkretni entiteti svakog tipa entiteta imaju svoj ivotni ciklus: nastaju, razvijaju se i
nestaju. Shodno tome u nekim situacijama treba obezbediti i fiziko brisanje podataka iz neke
tabele baze podataka. Naredba za brisanje konkretnog entiteta (reda tabele baze podataka) ima
sledei oblik:

DELETE FROM naziv_tabele
[WHERE uslov];

Obavezni deo naredbe sadri samo naziv tabele, meutim, izvravanjem tog oblika naredbe
za brisanje moe imati kobne posledice jer brie eve redove navedene tabele. Navoenjem
konkretnog uslova u WHERE klauzuli mogu se izabrati oni redovi tabele koji su predvieni za
brisanje. Izbrisae se oni redovi za koje je uslov istinit. Formulisanje uslova je detaljno objanjen
kod opisa prethodne naredbe (za modifikaciju saraja reda tabele).
Opasnost od gubljenja podataka postoji u sluaju ako se naredba za brisanje neodgovorno
ili nepromiljeno koristi. Kod veine sistema za rukovanje bazama podataka, meutim, postoji
mogunost restauracije prethodnog stanja, tako da se kod ovakvih sistema brisani podaci mogu
spasiti izdavanjem (izvravanjem) sledee instrukcije:

ROLLBACK

Ta naredba se objanjava u delu obrade transakcija jer je ona predviena za ponitavanje
kompletnog niza naredbi definisanog u okviru jedne transakcije koju treba atomski izvravati.


8.3. NAREDBA ZA UPIT PODATAKA

U SQL86 (a i u kasnijim modifikacijama, standardima ovog jezika) postoji samo jedna
naredba za upit u bazu podataka, a to je uvena ili famozna SELECT naredba. Poto SELECT
mora biti u stanju da formulie sve objanjene operacije relacione algebre korisne za sastavljanje
upita, logino je oekivati da je struktura ove naredbe dosta sloena. Postoje dva pristupa za
upoznavanje SELECT naredbe. Prvi pristup kree od najprostijeg oblika u objanjenjima ka
najsloenijoj formi, a drugi sledi obrnuti smer: kree od pregleda komletne SELECT reenice i
95
objanjava pojedine delove naredbe. Na prikaz e slediti drugi nain pristupa u upoznavanju
naredbe za upit. Bez obzira na nain upoznavanja SELECT reenice treba zapamtiti da rezultat
izvrenja naredbe za upit predstavlja privremenu tabelu koja nestaje izvravanjem neke druge
(SQL) instrukcije. Tabela rezultata (R-tabela) se izgrauje postepeno na osnovu prisutnih
klauzula (glavnih delova SELECT reenice) u samoj naredbi za upit. Unutar SELECT reenice
se mogu nalaziti unutranji upiti (tzv. unutranji ili ugraeni SELECT-i), a takoe i same
naredbe za upit se mogu povezati pomou UNION operacije . Struktura kompletne SELECT
naredbe u SQL86 standardu je sledee (naredba je pisana bold-om, a objanjenje italic-om):

SELECT ... izbor kolone (polja) - projekcija
FROM ... zadavanje naziva tabela Dekartov proizvod
[WHERE ...] izbor redova - selekcija
[[GROUP BY ... grupisanje
[HAVING ...]] izbor izmeu grupa
[ORDER BY ...] sortiranje rezultata (privremene R-tabele)
[SAVE TO TEMP ...]; memorisanje privremene R-tabele

[UNION ...] povezivanje R-tabela

Struktura SELECT reenice ukazuje minimalnu moguu naredbu koja mora sadrati pored
(naravno) SELECT klauzule i FROM klauzulu. Moramo, znai, deklarisati odakle elimo i ta
elimo prikazati (ili listati u R-tabeli). Sve ostale klauzule su opcionalne. Interesantno je,
meutim ukazati na redosled izvravanje pojedinih klauzula u SELECT reenici jer se redosled
izvravanja same naredbe, tj. njenih klauzula se ne poklapa sa propisanim redosledom
definisanja. Evo redosleda izvravanja klauzula SELECT naredbe:

FROM ... zadavanje naziva tabela Dekartov proizvod
[WHERE ...] izbor redova - selekcija
[[GROUP BY ... grupisanje
[HAVING ...]] izbor izmeu grupa
SELECT ... izbor kolone (polja) - projekcija
[ORDER BY ...] sortiranje rezultata (privremene R-tabele)
[SAVE TO TEMP ...]; memorisanje privremene R-tabele

96
8.3.1. SELECT klauzula

Kompletna forma SELECT podreenice (klauzule) je sledea:

SELECT [ALL DISTINCT] ime_polja
1
[,..., ime_polja
n
] *
FROM naziv_tabele
1
[,..., naziv_tabele
n
];

Semantika SELECT klauzule je sledea: selektuje navedena polja na osnovu navedenih
ogranienja (ALL DISTINCT) projekcija iz tabele(a) navedene(ih) u FROM klauzuli i na
taj nain konstituie R-tabelu. Opcije u SELECT klauzuli su sledee:
ALL R-tabela e sadrati i duplirane redve (ako oni postoje u tabeli) ta opcija je
default, tj. podrazumeva se u sluaju da nema navedene opcije,
DISTINCT R-tabela nee sadrati duplirane redove,
* - sve kolone (sva polja) tabele(a) nevedene(ih) u FROM klauzuli e se pojaviti u R-
tabeli,
ime_polja
1
[,..., ime_polja
n
] samo polja navedena u ovoj listi e se pojaviti u R-tabeli.

Primer:
SELECT * FROM student;
lista sve podatke o svim studentima iz tabele STUDENT.

Primer:
SELECT brindeksa, imestu, godrodjstu FROM student;
konstituie R-tabelu sa nazivima kolona brindeksa, imestu i godrodjstu gde smeta ove
podatke o svim studentima.

Primer:
SELECT DISTINCT godrodjstu FROM student;
lista sve razliite godine roenja studenata.

Za elemenat liste polja projekcije SELECT naredbe (SELECT klauzule SELECT reenice
kao celine) vae sledea ogranienja. Elemenat liste moe biti:
ime polja ako vie tabela imaju polja pod istim imenom, ime polja treba da se navede u
obliku: naziv_tabele. ime_polja,
97
izraz sastavljen od imena polja tabela navedenih u from klauzuli,
funkcija za agregiranje podataka,
drugi izraz.

Primer - aritmetiki izraz:
SELECT brindeksa, imestu,YEAR(DATE())-godrodjstu FROM student;
lista pored broja indeksa i imena i podatak koliko student ima godina.

Primer - karakterski izraz:
SELECT LEFT(brindeksa,1,1),UPPER(imestu) FROM student;
sastavlja R-tabelu sa oznakom smera (prvi znak u broju indeksa) i imena studenata
velikim slovima tampanih.

Funkcije za agregiranje podataka

Funkcije za agregiranje omoguuju stvaranje jedinstvenog polja za formirane grupe
(definisane pomou GROUP BY klauzule videti kasnije), na taj nain, da generiu jednu
vrednost dotinog polja za celu grupu. Tako e jedan red R-tabele sadrati podatke za jednu
grupu podataka. Operatori koji se mogu koristiti formalno kao funkcije (odatle i naziv: funkcije
za agregiranje podataka), a slue za stvaranje jedne vrednosti za celu grupu su sledei:

1. Operator (funkcija) za prebrojavanje ima sledei oblik

COUNT([DISTINCT] ime_polja *)

Na ovakav nain definosano numeriko polje R-tabele e sadrati vrednost izbrojanih
lanova elemenata (vrednosti) u navedenom polju tabele. Ako je naznaena i re DISTINCT
polje e sadrati samo vrednost koja ukazuje na razliite vrednosti u navedenom polju ime_polja.
Navedeno polje ime_polja moe biti proizvoljnog tipa, ali u brojanje nee uzeti null-vrednosti.
Zato, ako nas interesuje broj redova u tabele treba da formu: COUNT(*)

Primer:
SELECT COUNT (brindeksa) FROM student;
98
R-tabela vraa samo jednu vrednost, i to, ukupan broj evidentiranih studenata (poto je
polje brindeksa po definiciji ne moe imati null-vrednost).

2. Operator za sabiranje (sumiranje) se opisuje na sledei nain

SUM ([ALL] izraz | [ALL|DISTINCT] [ime_polja])

Sabirati je mogue pomou ovog operatora vrednosti definisane pomou proizvoljnog
validnog izraz, ali se, naravno, moe traiti zbir svih (ALL) ili samo razliitih (DISTINCT)
vrednosti nekog polja. Polje treba da je numeriko, odnosno izraz numeriki.

Primer:
SELECT SUM (DISTINCT(godrodjstu)) FROM student;
Jedini mogui primer za prikazivanje SUM operatora (poto je samo polje godrodjstu
numerikog tipa) je predstavljen prethodnom reenicom (bez obzira to nema puno
smisla). Upit sabira godine roenja studenata, ali svaku godinu roenja uzima u obzir samo
jednom pri stvaranju zbira.

3. Operator za raunanje proseka se moe koristiti u sledeem obliku

AVG ([ALL] izraz | [ALL|DISTINCT] [ime_polja])

Slino kao kod sumiranja, moe se traiti prosek nekog izraza za posmatranu grupu, ali i
prosena vrednost neke kolone (polja) uzimajui u obzir sve mogue (ALL) ili samo razliite
vrednosti (DISTINCT) kolone. Prosek se moe traiti za numerika polja, odnosno izraze.

Primer:
SELECT AVG(DISTINCT((godrodjstu)) FROM student;

4. Funkcija za nalaenje minimalne vrednosti ima sledeu prostu formu

MIN(ime_polja)

99
ime_polja predstavlja polje koje je tekstualnog, datumskog ili vrednosnog (numerikog)
tipa.

Primer:
SELECT MIN(godrodjstu) FROM student;
Prethodni upit daje godinu roenja najstarijeg(ih) studen(a)ta.

5. Operator za nalaenje maksimalne vrednosti

MAX(ime_polja)

Polje za koje traimo najveu vrednost treba da je takvog tipa koji se moe ureivati
(numeriki, tekstualni, datumski tip).

Primer:
SELECT MAX(godrodjstu) FROM student;
Prethodni SELECT vraa jednu vrednost: godinu roenja najmlaeg(ih) studen(a)ta.

8.3.2. FROM klauzula

Ovaj deo SELECT reenice je ve naveden u SELECT klauzuli, ali u stvari predstavlja
samostalnu klauzulu bez koje ne vai (nije kompletan) upit. Ujedno FROM klauzula je jedina
obavezna klauzula koja je neophodna (formalno) za bilo koji upit. Opis formata FROM klauzule
je

FROM naziv_tabele
1
[ skraeni_naziv_tabele
1
]
[,..., naziv_tabele
n
[ skraeni_naziv_tabele
n
]]

U ovom delu SELECT reenice se definie skup tabela iz kojih sistem za rukovanje
bazama podataka stvara Dekartov proizvod. Po pravilu kompletan Dekartov proizvod izveden na
osnovu nabrajanih tabela nije potreban ni za jedan konkretan upit, stoga u sledeim delovima
SELECT reenice se smanjuje (filtrira, selektuje) broj redova kompletnog Dekartovog proizvoda
formulisanjem odgovarajuih uslova. U najveem broju sluajeva za povezivanje dve tabele se
koristi equijoin veza na osnovu kljua i spoljanjeg kljua (povezivanje onih redova dve tabele
100
za koje vai jednakost-ekvivalencija kljua i spoljanjeg kljua). U manjem broju praktinih
primera moe se desiti povezivanje tabele sa samim sobom (operacija se zove self-join, a
primenjuje se kod rekurzivnih veza). U FROM klauzuli je mogue zadati skraeni naziv tabele u
sluaju da ima vie naznaenih tabela u klauzuli i u daljim klauzulama je mogua primena
skraenog naziva tabele. Kod rekurzivne veze (kod self-joina tabele) skraeni nazivi se moraju
zadati i, takoe, treba da se razlikuju.


8.3.3. WHERE klauzula

WHERE klauzula, kao to je napred reeno selektuje redove iz Dekartovog proizvoda vie
tabela koji se dobija uparivanjem svakog sa svakim redom iz svih tabela. Rezultantna R-tabela e
sadrati samo one redove za koje je uslov istinit (koji redovi zadovoljavaju uslov). Sintaktika ove
klauzule je vrlo prosta:

WHERE uslov

Naznaen uslov u klauzuli je logiki izraz. Ova klauzula je ve praktino obraena kod
naredbe za modifikaciju podataka UPDATE, jer su tamo analizirane sve mogue forme uslova
koje se mogu naznaiti I u ovoj klauzuli u okviru uslov-a.

Primer:
SELECT * FROM student WHERE telefstu IS NOT NULL;
Tabela rezultata upita (R-tabela) sadri vrednosti svih polja tabele STUDENT za one
studente koji poseduju telefon.

8.3.4. GROUP BY klauzula

To je opcija SELECT naredbe koja slui za grupisanje podataka. Grupu sainjavaju oni
redovi tabele koji po nekom proizvoljno formulisanom kriterijumu imaju iste vrednosti. Format
GROUP BY opcije je sledei:

GROUP BY ime_polja
1
[,..., ime_polja
n
]

101
Na osnovu vrednosti pojedinih polja se sainjavaju grupe. Redovi koji imaju iste
konkretizacije u kolonama tabele sa nazivom ime_polja
1
e spadati u istu grupu. Za grupu(e) se
po pravilu primenjuju agregacione funkcije (o kojima je ve bilo rei).

Za ovu klauzulu vae sledea ogranienja:
1. Iza rezervisane rei SELECT se nalaze imena polja po kojima se vri grupisanje i
agregacione funkcije (koje se izvravaju nad svim grupama ponaosob),
2. Iza rezervisane rei SELECT se mogu nalaziti samo ona imena polja koja se nalaze
istovremeno i iza GROUP BY izraza,
3. Redosled imena polja ukazuje na ugnedenje grupa (kako se vri grupisanje
podataka unutar pojedinih grupa definisanih prethodnim imenom polja u GROUP
BY klauzuli i
4. Argumenti GROUP BY klauzule mogu biti samo nazivi polja, a ne i izvedena
polja, odnosno izrazi.

Primer:
SELECT godrodjstu, COUNT(*)
FROM student
WHERE telefstu IS NOT NULL
GROUP BY godrodjstu;
To je prava forma pisanja SELECT reenice (svaka nova klauzula se pie u novi red, a na
kraju reenice se nalazi znak za taku, tj. za zavretak reenice: ;). Gornji upit lista
godine roenja studenata i ukupan broj studenata koji imaju telefon, a roeni su te godine
koja stoji kao prvi podatak u redu.


8.3.5. HAVING klauzula

HAVING klauzula slui za filtriranje grupa dobijenih GROUP BY klauzulom. Nekad nas,
naime, ne interesuju sve grupe dobijene (formirane) GROUP BY klauzulom, tada koristimo ovu
klauzulu da bi birali iz raspoloivih grupa. Semantika HAVING klauzule je sledea:

HAVING uslov

102
Od grupa sastavljenih pomou GROUP BY klauzule u R-tabelu e dospeti samo one koje
zadovoljavaju uslov formulisan u HAVING klauzuli.

Primer:
SELECT godrodjstu, COUNT(*) FROM student
WHERE telefstu IS NOT NULL
GROUP BY godrodjstu HAVING godrodjstu BETWEEN 1980 AND 1985;
Upit u ovom primeru lista godine roenja studenata i ukupan broj studenata koji imaju
telefon, a roeni su te godine koja stoji kao prvi podatak u redu, ali ne uestvuju sve
mogue vrste godine roenja (sve grupe formirane od strane godrodjstu), ve samo grupe
(ili godine) od 1980 do 1985 godine.


8.3.6. ORDER BY klauzula

Ova klauzula ureuje podatke (redove) R-tabele po odreenom kriterijumu formulisanom u
samoj klauzuli. Izgled ORDER BY klauzule je sledei:

ORDER BY ime_polja
1
| redni_broj_polja
1
[ASC|DESC]
[,..., ime_polja
n
| redni_broj_polja
n
[ASC|DESC]]

Klauzula ureuje R-tabelu po vrednostima navedenih polja ime_polja
n
. Ako klauzula ima
vie navedenih polja, sreivanje tabele se vri po vrednostima prvonavedenog polja, unutar iste
vrednosti prvog polja se ureuje R-tabela po vrednostima drugog polja itd. Ogranienja u vezi
ove klauzule su sledea:
1. Polje ime_polja
n
u ORDER BY klauzuli mora se pojaviti i u SELECT klauzuli.
2. Vrednost redni_broj_polja
n
oznaava redni broj polja u SELECT klauzuli.
3. ASC oznaava ureivanje po rastuem redosledu po vrednosti polja iza kojeg stoji
opcija (ova se opcija podrazumeva ako se nita ne navodi iza imena ili rednog broja
polja).
4. DESC izaziva ureivanje po opadajuoj vrednosti polja.



103
Primer:
SELECT imestu, godrodjstu, adresastu
FROM student
ORDER BY adresastu, godrodjstu, imestu;
Upit lista studente po adresi (iz iste ulice) po godinama roenja i po imenima (abeceni
redosled studenata po grupama sa istom godinom roenja u okviru iste ulice). Lista obuhvata sve
ulice iz baze.


8.3.7. SAVE TO TEMP klauzula

U prethodnom delu je objanjeno da R-tabela predstavlja privremenu tabelu koja nestaje
nakon izdavanja sledee SQL naredbe. U sluaju da elimo spasiti rezultat nekog upita treba da
navedemo ovu klauzulu. Format klauzule je sledei:

SAVE TO TEMP naziv_tabele [ime_polja
1
,..., ime_polja
n
]

Navoenjem imena polja mogue je preimenovati polja iz prvobitne tabele. Za ovu
klauzulu je formulisano samo jedno ogranienje:
1. Ako se u SELECT klauzuli nalazi makar jedno izvedeno polje (bilo kakav izraz ili
agregaciona funkcija) dodela imena polja je obavezna.

Primer:
SELECT godrodjstu, COUNT(brindeksa)
FROM student
GROUP BY godrodjstu
SAVE TO TEMP pomocna(godrodjstu, broj_studenata_rodjenih_te_godine);
Upit daje kao rezultat R-tabelu koja sadri u jednom redu godinu i broj studenata iz tabele
STUDENT roenih te godine. Rezultat se smeta u pomonu tabelu (pomocna) koja moe da
poslui za dalju obradu. Zbog agregacione funkcije u SELECT klauzuli treba dodeliti imena
poljima rezultantne tabele.


104
8.3.8. Unutranji ili ugraeni SELECT-i

Ugraeni SELECT-i se mogu smestiti u uslov WHERE i/ili HAVING klauzule uz
ispotovanje sledea dva ogranienja:
1. unutranji SELECT ne sme da sadri ORDER BY klauzulu
2. u ugraenom SELECT-u se ne moe koristiti SAVE TO TEMP klauzula.
Ugraeni SELECT takoe moe da sadri unutranje SELECT reenice, tj. na taj nain se
mogu ugraivati SELECT reenice jedna u drugu. Unutranji SELECT se uvek stavlja u
zagradu. Redosled izvravanja SELECT reenica je strogo odreen: prvo se izvrava unutranji,
pa tek onda spoljanji SELECT, i, napokon, uporeuju se dobijene vrednosti. Rezultat (R-tabela)
unutranjeg SELECT-a se uporeuje sa svakim redom spoljanjeg (glavnog) SELECT-a.
Ugraene SELECT reenice se mogu klasifikovati na osnovu sledea dva kriterijuma:
1. Broj vrednosti u R-tabeli unutranjeg SELECT-a i
2. Broj izvravanja ugraene SELECT reenice


8.3.8.1. Broj vrednosti u R-tabeli ugraenog SELECT-a

U vezi broja vrednosti u R-tabeli unutranjeg SELECT-a mogu nastati dve situacije:
1. R-tabela ugraenog SELECT-a sadri samo jednu vrednost
2. unutranji SELECT vraa vie vrednosti u R-tabeli.
Ako unutranji upit ima samu jednu vrednost u uslov-u u WHERE i/ili HAVING klauzuli
se koristi jedan od logikih operatora za uporeivanje vrednosti (=, <, >, , , ) rezultata
unutranjeg upita i neke druge vrednosti (konkretne vrednosti nekog konkretnog polja).
Ako ugraeni upit vraa vie vrednosti u uslov-u u gore pomenutim klauzulama treba da se
koristi jedan od IN, ANY, ALL ili EXISTS predikata u sledeem obliku:

predikat (unutranji SELECT)

Uz svaki predikat moe da stoji i re NOT (NOT IN, NOT ANY, NOT ALL; NOT
EXISTS). Znaenje predikata je sledee:
IN istinita vrednost se vraa ako je vrednosti polja navedenog ispred IN predikata
jednaka nekoj vrednost unutranje R-tabele. Spoljanji SELECT pretrauje listu
generisanu od strane unutranjeg SELECT-a i one rekorde (redove) svrstava u R-
105
tabelu za koje se vrednost polja (navedeno ispred predikata) nalazi u listi
generisanoj od strane ugraenog SELECT-a.
ANY istinitu vrednost vraa ako je naznaeno uproenje istinito za neku
vrednosti unutranje R-tabele. Spoljanji SELECT pomou ANY predikata
selektuje one rekorde (redove) za koje je uslov naveden pre predikata zadovoljen
makar za jednu vrednost liste generisane od strane ugraenog SELECT-a.
ALL vraa istinitu vrednost ako je navedeno uporeenje istinito za svaku
vrednost unutranje R-tabele. Spoljanji SELECT pomou ALL predikata selektuje
one rekorde (redove) za koje je uslov naveden pre predikata zadovoljen za sve
vrednosti liste generisane od strane ugraenog SELECT-a.
EXISTS uzima istinitu vrednost ako lista generisana od strane unutranjeg
SELECT-a nije prazna.
Za navoenje primera unutranjeg SELECT-a sa gore navedenim predikatima neophodno
je imati vie od jedne tabele. Definiimo zato sledee dve tabele.

CREATE TABLE PREDMET (SIFPREDMETA CHAR(8) NOT NULL UNIQUE,
NAZPREDMETA CHAR(20) NOT NULL,
GODUVODJPR NUMBER(4),
NEDELJNIFONDPRED NUMBER(1),
NEDELJNIFONDVEZB NUMBER(1),
NEDELJNIFONDLABVEZB NUMBER(1));

CREATE TABLE POLOZISPIT (BRINDEKSA CHAR(8) NOT NULL UNIQUE,
SIFPREDMETA CHAR(8) NOT NULL UNIQUE,
DATUMISPITA DATE(),
OCENA NUMBER(2));

Primer: IN predikat
Listajmo imena studenata koji su poloili predmet pod nazivom Matematika1

SELECT imestu
FROM student
WHERE brindeksa IN (SELECT brindeksa FROM polozispit
WHERE sifpredmeta = (SELECT sifpredmeta FROM predmet
106
WHERE nazpredmeta = "Matematika1"));

Napomena: Ako u bazi postoji vie (makar dva) predmeta sa istim nazivom
"Matematika1", a sa drugim iframa sifpredmeta onda ugraeni SELECT drugog nivoa
vraa vie vrednosti sifpredmeta i znak jednakosti u uslovu WHERE klauzule treba da se
zameni predikatom IN, tj. upit e imati sledei oblik:
SELECT imestu
FROM student
WHERE brindeksa IN (SELECT brindeksa FROM polozispit
WHERE sifpredmeta IN (SELECT sifpredmeta FROM predmet
WHERE nazpredmeta = "Matematika1"));

Primer: ANY predikat
Listajmo imena studenata koji imaju veu ocenu iz predmeta "Matematika1" nego neki,
bilo koji student roen 1980. godine.

SELECT imestu
FROM student
WHERE brindeksa IN (SELECT brindeksa FROM polozispit
WHERE sifpredmeta IN (SELECT sifpredmeta FROM predmet
WHERE nazpredmeta = "Matematika1") and
ocena>ANY (SELECT ocena FROM predmet
WHERE nazpredmeta = "Matematika1" and
brindeksa IN (SELECT brindeksa FROM student
WHERE godrodjstu=1980)));

Ugraeni SELECT navieg nivoa obezbeuje brojeve indeksa studenata roenih 1980.
godine. Ove brojeve indeksa koristi sledei nivo SELECT-a, da bi za njih selektovao sve ocene
iz predmeta "Matematika1". Sledei SELECT manjeg nivoa uporeuje ocenu iz predmeta
"Matematika1" za sve studente i bira brojeve indeksa onih studenata koji imaju veu ocenu od
bilo koje (ANY) ocene iz predmeta "Matematika1" dodeljenih studentima roenih 1980. godine.
Spoljanji SELECT slui samo da bi listali imena studenata.
Napomena: Uz ANY predikat je mogue koristiti logike operatore (relacije) =, < i >.
Kombinacija ANY= je ekvivalentna IN predikatu.
107

Primer: ALL predikat
Listajmo imena studenata koji imaju veu ocenu iz predmeta "Matematika1" od svakog
studenta koji je poloio pomenuti predmet, a roen 1980. godine.

SELECT imestu
FROM student
WHERE brindeksa IN (SELECT brindeksa FROM polozispit
WHERE sifpredmeta IN (SELECT sifpredmeta FROM predmet
WHERE nazpredmeta = "Matematika1") and
ocena>ALL (SELECT ocena FROM predmet
WHERE nazpredmeta = "Matematika1" and
brindeksa IN (SELECT brindeksa FROM student
WHERE godrodjstu=1980)));

Napomena: Ovaj upit se moe i drugaije reiti (bez ALL predikata), jer je uslov ocena
studenta iz predmeta "Matematika1" treba da bude vea od svake ocene je ekvivalentan uslovu
ocena studenta iz predmeta "Matematika1" treba da bude vea od najvee ocene iz predmeta
"Matematika1" za studente roene 1980. godine. SELECT koji reava problem na prethodno
opisan nain ima sledei oblik:

SELECT imestu
FROM student
WHERE brindeksa IN (SELECT brindeksa FROM polozispit
WHERE sifpredmeta IN (SELECT sifpredmeta FROM predmet
WHERE nazpredmeta = "Matematika1") and
ocena > (SELECT MAX(ocena) FROM predmet
WHERE nazpredmeta = "Matematika1" and
brindeksa IN (SELECT brindeksa FROM student
WHERE godrodjstu=1980)));

Primer: EXISTS predikat
Listajmo imena studenata koji su poloili predmet "Matematika1".

108
SELECT imestu
FROM student
WHERE EXISTS (SELECT * FROM polozispit
WHERE sifpredmeta IN (SELECT sifpredmeta FROM predmet
WHERE nazpredmeta = "Matematika1") and
polozispit.brindeksa=student.brindeksa);


8.3.8.2. Broj izvravanja ugraene SELECT reenice

Na poetku izlaganja u vezi unutranjih SELECT-a reeno je da se prvo izvrava
(vrednuje) unutranja, pa tek posle glavna SELECT reenica. Vrednovanje SELECT-a poinje,
znai, od najdublje ugraenog SELECT-a. Taj scenario izvravanja vai samo u sluaju kad se
unutranji SELECT izvrava samo jednom. Prema broju izvravanja ugraene SELECT reenice
razlikujemo dva sluaja:
1. unutranji SELECT se izvrava samo jednom (najei sluaj) i
2. ugraeni SELECT se izvrava toliko puta koliko spoljanji SELECT ima redova
(unutranji SELECT se izvrava jednom za svaki red spoljanjeg SELECT-a).
U vezi odvijanja algoritma izvravanja sloenog SELECT-a (sa ugraenom SELECT
reenicom) nema posebnih momenata za objanjavanje: prvo se izvrava unutranji SELECT, a
posle spoljanji SELECT uzimajui u obzir vrednost ili vrednosti koje je obezbedio unutranja
SELECT reenica.
Ugraeni SELECT se izvrava vie puta jedino u sluaju kad postoji predaja parametara
izmeu unutranjeg i spoljanjeg SELECT-a (kad se u unutranjem SELECT-u poziva
pojavljuje promenljiva spoljanjeg SELECT-a).

Primer: Unutranji SELECT se izvrava jednom za svaki red spoljanjeg SELECT-a.
Listajmo studente (brindeksa) koji su dobili najbolju ocenu iz pojedinih predmeta.

SELECT sifpredmeta, brindeksa
FROM polozispit pisp
WHERE ocena=(SELECT MAX(ocena) FROM polozispit piun
WHERE piun.sifpredmeta=pisp.sifpredmeta);

109
8.4. JEZIK ZA UPRAVLJANJE PODACIMA (DCL)

DCL obuhvata naredbe SQL-a koje se odnose na dodelu i oduzimanje (ogranienje) prava
za izvrenje pojedinih tipova operacija u relacionim bazama podataka. Bazu podataka koriste
razliiti ljudi i, naravno nee moi svi korisnici da obavljaju sve mogue aktivnosti (operacije)
vezane za njeno auriranje. Poto je baza podataka jedna u celoj firmi (organizaciji), meu tim
podacima se nalaze i strogo poverljivi kojima moe pristupiti samo mali broj izabranih korisnika.
Svi korisnici imaju svoje korisniko ime i lozinku za pristup podacima u bazi podataka, a svako
korisniko ime se pridruuje jednoj klasi sa tano definisanim pravima za izvrenje pojedinih
operacija. Kontrola prava pristupa se definie za svaki objekat u relacionoj bazi kao to je,
recimo, tabela.
Operacije se u cilju kontrole prava pristupa tabelama za klase korisnika dele na sledee
etiri grupe:
1. SELECT upit u tabelu,
2. INSERT dodavanje redova u tabelu,
3. DELETE brisanje redova iz tabele i
4. UPDATE modifikacija podataka u tabeli.
Na taj nain se za svaku tabelu (objekat) mogu definisati privilegije (operacije koje se
mogu izvriti sa njihove strane) pojedinim korisnicima. Naravno postoji vrsta korisnika sa
uroenim ili podrazumevanim najveim pravima pristupa, a to su, naravno, administratori
baze podataka.
Dodela privilegija se realizuje pomou naredbe GRANT koja ima sledeu sintaksu:

GRANT ALL PRIVILEGES | vrsta_privilegije
ON naziv_tabele
TO PUBLIC | korisnik [WITH GRANT OPTION];

Vrednost vrsta_privilegije je jedna od gore navedene etiri operacije: SELECT, INSERT,
DELETE i UPDATE. Na mestu korisnik-a treba da stoji korisniko ime (moe i vie) korisnika.
Ako je naznaena PUBLIC navedene opcije (ili sve ako u izrazu stoji ALL PRIVILEGES) se
odnose na sve korisnike. Ako je navedena WITH GRANT OPTION opcija, naznaeni korisnik
e imati pravo dodele privilegija.
110
Oduzimanje privilegije(a) se moe realizovati pomou REVOKE SQL naredbe (koja
omoguava oduzimanje svih privilegija odjednom ili jende ili nekoliko navedenih privilegija
oznaenom korisniku slino kao kod GRANT naredbe):

REVOKE ALL PRIVILEGES | vrsta_privilegije
ON naziv_tabele
FROM PUBLIC | korisnik;

Znaenje delova SQL naredbe vrsta_privilegije, naziv_tabele i korisnik su ve poznate na
osnovu prethodnih SQL naredbi.
111
9. ISPITNA PITANJA

1. ta je informatika (ime se bavi informatika)?
2. Interdisciplinarni karakter informatike po opirnoj definiciji.
3. Pojam informatike po saetoj definiciji.
4. Koje tri sutine treba da ima u vidu informatiar pri projektovanju informacionog
sistema?
5. Kako su povezani realni sistem, informacioni sistem i sistem sredstava?
6. ta ini sistem sredstava i kako su delovi sistema sredstava povezani?
7. ta je hardver?
8. ta je softver?
9. ta predstavlja lifeware?
10. ta obuhvata orgver?
11. ta je proces sticanja saznanja (koje aktivnosti obuhvata)?
12. ta je podatak, ta informacija, a ta je znanje?
13. Jezik kao sredina za prenos saznanja.
14. Od ega se sastoji potpuni iskaz izjava (potpuna reenica)?
15. Vanost prisustva etiri dimenzije saznanja.
16. injenini nain obrade saznanja (vrste, nazivi mogue obrade).
17. Tekstualni nain obrade saznanja (vrste, nazivi mogue obrade).
18. ta je banka podataka?
19. ta je informacioni sistem?
20. Kako je nastala koncepcija baze podataka i ta ona obuhvata?
21. ta je model podataka?
22. O kojim osobinama realnog sistema treba da sadr+i model podataka?
23. ta su statike osobine sistema?
24. ta su dinamike osobine sistema?
25. ta su ogranienja?
26. Koje su strukturalne komponente modela podataka?
27. Koji su primitivni akoji sloeni koncepti strukturalne komponente modela podataka?
28. Kakvi modeli se grade pomou koncepata i pravila za izgradnju?
29. Veze izmeu dva tipa entiteta i njihova dva nivoa apstrakcije.
30. Intenzija i ekstenzija strukturalne komponente podataka.
31. ta je integritetna komponenta modela podataka?
112
32. Koje vrste ogranienja postoje?
33. Kada je baza podataka konzistentna (neprotivrene)?
34. ta opisuje operacijska komponenta modela podataka?
35. Od ega se sastoji (gradi) operacija?
36. Kako se realizuje selekcija podataka?
37. Koje su mogue aktivnosti u okviru operacije
38. ta je navigacija?
39. ta karakterie proceduralne jezika?
40. ta je karakteristino za deklarativne jezike?
41. ta pokriva pojam apstrakcije?
42. Koje vrste apstrakcije se koriste za izradu modela podataka?
43. Koji su najpoznatiji modeli podataka?
44. Koji modeli podataka su bitni u procesu projektovanja baza podataka?
45. Kako se realizuje proces projektovanja i implementacije baza podataka?
46. ta je informacioni sistem?
47. Koje su tri projekcije informacionog sistema?
48. Koje su karakteristike projekcije podataka?
49. Opii projekciju obrade!
50. ta je logika nezavisnost podataka?
51. ta obuhvata projekcija okruenja?
52. ta je fizika nezavisnost podataka?
53. Apstrakcioni nivoi informacionog sistema.
54. ta obuhvataju pojedini apstrakcioni nivoi?
55. Koji problemi nastaju meanjem nivoa?
56. Koliko modela podataka treba izraditi pri projektovanju?
57. ta je pojmovni model (konceptualni plan) podataka?
58. ta je logiki model (plan) podataka?
59. ta je fiziki model (plan) podataka?
60. ta je model entiteta i poveznika (ER model podataka)?
61. Kako se predstavlja ER model podataka?
62. Koji su osnovni koncepti ER modela?
63. ta je entitet, klasa entiteta i tip entiteta?
64. Uloga apstrakcije i formulisanju klase entiteta i tipa entiteta.
65. ta je obeleje, vrednost obeleja i domen?
113
66. Relativnost pojmova entitet, obeleje i veza.
67. ta je identifikator (klju)?
68. Koja dva uslova treba da ispuni identifikator?
69. ta je superklju?
70. ta je kandidat za klju?
71. Koje vrste identifikacije postoje?
72. Kakva je nominalna identifikacija?
73. U emu je sutina deskriptivne identifikacije?
74. ta je vetaka identifikacija i kojoj vrsti identifikacije pripada?
75. Koje su tri projekcije saznanja?
76. Razlika izmeu intenzije klase entiteta i tipa entiteta.
77. ta je ekstenzija tipa entiteta?
78. ta je transverzija?
79. ta je poveznik i tip poveznika?
80. Kakve mogu biti povezanosti sa take gledita entiteta koji su u vezi?
81. ta je intenzija ER modela i kako se predstavlja?
82. Nivoi detaljnosti intenzije ER dijagrama.
83. Grafiki simboli ER dijagrama.
84. ta je ekstenzija ER modela i kako se predstavlja?
85. ta obuhvata integritetna komponenta ER modela?
86. ta je kardinalnost veze i kako se one dele po kardinalnosti?
87. Opti prikaz kardinaliteta tipa poveznika.
88. Preslikavanja u okviru tipa poveznika.
89. Parcijalna (opciona) i totalna (obavezna) veza.
90. Kardinalitet grupe M:N.
91. Kardinalitet grupe 1:N.
92. Kardinalitet grupe 1:1.
93. ta su rekurzivne veze?
94. ta je slabi tip entiteta?
95. ta je identifikaciono zavisan tip entiteta?
96. ta predstavlja integritet domena?
97. ta je nula (null) vrednost?
98. ta je operacijska komponenta ER modela?
99. Koje klase operacija sadri operacijska komponenta ER modela?
114
100. Koje su operacije auriranja baze podataka?
101. ta su strukturna pravila integriteta?
102. Koja su strukturna pravila integriteta?
103. Koja su proirenja ER modela?
104. ta je superklasa, a ta potklasa?
105. Specijalizacija i generalizacija kod izgradnje superklase-potklase.
106. Kardinalnost poveznika u IS_A hijerarhiji (superklasa-potklasa).
107. ta je kategorija?
108. ta je gerund?
109. Heuristika uputstva za izradu ER modela.
110. Relativnost predstavljanja realnog sveta konceptima ER modela.
111. Pojava, tvorac i ciljevi relacionog modela.
112. Jezik za manipulaciju podacima relacionog modela i osnove za njegov razvoj.
113. Koncepti relacionog modela na nivou intenzije i ekstenzije.
114. ta je relacija u matematikom smislu?
115. ta se smatra relacijom u relacionom modelu?
116. Kako se predstavljaju relacije?
117. ta je ema relacije?
118. ta je klju eme relacije?
119. ta je ema baze podataka?
120. Koja su ogranienja u relacionom modelu?
121. ta predstavljaju ogranienja domena?
122. Kakva ogranienja sainjavaju integritet entiteta?
123. ta je spoljni klju?
124. Pojam prostog, sloenog i hijerarhijskog kljua.
125. ta je funkcionalna zavisnost i kako se predstavlja?
126. ta je jaka, a ta slaba funkcionalna zavisnost?
127. ta je potpuna, a ta nepotpuna funkcionalna zavisnost?
128. Funkcionalna zavisnost kao vremenski promenljiva funkcija.
129. ta je tranzitivna zavisnost?
130. ta je zavisnost sadravanja?
131. ta je referencijalni integritet?
132. emu slui operacijska komponenta relacionog modela?
133. Vrste operatora relacione algebre za formulisanje upita.
115
134. ta su unja, presek i razlika?
135. Kako se definie dekartov proizvod?
136. ta je selekcija,a ta projekcija?
137. ta je theta spoj?
138. Kako se definie deljenje?
139. Kako se realizuje relacioni model podataka?
140. ta je normalizacija?
141. ta je svrha normalizacije?
142. Koje vrste anomalije su poznate?
143. Koje su poznate normalne forme?
144. Koji su metodi za realizaciju normalizacije?
145. ta je sutina dekompozicije (bez gubitaka), a ta sinteze?
146. ta je nenormalizovana forma eme relacije?
147. Kada je ema relacije u 1NF?
148. Kako se ema relacije u 0NF prevodi u emu relacije u 1NF?
149. Kada je ema relacije u 2NF?
150. Kako se ema relacije u 1NF prevodi u emu relacije u 2Nf?
151. Kada se ema relacije nalazi u 3NF?
152. Kako se ema relacije u 2NF prevodi u emu relacije u 3Nf?
153. Zato treba prevoditi ER model podataka u relacioni model?
154. Koji je model podataka semntiki bogatiji: ER model ili relacioni model?
155. Da li preslikavanje izmeu ER modela i relacionog modela moe biti tipa 1:1? Zato?
156. U ta se prevodi tip entiteta ER modela?
157. Koliko ima pravila prevoenja za tip entiteta ER modela?
158. U ta se prevodi gerund?
159. Kako se prevodi slabi tip entiteta?
160. Kako se prevodi identifikaciono zavisan tip entiteta?
161. Kako se prevodi IS_A hijerarhija?
162. Kako se prevodi kategorija?
163. Kako se predstavlja povezik u relacionom modelu?
164. Kako se prevode veze sa kardinalnou (1,1) : (1,1)?
165. Kako se prevode veze sa kardinalnou (0,1) : (1,1)?
166. Kako se prevode veze sa kardinalnou (0,1) : (0,1)?
167. Kako se prevode veze sa kardinalnou (1,1) : (0,N) i (1,1) : (1,N)?
116
168. Kako se predstavljaju veze sa kardinalnou (0,1) : (0,N) i (0,1) : (1,N)?
169. Kako se predstavljaju veze sa kardinalnou M:N?
170. ta je karakteristino pri prevoenju rekurzivnog tipa poveznika?
171. Zato postoje posebna pravila integriteta?
172. Kako se formuliu posebna pravila integriteta?
173. Kakva mogu biti posebna pravila integriteta?
174. ta definiu statika, a ta dinamika pravila integriteta?
175. Koliko ima posebnih pravila integriteta za entitete?
176. Na ta se konkretno odnose posebna pravila integriteta za entitete?
177. Koliko ima posebnih pravila integriteta za veze sa kardinalnou 1:1?
178. Koliko ima posebnih pravila integriteta za veze sa kardinalnou 1:N?
179. Koliko ima posebnih pravila integriteta za veze sa kardinalnou M:N?
180. Kako se razvijao SQL jezik?
181. Koji standardi jezika postoje?
182. Da li je SQL jezik za upravljanje bazama podataka?
183. Kako se klasifikuju naredbe SQL jezika (koji su podjezici)?
184. Kako se SQL moe primeniti za pisanje standardnih aplikacija?
185. ta je DDL?
186. Koje su naredbe DDL-a?
187. Kakva je sintaksa naredbe za generisanje tabele?
188. Kako se definie pogled?
189. Da li je pogled fizika tabela?
190. ta je DML?
191. Za ta slue DML naredbe?
192. ta je sintaksa unosa podataka (redova) u tabelu?
193. Kakva je sintaksa naredbe za modifikaciju podataka u tabeli?
194. U WHERE klauzuli, u uslovu koje operacije mogu da se primene?
195. Kako se koriste relacioni operatori BETWEEN, IN, LIKE i IS NULL?
196. ta je sintaksa naredbe za brisanje podataka?
197. ta realizuju naredbe COMMIT i ROLLBACK?
198. Za ta slui SELECT reenica?
199. ta je rezultat izvrenja SELECT reenice?
200. Da li se mogu povezati upiti (SELECT reenice) i ako jeste, kako?
201. Kako izgleda struktura kompletne SELECT reenice i ta oznaavaju pojedini delovi?
117
202. ta sadri minimalna struktura SELECT reenice?
203. Kojim redosledom se izvravaju klauzule SELECT reenice?
204. Kakva je forma SELECT klauzule SELECT reenice?
205. Koja ogranienja vae za elemente liste polja projekcije?
206. Koje su funkcije za agregiranje podataka?
207. Koja je sintaksa COUNT funkcije?
208. Koje su mogunosti SUM funkcije?
209. Kako se trai prosek pomou AVG funkcije?
210. Kako se koriste MIN i MAX funkcije?
211. Za ta slui FROM klauzula i kakva joj je sintaksa?
212. ta je specifino u FROM klauzuli u sluaju rekurzivnih veza?
213. emu slui WHERE klauzula?
214. Kako se koristi GROUP BY klauzula (ta je forma)?
215. Koja ogranienja vae za GROUP BY klauzulu?
216. Za ta slui HAVING klauzula?
217. Kako se ureuju redovi R-tabele (koja je sintaksa naredbe)?
218. Koja su ogranienja ORDER BY klauzule?
219. Za ta slui SAVE TO TEMP klauzula (i ta je njen format)?
220. Koja su ogranienja prisutna kod SAVE TO TEMP klauzule?
221. ta su ugraeni SELECT-i?
222. Koja ogranienja vae za unutranje SELECT reenice?
223. Kakav je redosled izvravanja ugnedenih SELECT reenica?
224. Na osnovu kojih kriterijuma se klasifikuju ugraeni SELECT-i?
225. Kakvi mogu biti unutranji SELECT-i sa take gledita broja vrednosti u R-tabeli?
226. Koji logiki operatori za uporeivanje stoje u uslovuu ako unutranji upit vraa samo
jednu vrednost?
227. Koji logiki operatori za uporeivanje stoje u uslovuu ako unutranji upit vraa vie
vrednosti?
228. Kako se koriste IN, ANY, ALL i EXISTS predikati?
229. Koliko puta moe biti izvren unutranji SELECT?
230. Zato se moe izvriti unutranji SELECT i vie puta?
231. ta je DCL?
232. Kod kontrole prava pristupa tabelama kako se grupiu operacije?
233. Na kom nivou se moe odrediti kontrola prava pristupa korisniku?
118
234. Kako se vri dodela privilegije korisniku?
235. Format SQL naredbe za oduzimanje dodeljene privilegije.
119
10. LITERATURA


1. Bana I.: Az SSADM rendszerszervezsi mdszertan, LSI, Budapest, 1994.
2. Bennatan E.M.: SoftverProject Management: A Practitioners Approach, Second Edition,
McGRAW-HILL Book Company Europe, 1995.
3. arapi M., Pendi Z., Furht B., Veselinovi D.: Osnovi projektovanja informacionih
sistema zasnovanih na primeni raunara, Tehnika knjiga, Beograd, 1974.
4. Date C.J.: "An Introduction to Database Systems", Vol. 1, Third Edition, Addison-Wesley
Publ. Co., Reading, MA, 1981.
5. urkovi J., Tumbas P.: Analiza i projektovanje informacionih sistema CASE STUDY, EF
Subotica ALEF Novi Sad, 1997.
6. Grg M.: ltalnos projektmenedzsment, Aula Kiad, Budapest, 1996.
7. Halassy B.: Az adatbzis-tervezs alapjai s titkai, IDG, Budapest, 1994.
8. Halassy B.: Az informcis rendszerek alapfogalmai, SZMALK, Budapest, 1982.
9. Halassy B.: Adatbzisok kezelsnek alapvet krdsei, SZMALK, Budapest, 1982.
10. Halassy B.: Ember Informci Rendszer, IDG, Budapest, 1996.
11. Halassy B.: Adatmodellezs, Nemzeti Tanaknyvkiad, Budapest, 2002.
12. Kuzmanov S., Mogin P., Petkovi I., Popovi M.: "Automatizacija projektovanja eme baze
podataka", JAHORINA '88.
13. Lazarevi B., Jovanovi V., Vukovi M..:"Projektovanje informacionih sistema" I deo,
Nauna knjiga, Beograd, 1986.
14. Lazarevi B.: "Proireni model objekti-veze" interni materijal, Laboratorija za informacione
sisteme FON-a, Beograd, april 1990.
15. Lazarevi B.: Baze podataka, Radni materijal za interne kurseve, Beograd, 1989.
16. Lerner A.J.: Principi kibernetike, Tehnika knjiga, Beograd, 1970.
17. Marjanovi Z.: ORACLE relacioni sistem za upravljanje bazom podataka, Breza, Beograd,
1990.
18. Mogin P., Lukovi I., Govedarica M.: Principi projektovanja baza podataka, FTN-STYLOS,
Novi Sad, 2000.
19. Mogin P., Lukovi I.: Principi baza podataka, FTN-STYLOS, Novi Sad, 1996.
20. Purba S., Sawh D., Shah B.: How to Manage a Succesfull Software Project, John Wiley &
Sons, 1995.
21. Strukturirana sistemska analiza, IskraDelta, Ljubljana, 1984.
22. uc L.: Projektovanje baza podataka, Izobraevalni center DELTA, Ljubljana, 1985.
23. Szelezsn J.: Adatbzisok, LSI, Budapest, 1996.
24. Ullman J.D.: "Principles of Database Systems", Computer Science Press, 1980.
25. Ullmann J.D., Widom J.: A First Course in Database Systems, Prentice Hall Inc., 1997.
(prevod na maarski jezik, PANEM, Budapest, 1997.).
26. Veljovi A.: Modeliranje podataka Erwin (materijal za kurs), CIT, Beograd, 1998.
27. Veljovi A.: Modeliranje procesa Bpwin (materijal za kurs), CIT, Beograd, 1998.
28. Mihajlovi D.: Informacioni sistemi i projektovanje baza podataka, FTN, Novi Sad, 1998.
29. Roger S. Pressman: Software Engineering A practitioner's Approach, The McGraw-Hill
Companies, Inc., New York, 1997.
30. Ian Sommerville: Software Engineering, Addison-Wesley, Harlow, England, 1997.
31. B. Joanov, P.Tumbas: Softverski inenjering, Via poslovna kola, Novi Sad, 2002.
32. Eric J. Naiburg, Robert A. Maksimchuk: UML za projektovanje baza podataka, Addison-
Wesley (2001)-CET(2002), Beograd.
33. Chris Todman: Projektovanje skladita podataka (Designing a Data Warehouse), Prentice
Hall PTR (2001)- CET (2001), Beograd.
120
34. A. Silberschatz, H. F. Korth, S. Sudarshan: Instrucror's Manual to Accompany Database
System Concepts, Mcgraw-Hill Companies, Inc., Boston, 1997.
35. A. Silberschatz, H. F. Korth, S. Sudarshan: Database System Concepts, Mcgraw-Hill
Companies, Inc., Boston, 1997.

You might also like