You are on page 1of 4

02 Model objekti – veze 1

MODEL objekti-veze

Svaki realni sistem čine neki objekti i odnosi između tih objekata. Prilikom modeliranja sistema ne
uzimamo u obzir sve objekte i njihove međusobne veze, već samo neke izabrane. Zato za model
možemo reći da predstavlja pojednostavljenu sliku nekog realnog sistema.
Pri izradi relacionog modela, prvo ćemo na osnovu realnog sistema raditi modeliranje objekata i
veza i tako dobiti MOV (model objekti-veze), koji ćemo zatim prevoditi u relacioni. Model objekti-veze se
često naziva i ER model (od engl. Entity-Relationship Model), pa se u daljem tekstu uporedo koriste
termini objekat/entitet, MOV/ER model...
Kod ER modela, dobijenog na osnovu nekog realnog sistema, imamo sledeće pojmove:
 Tip objekta (entiteta)
Tip objekta je opšti pojam za neki objekat, događaj, pojavu u realnom sistemu, a o kome u bazi
podataka čuvamo podatke. Tako u modelu škole možemo imati tipove entiteta Učenik, Profesor,
Predmet; a u modelu biblioteke to mogu biti Član, Pisac, Knjiga...
 Atribut (obeležje)
U realnom sistemu svaki objekat ima neka svojstva koja ga opisuju. Recimo učenike možemo
opisati svojstvima kao što su prezime, ime, pol, datum rođenja, adresa, telefon, visina, težina... U
modelu objekti-veze, kada neki objekat proglasimo za tip objekta, mi od svih svojstava koja taj
objekat ima u realnom sistemu, biramo samo ona svojstva koja su nam važna za našu bazu podataka
i ta svojstva predstavljaju atribute tog tipa entiteta. Dakle, atributi tipa entiteta su svojstva koja
opisuju taj tip objekta. Za bazu podataka o nekoj školi verovatno nije mnogo važno da pamtimo
visinu i težinu učenika, ali su važni prezime, ime, datum rođenja, adresa i telefon. Znači, tip objekta
Učenik bismo opisali sa atributima Prezime, Ime, Pol, Datum_Rođenja, Adresa, Telefon. To se
zapisuje sa Učenik(Prezime, Ime, Pol, Datum_Rođenja, Adresa, Telefon).
 Pojava (primerak) tipa objekta (entiteta)
Kada atributima nekog tipa objekta dodelimo konkretne vrednosti, dobijemo pojavu tipa
objekta. Pojava tipa objekta Učenik(Prezime, Ime, Pol, Datum_Rođenja, Adresa, Telefon) bi bili
podaci nekog konkretnog učenika, recimo (Rakić; Živojin; 11. 4.1992.; Prote Smiljanića 39;
015347092).
 Klasa objekta (entiteta)
Klasa objekta je skup pojava datog tipa objekta. Kao što je navedeno, za tip objekta
Čitalac(Prezime, Ime, Pol, Datum_Rođenja, Adresa, Telefon), pojava tipa objekta bi bili podaci bilo
kog čitaoca, npr. (Rakić; Živojin; 11. 4.1992.; Prote Smiljanića 39; 015347092). Klasu objekta čini
skup svih pojava tipa objekta Čitalac(Prezime, Ime, Pol, Datum_Rođenja, Adresa, Telefon). Klasu
objekta možemo obeležavati istim nazivom kao i tip objekta, samo velikim slovima. U modelima
podataka često se ne insistira na razlici izmedju tipa i klase objekta.
 Domen atributa (obeležja)
Svakom atributu odgovara skup vrednosti koje taj atribut može imati. Taj skup vrednost zove se
domen atributa. Domen nekog obeležja A označava se sa dom(A). Tako je za obeležje Pol
dom(Pol)={Ž, M}... Da imamo atribut Ocena, domen bi bio {1, 2, 3, 4, 5}.
Dešava se da se pri unosu podataka vrednost za neki atribut ne znamo. Recimo da neki čitalac
nema telefon. Tada smatramo da u pojavi tipa entiteta koja opisuje dotičnog čitaoca atribut Telefon
ima tzv. NULL vrednost. To znači da je njegova vrednost nepoznata i da taj atribut može imati bilo
koju vrednost iz domena.
Atributi mogu da imaju određena ograničenja za svoje vrednosti. Na primer, atributi Ime i
Prezime ne smeju da budu “prazni“, ili atribut Telefon ne sme da ima manje od 9 cifara...
 Ključ tipa entiteta
Atribut ili skup atributa koji jednoznačno određuje svaku pojavu entiteta naziva se ključ
entiteta. Dakle, Ključ šeme relacije sastoji se od jednog ili više atributa šeme relacije. Mogućnosti za
02 Model objekti – veze 2

