You are on page 1of 13

Model objekti-veze 1

Dijagram OBJEKTI-VEZE
Model objekti – veze se koristi za predstavljanje objekata koji postoje u nekom realnom sistemu i
veza koje postoje između tih objekata. Kasnije se prevodi u relacioni model na osnovu određenih pravila
prevođenja. Na osnovu relacionog modela se implementira baza podataka pomoću nekog DBMS-a.
Mi ćemo u stvari koristiti prošireni model objekti-veze (PPMOV, ili EER model, kao skraćenica od
Extended Entity-Relation Ship Model, a može i od Enchanced Entity-Relation Ship Model). Kasnije će biti
reči u čemu je razlika između ova dva modela.
MOV sadrži tri osnovne komponente:
 Strukturu modela
Struktura modela sadrži koncepte pomoću kojih se opisuju objekti, njihovi atributi i veze
između objekata. Predstavlja se dijagramom objekti – veze.
 Ograničenja
Ograničenja mogu biti strukturna i vrednosna.
Strukturna ograničenja definisana su samom strukturom modela (i u vezi su sa
kardinalnostima koje se pojavljuju na dijagramu).
Vrednosna ograničenja možemo podeliti na ograničenja na domene i ograničenja na
međuzavisnosti atributa (tiču se uzajamnih veza objekata i njihovih atributa).
Primer ograničenja na domene je recimo ograničenje na domen atributa Ocena:
Ocena: INTEGER(2) BETWEEN 1 AND 5
Ograničenja na međuzavisnosti atributa je nemoguće ili nepraktično prikazati strukturom
PMOV-a, pa je neophodno definisati jezik za njihovu specifikaciju. Za iskazivanje
medjuzavisnosti atributa koriste se formule "objektnog računa", predikatskog računa prvog
reda u kome su promenljive objekti u sistemu. Evo kako bismo mogli napisati ograničenje da
student trećeg semestra mora imati više od 10 položenih ispita
OGR2(STUDENT,POLOŽIO) : = FOREACH STUDENT (IF STUDENT.SEM >= 5
THEN CARD (STUDENT.POLOŽIO)>10);
gde funkcija CARD(S) daje broj elemenata skupa S.
Ili ograničenje da je student trećeg semestra morao položiti matematiku
OGR3(STUDENT,POLOŽIO,PREDMET) : =
FOREACH STUDENT
(IF STUDENT.SEM = 3
THEN EXISTS STUDENT. POLOŽIO (STUDENT.POLOŽIO.PREDMET.NAZP ='MATEM'));
U nekim PMOV-imamo
 Dinamička pravila integriteta
Dinamičkim pravilima integriteta se opisuju akcije koje se preduzimaju pri izvršavanju
operacija održavanja baze podataka - INSERT, UPDATE, DELETE. Akcije koje se mogu preduzeti
su RESTRICT (odnosno NO ACTION), CASCADE, SET NULL, SET DEFAULT1.
U dijagramima objekti-veze koncepti modela objekti-veze predstavljeni su odgovarajućim
simbolima, kao npr.:

1
akcije mogu biti drugih naziva, ali sa istim dejstvom
Model objekti-veze 2

