Professional Documents
Culture Documents
02 Relacioni Model3
02 Relacioni Model3
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.
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
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)
c) Jedan profesor moe predavati vie predmeta, a jedan predmet moe predavati samo jedan
profesor
Reenje: Predaje(OznakaPred, OznakaProf)
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
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