ključeve nekog tipa entitea može biti više, ali se u tom slučaju samo jedna kombinacija atributa
proglašava za ključ.
Tip entiteta može da ima ključ, ali ne mora. U slučaju kada tip entiteta nema ključ, obično se
dodaje neki atribut koji će za svaku pojavu tipa entiteta imati jedinstvenu vrednost, recimo
RedniBroj, Oznaka i slično.
Atributi koji čine ključ moraju zadovoljiti tri uslova
a) uslov jedinstvenosti
b) uslov minimalnosti
c) uslov ne-null vrednosti
Uslov jedinstvenosti traži da vrednosti atributa koji čine ključ moraju biti jedinstvene za svaki
primerak tipa entiteta (odnosno, ne smeju postojati dva primerka tipa entiteta sa istim vrednostima
za te atribute). Važno je da se prilikom određivanja ključa šeme relacije, ne posmatraju samo
vrednosti koje se nalaze u trenutno poznatim pojavama tipa entiteta, nego treba pretpostaviti koje
se vrednosti mogu (ili ne mogu) pojaviti u nekoj pojavi tipa entiteta. Moguće je i da tip entiteta
nema ključ.
Pretpostavimo da imamo tip entiteta Čitalac(Prezime, Ime, Pol, DatumRođenja, Adresa,
Telefon) i klasu entiteta
ČITALAC{ (Rakić, Živojin, M, 11.4.1970, Prote Smiljanića 19 Šabac, 015/305857),
(Arsenović, Anica, Ž, 29.9.1982., Hilandarska 4 Šabac, 015/332456),
(Kojić, Maja, Ž, 3.1.1976., Vojvode Vuka 2 Bogatić, 064/3457787),
(Arsenović, Aleksandar, M, 29.9.1982., Hilandarska 4 Šabac, 015/332456) }
Za tip entiteta Čitalac ne možemo uočiti skup atributa koji je jedinstven za svaku pojavu u klasi
ČITALAC. Da u šemi relacije Čitalac postoji atribut JMBG (jedinstveni matični broj građana), on bi
mogao biti ključ, jer ne postoje dve osobe sa istim JMBG-om. Tipu entiteta Čitalac možemo dodeliti
novi atribut ČlBroj (predstavlja broj članske karte čitaoca, za svakog čitaoca biće različit i
predstavljaće ključ), tako da sada imamo tip entiteta Čitalac(ČlBroj, Ime, Prezime, Pol,
DatumRođenja, Adresa, Telefon). Atribut ČlBroj je podvučen jer se po dogovoru atributi koji čine
ključ (primarni) podvlače. Sada bi klasa ČITALAC mogla izgledati ovako:
ČITALAC{ (1, Rakić, Živojin, M, 11.4.1970, Prote Smiljanića 19 Šabac, 015/305857),
(2, Arsenović, Anica, Ž, 29.9.1982., Hilandarska 4 Šabac, 015/332456),
(3, Kojić, Maja, Ž, 3.1.1976., Vojvode Vuka 2 Bogatić, 064/3457787),
(4, Arsenović, Aleksandar, M, 29.9.1982., Hilandarska 4 Šabac, 015/332456) }
Recimo da imamo i tip entiteta Knjiga(ŠifKnjige, Naziv, PrezAutora, ImeAutora) i klasu KNJIGA, i
da su predstavljeni pomoću tabele. Ovde je ključ upravo atribut ŠifKnjige.

Pretpostavimo da za tip entiteta Revers čuvamo podatke samo o knjigama koje su trenutno
izdate, i da se podaci o iznajmljivanju neke knjige čim se ona vrati. Tada ključ tipa entiteta Revers
čini atribut ŠifKnjige (ne mogu postojati dve knjige sa istom vrednošću za ovaj atribut).
02 Model objekti – veze 3

Recimo da želimo da u bazi pamtimo podatke o svim knjigama ikada iznajmljenim, a ne samo o
onim koje su trenutno iznajmljene (kada se neka iznajmljena knjiga vrati, ovaj put se ne brišu podaci
iz tabele o njenom iznajmljivanju). Sada ključ čine tri atributa ŠifKnjige + Datum (pretpostavićemo da
knjiga ne može u istom danu biti pozajmljena i vraćena).