Pretpostavimo da imamo sledeći opis sistema biblioteke. U biblioteci se pamte podaci o autorima:
(obeležja su šifra autora i ime i prezime autora) i naslovima (obeležja su šifra naslova i naziv). Jedan
autor mogao je da napiše više naslova ili da ne napiše nijedan. Za neki naslov može da se ne zna autor, a
može biti i da je neki naslov napisalo više njih. Ako je autor napisao neki naslov, tada se pamti koji je
autor po redu (pošto ima naslova koje je napisalo više autora zajedno). Knjiga ima samo jedno obeležje,
šifru knjige. Knjiga može da ima tačno jedan naslov, dok jedan naslov može da bude na više knjiga.
Naslov pripada jednoj ili više oblasti, dok jednoj oblasti može da pripada više naslova ili da ne pripada
nijedan. Obeležja oblasti su šifra oblasti i naziv oblasti. Za članove se pamti šifra člana i ime i prezime
člana. Posebno se vodi evidencija o knjigama koje trenutno drže članovi (tada se pamti datum i vreme
iznajmljivanja knjiga2), a posebno o knjigama koje su pozajmljene, pa vraćene. Jedna knjiga može
trenutno biti kod jednog člana ili nije ni kod jednog. Jedan član može trenutno držati više knjiga ili da ne
drži nijednu. Svaka zapamćena pozajmica odnosi se na tačno jednu knjigu i tačno jednog člana i za svaku
pozajmicu se pamti datum i vreme uzimanja knjige i koliko dana je član imao knjigu kod sebe. Čuvaju se i
podaci o rezervacijama. Svaka evidentirana rezervacija odnosi se uvek na jednog člana i jedan naslov i za
svaku rezervaciju pamti se datum i vreme rezervacije.
Pokušajmo kroz ovaj opis sistema biblioteke da uvedemo osnovne koncepte dijagrama objekti-veze.
Pojedinačni objekati u realnog sistema imaju neka svojstva (ili atribute) koja ih opisuju. Za one
objekte koji imaju ista svojstva uvodi se u modelu objekti-veze odgovarajući tip objekta. Tip objekta je
opšti predstavnik neke klase, a svaki pojedinačni objekat predstavlja jedno pojavljivanje (primerak,
instancu) datog tipa. Klasa objekata je skup pojavljivanja objekata datog tipa. Na primer, tip objekta je
Radnik, pojavljivanja toga tipa su Jovan Jovanović, Petar Petrović i drugi, a klasa objekata je RADNIK i
predstavlja skup pojavljivanja tipa objekta Radnik (nazive klasa objekata pisaćemo velikim, a nazive
tipova objekata malim slovima). Kandidat za ključ nekog tipa objekta je atribut, ili skup atributa, koji su
jedinstveni za svako pojavljivanje tog tipa objekta. Tip objekta može da ima više kandidata za ključ. U
tom slučaju, jedan od njih se proglašava za primarni.
Nezavisna klasa objekata
Prvi koncept koji ćemo uočiti je nezavisna klasa objekata. Nezavisna klasa objekata je klasa čija
pojavljivanja su nezavisna od pojavljivanja drugih klasa objekata u sistemu, odnosno postojanje objekata
u toj klasi nije uslovljeno postojanjem objekata iz neke druge klase. Prikazuje se kao pravougaonik.
Atributi neke klase prikazuju se u obliku elipsi. Atribute koji čine ključ označavamo tako što ih
podvučemo punom linijom.
U sistemu biblioteke imamo sledeće nezavisne klase objekata:

2
Smatrati da postoji tip podataka koji u sebi sadrži i datum i vreme, tj. nećemo posebno čuvati datum, posebno vreme
Model objekti-veze 3

Zavisna klasa objekata


