Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

02 Relacioni model podataka

RELACIONI MODEL PODATAKA


Svaki realni sistem ine neki objekti i odnosi izmeu tih objekata. Prilikom modeliranja sistema ne
uzimamo u obzir sve objekte i njihove meusobne veze, ve samo neke izabrane. Zato za model moemo
rei 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 Modelling), pa se u daljem tekstu uporedo koriste
termini objekat/entitet, MOV/ER model...
Kod ER modela, dobijenog na osnovu nekog realnog sistema, imamo sledee pojmove:
Tip objekta (entiteta)
Tip objekta je opti pojam za neki objekt u realnom sistemu. Tako u modelu kole moemo imati
tipove entiteta Uenik, Profesor, Predmet; a u modelu biblioteke to mogu biti lan, Pisac, Knjiga...
Atribut (obeleje)
U realnom sistemu svaki objekat ima neka svojstva koja ga opisuju. Recimo uenike moemo
opisati svojstvima kao to su prezime, ime, pol, datum roenja, adresa, telefon, visina, teina... 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 vana za nau bazu podataka i
ta svojstva predstavljaju atribute tog tip entiteta. Dakle, atributi tipa entiteta su svojstva koja opisuju
taj tip objekta. Za bazu podataka o nekoj koli nije mnogo vano da pamtimo visinu i teinu uenika,
ali su vani prezime, ime, datum roenja, adresa i telefon. Znai, tip objekta Uenik bismo opisali sa
atributima Prezime, Ime, Pol, Datum_Roenja, Adresa, Telefon. To se zapisuje sa Uenik(Prezime,
Ime, Pol, Datum_Roenja, Adresa, Telefon).
Pojava (primerak) tipa objekta (entiteta)
Kada atributima nekog tipa objekta dodelimo konkretne vrednosti, dobijemo pojavu tipa objekta.
Pojava tipa objekta Uenik(Prezime, Ime, Pol, Datum_Roenja, Adresa, Telefon) bi bili podaci nekog
konkretnog uenika, recimo (Raki; ivojin; 11. 4.1992.; Prote Smiljania 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_Roenja, Adresa, Telefon), pojava tipa objekta bi bili
podaci bilo kog itaoca, npr. (Raki; ivojin; 11. 4.1992.; Prote Smiljania 39; 015347092). Klasu
objekta ini skup svih pojava tipa objekta italac(Prezime, Ime, Pol, Datum_Roenja,
Adresa, Telefon). Klasu objekta moemo obeleavati istim nazivom kao i tip objekta, samo velikim
slovima. U modelima podataka esto se ne pravi jasna razlika izmedju tipa i klase
objekta.
S obzirom da ER model prevodimo u relacioni, onda naspram pojmova iz ER modela imamo neke
pojmove u relacionom modelu:
ema relacije
Ono to u ER-modelu zovemo tip objekta, u relacionom modelu zovemo ema relacije. Kao i tip
objekta, ema relacije ima svoj naziv i konaan skup atributa koji je opisuju, npr. Uenik(Prezime,
Ime, Pol, Datum_Roenja, Adresa, Telefon). ema relacije mora imati bar jedan atribut.
Relacija
Klasi objekta u terminologiji relacionog modela odgovara pojam relacija. U relacionom modelu
eme relacija se predstavljaju u obliku tabela, npr:

02 Relacioni model podataka