Pored uslova jedinstvenosti, svaki ključ mora da zadovolji i uslov minimalnosti. Ključ treba da
sadrži samo one atribute koji su neophodni da bi se zadovoljio uslov jedinstvenosti. Ne sme se
dogoditi da jedan skup atributa proglasimo za ključ, a da ako iz tog skupa izbacimo jedan atribut,
novi (umanjeni) skup atributa i dalje bude ključ. Na primer, kod šeme relacije Knjiga mogli smo da za
ključ proglasimo atribute ŠifKnjige + Naziv, jer u odgovarajućoj tabeli ne postoje dva reda sa istim
vrednostima za ova dva atribute. Ali ako izbacimo atribut Naziv i ostavimo samo atribut ŠifKnjige,
opet imamo ključ i zato zbog uslova minimalnosti ŠifKnjige + Naziv ne može biti ključ.
Pored uslova jedinstvenosti i minimalnosti, ključ mora da zadovolji i uslov da nijedan atribut u
okviru ključa ne sme imati nula-vrednost (NULL vrednost, tj. prazno polje). Recimo, u slučaju tipa
entiteta Čitalac(ČlBroj, Ime, Prezime, Pol, DatumRođenja, Adresa, Telefon, BrLicKarte) atribut
BrLicKarte iako je jedinstven ne može se proglasiti za ključ jer mogu postojati čitaoci koji nemaju
ličnu kartu.
Dakle, tri uslova koje moraju ispuniti atributi ključa su jedinstvenost, minimalnost i uslov ne-
nulte vrednosti.
02 Model objekti – veze 4

Ključ koji se sastoji iz samo jednog atributa zovemo prostim ključem. Ako ključ čini više atributa,
radi se o složenom ključu.
Zadaci:
1. Dat je tip entiteta Profesor(OznakaProf, PrezPof, ImeProf). Odredi ključ tako što ćeš podvući
atribut/atribute koji čine ključ, ili napiši da ključ ne postoji.
Rešenje: Profesori(OznakaProf, PrezProf, ImeProf)
2. Dat je tip entiteta Predmet(OznakaPred, NazivPred). Odredi ključ tako što ćeš podvući
atribut/atribute koji čine ključ, ili napiši da ključ ne postoji.
Rešenje: Predmeti(OznakaPred, NazivPred)
3. Dat je tip entiteta Predavač(OznakaPred, OznakaProf) koji prikazuje koji profesor predaje koji
predmet. Odredi ključ tako što ćeš podvući atribut/atribute koji čine ključ, ili napiši da ključ ne postoji,
ako
a) Jedan predmet može predavati više profesora i jedan profesor može predavati više predmeta
Rešenje: Predaje(OznakaPred, OznakaProf)
b) Jedan predmet može predavati više profesora, a jedan profesor može predavati samo jedan
predmet
Rešenje: Predaje(OznakaPred, OznakaProf)
c) Jedan profesor može predavati više predmeta, a jedan predmet može predavati samo jedan
profesor
Rešenje: Predaje(OznakaPred, OznakaProf)
4. Dat je tip entiteta Ispit(BrojIndeksa, PrezStud, ImeStud, OznakaPred, NazivPred, OznakaProf,
PrezProf, ImeProf, Ocena) koji opisuje polaganje ispita. Pretpostavićemo da student može položiti kod
jednog profesora više ispita, odnosno da jedan profesor može predavati više predmeta. U jednom danu
student može polagati više ispita, ali različitih (tj. student ne može polagati jedan ispit dva puta u
jednom danu). Odredi ključ tako što ćeš podvući atribut/atribute koji čine ključ, ili napiši da ključ ne
postoji, ako
a) Podaci o polaganju ispita se unose samo ako je student položio ispit; ako student ne položi ispit,
podaci o polaganju ispita se ne unose u tabelu
Rešenje: Ispit(BrojIndeksa, PrezStud, ImeStud, OznakaPred, NazivPred, OznakaProf, PrezProf,
ImeProf, Ocena)
b) Podaci o polaganju ispita se unose i kada student ne položi ispit, i tada se u polje Ocena upisuje
vrednost 5
Rešenje: Ne postoji ključ
5. Dat je tip entiteta Ispit(BrojIndeksa, PrezStud, ImeStud, OznakaPred, NazivPred, OznakaProf,
PrezProf, ImeProf, Datum, Ocena) koji opisuje polaganje ispita. Pretpostavićemo da student može
položiti kod jednog profesora više ispita, odnosno da jedan profesor može predavati više predmeta. U
jednom danu student može polagati više ispita, ali različitih (tj. student ne može polagati jedan ispit dva
puta u jednom danu). Odredi ključ tako što ćeš podvući atribut/atribute koji čine ključ, ili napiši da ključ
ne postoji…
Rešenje: Ispit(BrojIndeksa, PrezStud, ImeStud, OznakaPred, NazivPred, OznakaProf, PrezProf,
ImeProf, Datum, Ocena)

You might also like