Da bismo neku klasu objekata proglasili zavisnom od neke druge klase, potrebno je da je postojanje
objekata zavisne klase uslovljeno postojanjem objekata klase od koje zavisi. Kao drugo potrebno je da
svaka instanca zavisne klase zavisi od istog broja instanci druge klase objekata. Iz ove definicije
zaključujemo da modelom objekti-veze ne može da se predstavi zavisnost od promenljivog broja
instanci. S obzirom da u jednoj biblioteci može biti više primeraka jednog naslova, uvešćemo i klasu
KNJIGA. Kako knjige ne može biti bez naslova i svaka knjiga ima tačno jedan naslov, ispunjena su oba
uslova da klasu KNJIGA proglasimo zavisnom.
Zavisna klasa se predstavlja pravougaonikom iscrtanim dvostrukom linijom i spaja se isprekidanom
linijom koja ima strelicu na kraju sa strane zavisne klase sa pravougaonicima svih klasa od kojih postoji
zavisnost, pri čemu linija na kraju premazavisnoj klasi ima. Može zavisiti i od neke druge zavisne klase
objekata.Takođe može biti zavisna od više klasa, a ne samo od
jedne. Zavisna klasa nasleđuje ključne atribute klasa od kojih
zavisi, tako da smatramo da klasa KNJIGA pored sopstvenog
atributa ŠifKnj ima i nasleđeni atribut ŠifNasl. Kako je šifra knjige
jedinstvena za svaku knjigu, atribut ŠifKnj proglašavamo za ključ i
podvlačimo ga punom linijom (kada ključ zavisne klase čine
samo sopstveni atributi, jedan ili više njih, onda se oni podvlače punom linijom, kao kod nezavisnih
klasa).
Takođe, vodićemo i evidenciju o knjigama koje su pozajmljene, pa vraćene. Pošto svaka pozajmica
podrazumeva da je jedan član pozajmio jednu knjigu, uvodimo zavisnu klasu POZAJMICA sa sopstvenim
atributima DatumVremePoz (čuva datum i vreme pozajmljivanja knjige) i BrojDana (sadrži koliko dana je
član držao knjigu). Ova klasa je
zavisna od dve druge klase, ČLAN i
KNJIGA. Ako jedan član pozajmi više
knjiga, posebno ćemo evidentirati
pozajmicu svake knjige. Klasa
POZAJMICA poseduje sopstvene
atributePozajmljena i BrojDana, od
klase ČLAN nasleđuje atribut ŠifČl, a
od klase KNJIGA nasleđuje atribut
ŠifKnj. Među ova četiri atributa ključ
klase POZAJMICA čine atributi ŠifKnj+DatumVremePoz (na dijagramu atribut DatumVremePoz
podvlačimo isprekidanom linijom jer kada se ključ zavisne klase sastoji od nasleđenih atributa, i
eventualno nekih sopstvenih atributa, tada se sopstveni atributi iz ključa podvlače isprekidanom linijom).
Dalje, jedan čitalac može nekog datuma doći u biblioteku i rezervisati jedan naslov. Uvodimo na
dijagram zavisnu klasu objekata REZERVACIJA, koja je zavisna od klasa objekata ČLAN i NASLOV i odnjih
preuzima atribute ŠifNasl i ŠifČl, uz sopstveni atribut DatumVreme. Pretpostavićemo da se može desiti
da dva naslova budu rezervisana u isto vreme, ali za različite čitaoce (ako pretpostavimo da na unosu
mogu nezavisno raditi dve bibliotekarke). Ključ klase REZERVACIJA čine atributi ŠifČl+DatumVremeRez
(sopstveni atribut DatumVremeRez podvlačimo isprekidanom linijom).
Model objekti-veze 4

Zavisnost klase može biti dvojaka:


 Egzistencijalna
Zavisna klasa je egzistencijalno zavisna od neke druge klase ako atribut/atributi koje dobija
od te klase ne ulaze u primarni ključ zavisne klase. Na dijagramu objekti-veze se egzistencijalne
zavisnosti obeležavaju sa E.
 Identifikaciona
Zavisna klasa je identifikaciono zavisna od neke druge klase ako atribut/atributi koje dobija
od te klase ulaze u primarni ključ zavisne klase. Na dijagramu objekti-veze se egzistencijalne
zavisnosti obeležavaju sa I.
Neretko su situacije gde se želi izbeći identifikaciona zavisnost. Tada se za zavisnu klasu
uvodi novo svojstvo u vidu nekakvog rednog broja (tj. brojača nastanka) instanci zavisne klase.
Na dijagramu pored linije kojom predstavljamo zavisnost naznačimo o kakvoj zavisnosti se radi: E za
egzistencijalnu i I za identifikacionu:

Kod zavisnosti između klasa definišemo i dve vrste kardinalnosti:


 Kardinalnost uslovljavanja
Predstavlja se kao uređeni par (m,n) koji se piše pored klase od koje potiče zavisnost. Svaka
instanca te klase uslovljava najmanje m, a najviše n instanci zavisne klase.
 Kardinalnost uslovljenosti
Zapisuje se kao broj (m) uz zavisnu klasu i znači da je svaka instanca te klase zavisi od tačno
m instanci klase od koje je zavisna.Uobičajeno je da se egzistencijalna zavisnost i kardinalnost
uslovljenosti (1) posebno ne naznačavaju.
Kao brojnosti kod označavanja kardinalnosti mogu se navesti 0, 1 i N (označava više).
Ako na dijagram dodamo brojeve kardinalnosti, dobijamo:
Model objekti-veze 5