Moemo rei da jednu relaciju u stvari ine svi redovi sa vrednostima koji se nalaze u nekoj
tabeli. Svaki red u tabeli tada predstavlja pojavu tipa objekta.
Domen atributa (obeleja)
Svakom atributu odgovara skup vrednosti koje taj atribut moe imati. Taj skup vrednost zove se
domen atributa. Domen nekog obeleja A oznaava se sa dom(A). tako je za obeleje Pol,
dom(Pol)={, M}... Da imamo atribut Ocena, domen bi bio {1, 2, 3, 4, 5).
esto se javlja potreba da se pri unosu podataka zabelei da vrednost za neki atribut nedostaje,
odnosno da je nepoznata. Recimo, u tabeli italac unosimo podatke o nekom itaocu koji nema
telefon. ta upisati u atribut Telefon? U takvim sluajevima uvodi se takozvana NULL vrednost.
Atributi mogu da imaju odreena ogranienja za svoje vrednosti. Ta ogranienja zovu se statika
pravila integriteta. Na primer, atributi Ime i Prezime ne smeju da budu prazni, ili atribut Telefon ne
sme da ima manje od 9 cifara... Postoje i dinamika pravila integriteta kojima se odrava integritet
podataka pri izvravanju operacija odravanja baze podataka. Odnosno, dinamikim pravilima
integriteta se odreuje koja od akcija Restrict, Cascade, Set Null, Set Default e se preduzeti ako je
naruen integritet baze podataka nekom od operacija odravanja baze podataka: insert, update, delete.
Klju eme relacije
Svaka ema relacije moe da ima klju, ali ne mora. Klju eme relacije moe da se sastoji od
jednog atributa te eme relacije i tada je to prost klju. Klju eme relacije moe da ini dva ili vie
njenih atributa i onda imamo sloen klju. U svakom sluaju, vrednosti atributa koji ine klju
moraju biti jedinstvene za svaki red (odnosno, ne smeju postojati dva reda u tabeli sa istim
vrednostima za te atribute). Vano je da se prilikom odreivanja kljua eme relacije, ne posmatraju
samo vrednosti koje se trenutno nalaze u tabeli, nego treba pretpostaviti koje se vrednosti mogu (ili
ne mogu) pojaviti u tabeli. Mogue je i da neka ema relacije nema klju.
Pogledajmo tabelu italac:

U tabeli italac ne moemo da uoimo skup atributa koji je jedinstven za svaku pojavu u tabeli.
Da u emi relacije italac postoji atribut JMBG (jedinstveni matini broj graana), on bi mogao biti
klju, jer ne postoje dve osobe sa istim JMBG-om. Kada ema relacije nema klju, esto se uvodi
novi atribut koji treba da predstavlja klju. Tako emo i mi uraditi. Tipu entiteta italac dodeliemo
novi atribut lBroj (koji e za svakog itaoca biti razliit i koji e predstavljati klju), tako da sada
imamo tip entiteta italac(lBroj, Ime, Prezime, Pol, DatumRoenja, Adresa, Telefon). Atribut
lBroj je podvuen jer se po dogovoru atributi koji ine emu relacije podvlae. Tabela bi sada
izgledala ovako:

Recimo da imamo i tip entiteta Knjiga(ifKnjige, Naziv, PrezAutora, ImeAutora), gde svaka
knjiga ima svoju ifru (atribut ifKnjige). Ovde je klju upravo atribut ifKnjige.

02 Relacioni model podataka

Pretpostavimo da u tabeli Revers uvamo podatke samo o knjigama koje su trenutno izdate, i da
se podaci o iznajmljivanju neke knjige briu iz tabele im se ona vrati. Tada klju tip entiteta Revers
ini atribut ifKnjige (ne postoje dva reda u tabeli sa istom vrednou za ovaj atribut).

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 briu podaci
iz tabele o njenom iznajmljivanju). Sada klju ine tri atributa ifKnjige + Datum (pretpostaviemo
da knjiga ne moe u istom danu biti pozajmljena i vraena).

Pored uslova jedinstvenosti, svaki klju mora da zadovolji i uslov minimalnosti. Klju treba da
sadri samo neophodne atribute. Ne sme se dogoditi da jedan skup atributa proglasimo za klju, a da

02 Relacioni model podataka

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
odgovarajuoj 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 moe biti klju. Za skup atributa koji zadovoljava pravilo jedinstvenosti, ali ne
i pravilo minimalnosti kaemo da ini super klju.
Pored uslova jedinstvenosti i minimalnosti, klju mora da zadovolji i uslov da nijedan atribut u
okviru kljua ne sme imati nula vrednost (tj. prazno polje).
Klju koji se sastoji iz samo jednog atributa zovemo prostim kljuem. Ako klju ini vie
atributa, radi se o sloenom kljuu.
Nekada postoji vie mogunosti da odredimo klju. Kod eme relacije Student(BrojIndeksa,
PrezStud, ImeStud, DatumRodjenja, Adresa, JMBG) klju mogu biti i atribut BrojIndeksa i atribut
JMBG. Kada postoji vie atributa/grupa atributa koje zadovoljavaju uslove za klju, onda kaemo
da oni predstavljaju kandidate za kljueve. Samo jedan od kandidat-kljueva se proglaava za
primarni klju.
Postoji i pojam stranog kljua. Posmatrajmo eme relacije Oblast i Naslov:
Oblast

Naslov