Na osnovu prethodnog, na prvi pogled moglo bi se reći da je klasa NASLOV zavisna od klase AUTOR,
jer svaki naslov je morao napisati neki autor. Međutim, klasu NASLOV ne možemo proglasiti za zavisnu
od klase objekata AUTOR pošto mogu postojati naslovi sa jednim, sa dva, sa tri autora… a to nije u
skladu sa definicijom zavisne klase gde se traži zavisnost od konstantnog broja instanci.
Kardinalnosti uslovljenosti i uslovljavanja mogu da imaju i neke druge vrednosti od ovih u
prethodnim primerima.
Primer 1: Recimo da imamo sistem železnice u kojem postoje stanice (svojstva šifra stanice i naziv
stanice), i da imamo relacije koje povezuju tačno dve stanice, pri čemu se za svaku relaciju pamti dužina.
Svaka stanica uključena je u jednu ili više relacija. Odgovarajući dijagram bi bio:

Kardinalnost sa strane zavisne klase nam ukazuje koliko puta zavisna klasa nasleđuje ključne
atribute od klase od koje zavisi. U ovom slučaju, klasa Relacija pored sopstvenog atributa Dužina
nasleđuje dva puta atribut ŠifSt (zbog kardinalnosti (2) na dijagramu), te su njeni atributi {Dužina, ŠifSt,
ŠifSt}. Kako atributi jedne klase ne smeju imati iste nazive, preimenovaćemo ih u recimo {Dužina,
ŠifPočetneSt, ŠifKrajnjeSt}. Ključ će činiti atributi ŠifPočetneSt+ŠifKrajnjeSt (smatraćemo da NS1-ŠA1 i
ŠA1-NS1 prtedstavljaju dve različite relacije), pa se radi o identifikacionoj zavisnosti.
Primer 2: Za test znamo šifru i naziv. Svaki test odnosi se na tačno jednu oblast. Obeležja za oblasti
su šifra oblasti i naziv oblasti. Iz jedne oblasti može biti više testova, a može da ne bude nijedan.

Primer 3: Obeležja radnika su šifra radnika, prezime radnika, ime radnika i šifra zanimanja. Za svakog
radnika evidentira se isplata i tom prilikom se pamti datum isplate i iznos isplate. Jedna isplata odnosi se
uvek na jednog radnika, dok jedan radnik može imati više isplata, a moguće da nije imao nijednu.

Primer 4: Obeležja vozača su ID vozača (jedinstven za svakog vozača), prezime, ime i broj lične karte.
Vozači formiraju tiPMOVe. Svaki tim ima jedinstvenu oznaku i uvek ga čine tačno tri vozača. Jedan vozač
može biti član jednog ili više tiPMOVa.
Model objekti-veze 6

Primer 5: Vodi se evidencija o pregledima. Svaki pregled odnosi se na jednog pacijenta (obeležja:
BrZK, ime i prezime) i jednog lekara (obeležja: ID, ime i prezime) i za svaki pregled se pamti datum i
vreme pregleda. Jedan pacijent može u jednom danu da zakaže pregled kod više lekara. Pacijent može
zakazati više puta pregled kod istog lekara, ali samo u različitim danima. Jedan lekar može imati
zakazane preglede za više pacijenata u jednom danu. Recept ima atribut oznaka recepta koji je
jedinstven za svaki recept. Prilikom pregleda može biti izdato više recepata, ali može da ne bude izdat
nijedan. Svaki recept nastao je prilikom jednog pregleda.

Primer 6: Obeležja tima su šifra tima i naziv tima. Obeležja projekta su oznaka projekta (jedinstve za
svaki projekat) i naziv projekta. Svaki tim radi na jednom ili više projekata. Na jednom projektu radi
samo jedan tim. Obeležja softverskog proizvoda su oznaka softvera (jedinstvena za svaki softver) i naziv
softvera. Svaki softverski proizvod je nastao kao rezultat rada na jednom projektu. Projekat može, a ne
mora da dovede do stvaranja softvera.

Klasa veza
Klasa veza je svaka klasa čija instanca predstavlja odnos instanci (najmanje dve) iz jedne ili više klasa
objekata, pri čemu taj odnos može imati i određena svojstva.
Recimo, između klase AUTOR i klase NASLOV možemo uspostaviti klasu veze JE_AUTOR. Klasa veze
može imati i sopstvena obeležja. Klasi veza JE_AUTOR možemo pridružiti obeležje Koji, koje ukazuje kao
koji po redu je naveden autor koji je napisao neki naslov. Klasa veze se obeležava rombom, koji se
povezuje sa svakom od klasa koja učestvuje u vezi:

Postoje i kardinalni brojevi veze. Zapisuju u obliku uređenog para (m,n). Pretpostavimo da su klase
objekata A i B u vezi. Tada u uređenom paru (m,n) na strani klase A m predstavlja minimalan, a n
maksimalan broj instanci klase B sa kojom jedna instance klase A može biti u vezi. Slično, u uređenom
paru (m,n) na strani klase B m predstavlja minimalan, a n maksimalan broj instanci klase A sa kojom
jedna instance klase B može biti u vezi. Još jednom, kao brojnosti mogu se navesti 0, 1 i N (tj. više).
Model objekti-veze 7

U našem primeru, jedan autor mogao je da napiše više naslova (maksimalna kardinalnost je više - N)
ili da ne napiše nijedan (minimalna kardinalnost je 0). Zato je sa strane klase AUTOR kardinalnost (0,N).
Dalje piše da je jedan naslov mogao napisati samo jedan autor ili više njih. Otuda pored klase NASLOV na
liniji veze pišemo kardinalnost (1,N). Klasi veze JE_AUTOR dodajemo sopstveni atribut Koji.

Ponekad možemo da biramo da li ćemo odnos imeđu dve klase predstaviti preko veze ili preko
zavisne klase. Tako odnos između klasa NASLOV i OBLAST može da se predstavi kao veza:

a mogli smo i da klasu NASLOV proglasimo zavisnom od klase OBLAST:

Uopšte, kada imamo dve klase povezane vezom koja sa neke strane ima kardinalnost (1,1), odnos
tih klasa možemo predstaviti bez koncepta veze tako što ćemo klasu koja u vezi ima kardinalnost (1,1)
proglasiti zavisnom od klase sa druge strane veze. Ono što može da nas opredeli da li ćemo neki odnos
prikazati preko zavisne klase ili preko klase veza je da li taj odnos ostaje trajan (prikazati ga preko zavisne
klase) ili može prestati u nekom trenutku (prikazati ga preko veze).
Vezom možemo predstaviti i odnos između klasa KNJIGA i ČLAN:

I kada sve delove dijagrama objedinimo, dobijemo ER dijagram modela biblioteke:

ER dijagram se često može nacrtati na različite načine (videli smo na primeru klasa NASLOV i
OBLAST), pogotovo kada se radi o složenijim modelima.
Takođe treba znati da kada odnos između dve klase objekata predstavimo kao klasu veza koja i sa
jedne i sa druge strane ima kardinalnosti iz skupa skupa {(0,N), (1,N)}, klasa veza sa obe strane nasleđuje
ključ. Pravilo je da tada nasleđeni ključevi čine ključ klase veze. Nije dozvoljeno da neki od sopstvenih
Model objekti-veze 8

tributa klase veze (ako ih ima) uđe u sastav ključa. Ako je neophodno da se i neki sopstveni tribut nalazi
u ključu klase veze, onda umesto preko klase veze odnos između klasa treba predstaviti preko koncepta
zavisne klase. Setimo se prethodnog primera sa zakazivanjem pregleda, ali mu malo promenimo tekst.
Primer 7: Vodi se evidencija o pregledima. Svaki pregled odnosi se na jednog pacijenta (obeležja:
BrZK, ime i prezime) i jednog lekara (obeležja: ID, ime i prezime) i za svaki pregled se pamti datum (samo
datum, ne i vreme) pregleda. Jedan pacijent može u jednom danu zakazati pregled kod više lekara.
Pacijent može zakazati više puta pregled kod istog lekara, ali samo u različitim danima. Jedan lekar može
imati zakazane preglede za više pacijenata u jednom danu.
Pretpostavimo da ovo rešimo preko klase veze sa kardinalnostima (0,N) sa obe strane. Na osnovu
prethodnog klasa veze ZAKAZANO pored sopstvenog atributa Datum ima i nasleđene tribute ID i BrZK.
Ključ čine sva tri atributa, ID+BrZK+Datum:

Ali kao što je rečeno, ovakvo rešenje nije moguće! Potrebno je uvesti zavisnu klasu:

Klasa može stupiti u vezu sa samom sobom.


Recimo da su nastavnici predstavljeni nezavisnom klasom Nastavnik(OznNast, Ime, JMBG). Neki
nastavnici su početnici i prvih godinu dana imaju jednog mentora koji se bira među iskusnijim
nastavnicima. Jedan nastavnik može biti mentor za više nastavnika-početnika, a moguće da nije ni za
jednog.
Na dijagramu nastavnike predstavljamo kao nezavisnu klasu i uvodimo klasu veza Mentorstvo koja
spaja klasu Nastavnik sa samom sobom. Kako su kardinalnosti u vezi (1,1) za pripravnike i (0,N) za
mentore, potrebno je na dijagramu imenovati strane veze:

Moguće je da između dve klase bude više veza.


Neka su radnici predstavljeni nezavisnom klasom Radnik(ŠifRadn, Ime, JMBG), a odeljenja
nezavisnom klasom Odeljenje(ŠifOdelj, Naziv). Jedan radnik radi u jednom odeljenju. U jednom
odeljenju radi bar jedan radnik. Za svako odeljenje postoji jedan radnik koji rukovodi tim odeljenjem.
Jedan radnik može biti rukovodeći samo za jedno odeljenje, amože biti da nije ni za jedno.

U modelu objekti-veze postoje još neki koncepti koji nam nisu trebali da predstavimo biblioteku.
Model objekti-veze 9

Specijalizacija i generalizacija
Za neku klasu objekata kažemo da predstavlja specijalizaciju ako predstavlja specijalan slučaj neke
druge klase objekata bar po jednom od dva kriterijuma:
 pored zajedničkih svojstava, ima i neka specifična svojstva
 ima specifične odnose sa drugim klasama objekata
Odnosno, ako među objektima neke klase (tzv. nadklase) možemo uočiti neke podskupove (tzv.
podklase) gde svaki podskup ima neka specifična obeležja, takav odnos predstavljamo kao
specijalizaciju. Podklasa se uvek predstavlja grafički kao nezavisna klasa, bez obzira da li je nadklasa
nezavisna ili zavisna klasa. Specijalizacija se predstavlja trouglom spojenim sa nadklasom i podklasama.
Pretpostavimo da pamtimo podatke o vozilima (šifra vozila i registarski broj vozila). Svako vozilo je ili
automobil i tada treba pamtiti i broj mesta, ili kamion itada teba pamtiti broj osovina i nosivost. U ovom
slučaju imamo nadklasu VOZILA sa podklasama AUTOMOBILI i KAMIONI:

Na dijagramu je navedena i kardinalnost specijalizacije. Kardinalnost specijalizacije zapisuje se u


obliku uređenog para (m,n) i ima sledeće značenje: svaka instanca nadklase specijalizuje se u najmanje
m i najviše n podklasa. U ovom slučaju, to se može protumačiti da svako vozilo može pripadati najmanje
jednoj i najviše jednoj od podklasa AUTOMOBILI i KAMIONI. Kardinalnost sa strane podklasa je uvek (1) i
iz tog razloga se obično i nenavodi na dijagramima.
Naravno, mogući su i neki drugi kardinalni brojevi.
Posmatrajmo radnike u nekom preduzeću sa svojstvima šifre i imena (klasa RADNICI). Kao posebni
slučajevi mogu se pojaviti radnici sa svojstvom vozačka kategorija (klasa VOZAČI) i radnici sa svojstvom
brzina kucanja (klasa DAKTILOGRAFI). Kako je moguće da postoje radnici koji ne umeju ni da voze ni da
kucaju, radnici koji umeju samo da voze, radnici koji umeju samo da kucaju i radnici koji umeju i da
kucaju i da voze, kardinalnost specijalizacije je (0,2):

Ili slučaj kada imamo studente sa svojstvima broj indeksa i ime studenta, pri čemu su neki studenti
strani državljani i imaju dodatno svojstvo naziv države iz koje dolaze:

Generalizacija je postupak obrnut u odnosu na specijalizaciju i daje isti rezultat na kraju, odnosno
istu nadklasu i iste podklase kao i specijalizacija.
Model objekti-veze 10