U ovom sluaju je atribut SifO primarni klju eme relacije Oblast i pojavljuje se kao atribut u
tabeli Naslov. Ako se u tabeli Naslov kao vrednosti atributa SifO moe pojaviti iskljuivo ili NULL
vrednost ili neka od vrednosti koje ve postoje u koloni SifO u tabeli Oblast, za atribut SifO kaemo
da je strani klju eme relacije Naslov.
Dakle, strani (spoljni) klju tabele A je skup atributa (moe biti i samo jedan atribut) te tabele
povezanih sa kandidat-kljuem tabele B koji ima isti broj atributa (ne mora biti primarni klju, kao
to je u primeru sa tabelama Oblast i Naslov) tako da ili je svaka vrednost spoljnog kljua u nekom
redu u tabeli A jednaka vrednosti kandidat-kljua u nekom redu u tabeli B, ili sadri NULL vrednosti.
Drugim reima, vrednosti tih atributa u tabeli A u jednom redu se ili preuzimaju iz nekog reda u
tabele B ili su NULL vrednosti. Za tabelu A tada kaemo da predstavlja tabelu dete (jo i sekundarna
ili referencirajua tabela), a za tabelu B kaemo da predstavlja tabelu roditelj (jo i primarna ili
referencirana tabela).
Zadaci:
1. Data je ema relacije Profesori(OznakaProf, PrezPof, ImeProf) koja sadri podatke o profesorima.
Odredi klju eme relacije tako to e podvui atribut/atribute koji ine klju, ili napii da klju ne
postoji.
Reenje: Profesori(OznakaProf, PrezProf, ImeProf)

2. Data je ema relacije Predmeti(OznakaPred, NazivPred) koja sadri podatke o predmetima. Odredi
klju eme relacije tako to e podvui atribut/atribute koji ine klju, ili napii da klju ne postoji.
Reenje: Predmeti(OznakaPred, NazivPred)

3. Data je ema relacije Predaje(OznakaPred, OznakaProf) koja prikazuje koji profesor predaje koji
predmet. Odredi klju eme relacije tako to e podvui atribut/atribute koji ine klju, ili napii da klju
ne postoji, ako
a) Jedan predmet moe predavati vie profesora i jedan profesor moe predavati vie predmeta
Reenje: Predaje(OznakaPred, OznakaProf)

b) Jedan predmet moe predavati vie profesora, a jedan profesor moe predavati samo jedan
predmet
Reenje: Predaje(OznakaPred, OznakaProf)

02 Relacioni model podataka

c) Jedan profesor moe predavati vie predmeta, a jedan predmet moe predavati samo jedan
profesor
Reenje: Predaje(OznakaPred, OznakaProf)

4. Data je ema relacije Ispit(BrojIndeksa, PrezStud, ImeStud, OznakaPred, NazivPred, OznakaProf,


PrezProf, ImeProf, Ocena) koja pamti polaganje ispita. Pretpostaviemo da student moe poloiti kod
jednog profesora vie ispita, odnosno da jedan profesor moe predavati vie predmeta. Odredi klju eme
relacije tako to e podvui atribut/atribute koji ine klju, ili napii da klju ne postoji, ako
a) Podaci o polaganju ispita se unose samo ako je student poloio ispit; ako student ne poloi ispit,
podaci o polaganju ispita se ne unose u tabelu
Reenje:

Ispit(BrojIndeksa, PrezStud,
PrezProf, ImeProf, Ocena)

ImeStud,

OznakaPred,

NazivPred,

OznakaProf,

b) Podaci o polaganju ispita se unose i kada student ne poloi ispit, i tada se u polje Ocena upisuje 5
Reenje: Ne postoji klju

5. Data je ema relacije Ispit(BrojIndeksa, PrezStud, ImeStud, OznakaPred, NazivPred, OznakaProf,


PrezProf, ImeProf, Datum, Ocena), kao i u prethodnom zadatku. Odredi klju eme relacije tako to e
podvui atribut/atribute koji ine klju, ili napii da klju ne postoji, ako
a) Podaci o polaganju ispita se unose samo ako je student poloio ispit; ako student ne poloi ispit,
podaci o polaganju ispita se ne unose u tabelu
Reenje:

Ispit(BrojIndeksa, PrezStud, ImeStud,


PrezProf, ImeProf, Datum, Ocena)

OznakaPred,

NazivPred,

OznakaProf,

b) Podaci o polaganju ispita se unose i kada student ne poloi ispit, i tada se u polje Ocena upisuje 5
Reenje: Ne postoji klju

You might also like