Agregacija
Agregacija je klasa veze koja se ponaša kao klasa objekata tako što i sama kao klasa učestvuje u
nekoj vezi. Predstavlja se simbolom veze (rombom) unutar simbola nezavisne klase (pravougaonikom).
Recimo da na fakultetu imamo neke nastavnike koji predaju neke predmete. Pri tome jedan
nastavnik može da ne predaje nijedan predmet, a može da predaje više predmeta; jedan predmet može
da ne predaje nijedan nastavnik, a može da ga predaje više nastavnika. Ovaj odnos između klasa
NASTAVNIK i PREDMET možemo predstaviti klasom veze sa kardinalnošću (0,n) sa obe strane klase veze.
Dalje, imamo studente koji pohađaju predavanja, ali samo iz onih predmeta koje predaje neki nastavnik.
Bilo bi pogrešno spojiti klasom veze klase STUDENT i PREDMET, jer bi to značilo da možemo spojiti nekog
studenta sa predmetom koji niko ne predaje. Takođe, ako bismo nekog studenta spojili sa predmetom
koji predaje više nastavnika, ne bismo imali informaciju kod kojeg nastavnika student sluša predmet sa
kojim je spojen. Zato vezu između klase NASTAVNIK i klase PREDMET tretiramo kao agregaciju, a zatim
između te agregacije i klase STUDENT uspostavimo klasu veze POHAĐA. Ovim smo postigli da student
može pohađati samo predmet koji predaje neki nastavnik.

Zadaci:
1. Na osnovu sledećeg opisa nacrtaj ER dijagram i prevedi ga u ER model. Autobus ima jedinstveno
obeležje registracija. Autobus može biti ili običan (ima dodatno obeležje broj sedišta) ili na sprat
(dodatna obeležja su broj sedišta dole i broj sedišta gore). Obeležja stanice su redni broj stanice
(jedinstven za svaku stanicu), naziv
stanice i lokacija stanice. Za liniju
pamtimo oznaku linije (jedinstvena za
svaku liniju). Svala linija povezuje
tačno dve stanice (početnu i krajnju).
Jedna stanica može biti početna ili
krajnja stanica za više linija, a može da
ne bude ni za jednu. Obeležja vozača
su ID vozača (jedinstven za svakog
vozača), prezime, ime i broj lične karte.
Vozači formiraju timove. Svaki tim ima
jedinstvenu oznaku i uvek ga čine
tačno tri vozača. Jedan vozač može biti
član jednog ili više tiPMOVa. Za svaku liniju zadužen je jedan ili više timova. Jedan tim može biti zadužen
za jednu ili više linija. Svaki tim zadužen za neku liniju koristi jedan od autobusa. Jedan autobus se može
koristiti na više linija, a može i da se ne koristi ni na jednoj.
2. Na osnovu sledećeg opisa nacrtaj ER dijagram. Obeležja radnika su MLB (jedinstven za svakog
radika), ime radnika, prezime radnika, zanimanje i starost. Svaki radnik radi u jednom odeljenju. Jedno
odeljenje zapošljava najmanje jednog radnika. Obeležja odeljenja su šifra odeljenja (jedinstvena za svako
odeljenje) i naziv odeljenja. Svakim odeljenjem rukovodi jedan radnik. Jedan radnik može da rukovodi
najviše jednim odeljenjem. U svakom odeljenju proizvode se neki proizvodi, najmanje jedan, a može i
Model objekti-veze 11

više. Neki proizvod može da se proizvodi u više odeljenja, a ne mora ni u jednom. Za proizvode se pamti
šifra (jedinstvena za svaki proizvod), naziv i vrsta. Proizvod može biti ili materijal (ima dodatno obeležje
poreklo) ili mašina (dodatno obeležje amortizacija). Neki proizvodi mogu biti ugrađeni u neke druge
proizvode i tada se pamti koja količina proizvoda je ugrađena. Jedan proizvod može biti deo više
proizvoda, ili nije deo nijednog. S druge strane, jedan proizvod može biti da nije sastavljen ni iz jednog
proizvoda, ili je sastavljen od više njih. Za svakog radnika se evidentiraju isplate. Za svaku isplatu se
pamti datum isplate i iznos. Jedna isplata odnosi se uvek na jednog radnika, dok jedan radnik može imati
više isplata, ali ne u istom danu. Moguće je i da radnik nije imao nijednu isplatu.

3. Na osnovu sledećeg opisa nacrtaj ER dijagram i prevedi ga u relacioni model. Za ispitanika se


evidentiraju redni broj, ime, prezime, broj lične karte, godina rodjenja, telefon. Neki ispitanici su
kategorisani i tada imaju dodatno obeležje kategorija. Za test znamo šifru i naziv. Svaki test odnosi se na
tačno jednu oblast. Obeležja za oblasti su šifra oblasti i naziv oblasti. Iz jedne oblasti može biti više
testova, a može da ne bude nijedan. Ispitanik se prijavljuje za najmanje jedan test, ali može i na više
testova sa različitom šifrom. Na testu ne mora niko da učestvuje, ali može biti prijavljeno i više
ispitanika. Za svaki test zadužen je bar jedan istraživač. Jedan istraživač može biti zadužen za više
testova, a možda nije zadužen ni za jedan. Obeležja istraživača su ID istraživača, prezime i ime. Ispitanike
koji su prijavljeni za neki test testira jedan od istraživača zaduženih za taj test i tada se beleži datum
testiranja i broj bodova koje je ispitanik osvojio. Moguće je da postoje ispitanici prijavljeni za neki test
koje niko nije testirao. Svaki ispitanik test za koji je prijavljen može da polaže samo jednom (ali ne mora)
i tom prilikom ga testira jedan istraživač. Istraživač je mogao da testira više prijavljenih ispitanika ili da
ne testira nijednog.
Model objekti-veze 12

4. Na osnovu sledećeg opisa nacrtaj ER dijagram jednog sportskog takmičenja. Obeležja takmičara su
redni broj, prezime, ime i država iz koje dolazi. Neki takmičari su reprezentativci i tada imaju dodatni
atribut broj nastupa za reprezentaciju. Svaki takmičar nastupa u jednoj ili više disciplina (u svakoj
disciplini jedan put). Obeležja discipline su oznaka discipline i naziv discipline. U svakoj disciplini nastupa
bar jedan takmičar. Obeležja sudija su šifra sudije, prezime i ime. Svaki sudija je član jednog ili više žirija.
Svaki žiri čine tačno tri sudije. Žiri ima samo atribut oznaka žirija. Svaki žiri je zadužen za najmanje jednu
disciplinu. Za neku disciplinu zadužen je samo jedan žiri. Nastup svakog takmičara u nekoj disciplini
ocenjuje sudijski žiri zadužen za tu disciplinu i tada se pamti ocena žirija. Svaki žiri zadužen za neku
disciplinu ocenjuje bar jedan nastup.

5. Na osnovu sledećeg opisa jedne agencije za nekretnine nacrtaj ER dijagram. U agenciji radi više
agenata. Za svakog agenta poznat je ID agenta, ime, prezim i telefon. U bazi se evidentiraju isplate
zarada agentima. Svaka evidentirana zarada odnosi se uvek na jednog agenta i tada se pamti i datum
isplate i suma novca. Agent je mogao da ne primi nijednu zaradu ili da primi više zarada, a u jednom
danu moguća je samo jedna isplata jednom agentu. Vodi se evidencija o klijentima. Za svakog klijenta je
poznata njegov ID, ime, adresa, mesto, telefon. U bazi se čuvaju informacije o svim prodatim stambenim
nekretninama. Za sve nekretnine pamti se jedinstvena šifra, adresa, mesto, površina u kvadratima i
lokacija (da li se radi o užem gradskom jezgru, periferiji itd.). Nekretnine se dele na stanove i kuće. Za
stanove poznata je vrsta stambenog objekta (garsonjera, jednosoban itd), a za kuće površina placa u
arima. Nekretnine se prodaju klijentima. Svaka prodaja odnosi se na jednog klijenta i jednu nekretninu i
za svaku prodaju pamti se datum kupovine i cena, pri čemu u svakoj prodaji nekretnine posreduje jedan
agent agencije koji za to dobija određeni procenat od vrednosti ugovora. Svaki evidentirani klijent kupio
je najmanje jednu nekretninu. Jedan agent mogao je da učestvuje u više prodaja nekretnina ili da nije
učestvovao ni u jednoj. Pretpostavićemo da jedna nekretnina u jednom danu može biti samo jednom
predmet prodaje; da jedan klijent može kupiti više nekretnina u jednom danu; da jedan agent može
učestvovati u više prodaja u jednom danu.

Rešenje je moglo i da izgleda ovako:


Model objekti-veze 13

You might also like