Professional Documents
Culture Documents
8 Prevodjenje ER Modela U Relacioni Model Podataka PDF
8 Prevodjenje ER Modela U Relacioni Model Podataka PDF
ProgramiranjeI_sylabus.doc emina@fit.ba
Datum:15.12.2015.
Pri prevođenju jednog modela podataka u drugi neće svakom konceptu strukture jednog
modela odgovarati koncept strukture drugog modela, niti će svakoj operaciji jednog
modela odgovarati operacija drugog modela i svakom eksplicitnom ograničenju jednog
modela neće odgovarati eksplicitno ograničenje drugog modela.
Kod prevođenja jednog semantički bogatijeg modela podataka (modela III generacije) u
semantički manje bogat model (model II generacije) dolaze do izražaja prethodno
navedena neslaganja. Po pravilu se dio semantike iskazan strukturom semantički
bogatijeg modela podataka (ER modela podataka) mora predstaviti eksplicitnim
ograničenjima semantički manje bogatog modela podataka (R modela podataka). Iz toga
neposredno slijedi da apstraktnoj operaciji semantički bogatog modela odgovara
procedura semantički manje bogatog modela.
Kao rezultat prevođenja ER dijagrama (DOV) dobiva se relacijska šema baze podataka sa
odgovarajućim pravilima integriteta. Na osnovu skupa pravila koja se u prevođenju
primjenjuju, postupak prevođenja DOV u relacioni model može biti formaliziran i
automatiziran.
Postoji više postupaka za prevođenje ER dijagrama (DOV) u relacioni model podataka, a
ovdje se izlaže jedan praktičan koji se može i automatizirati.
1
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
1.1. Svaki objekt (entitet) iz ER dijagrama (DOV) postaje šema relacije. Naziv tipa
entiteta postaje naziv šeme relacije. Obilježja (atributi) objekta (entiteta) su
obilježja (atributi) šeme relacije. Za osnovne objekte identifikator objekta (entiteta)
postaje primarni ključ šeme relacije. Atribut(i) koji ima(ju) ulogu primarnog ključa
šeme relacije se podvlače.
1.2. Svaki slabi objekt (slabi tip entiteta) također postaje šema relacije. Naziv
tipa objekta postaje naziv šeme relacije. Obilježja objekta su obilježja šeme relacije.
Identifikator (primarni ključ) nadređenog tipa entiteta postaje jedno od obilježja
šeme relacije koja odgovara slabom tipu entiteta.
Identifikator slabog tipa entiteta čini identifikator nadređenoga tipa entiteta i
obilježja slabog objekta koja jedinstveno identificiraju pojavljivanje slabog tipa
entiteta u okviru pojavljivanja njemu nadređenoga objekta.
DRŽAVA PROIZVOĐAČ
S={
DRŽAVA(S_DRZAVA, NAZIV_D), (prema pravilu 1.1.)
PROIZVOĐAČ(S_DRZAVA, S_PROIZVOD, NAZIV_P) (prema pravilu 1.2.)
}
1.3. Objekt superklase postaje šema relacije. Naziv superklase postaje naziv šeme
relacije. Obilježja superklase su obilježja šeme relacije. Identifikator superklase
postaje ključ šeme relacije.
1.4. Objekt podklasa također postaje šema relacije. Naziv podklase postaje ime šeme
relacije. Obilježja podklase su obilježja šeme relacije. Identifikator superklase
predstavlja ključ šeme relacije koja odgovara podklasi.
2
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
JMBG DATUM_ROD
RADNIK
IS_A
DATUMIZB
I={NASTAVNIK[JMBG] ⊆RADNIK[JMBG],
SLUŽBENIK[JMBG] ⊆RADNIK[JMBG],
ODRŽAVANJE [JMBG] ⊆ RADNIK[JMBG]}
JMBG DATUM_ROD
RADNIK
IS_A
DATUM_UPISA
RADNIK_STUDENT RADNIK_SPORTISTA
FAKULTET SPORT
I={RADNIK_STUDENT[JMBG] ⊆RADNIK[JMBG],
RADNIK_SPORTISTA[JMBG] ⊆RADNIK[JMBG]}
3
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
Veze kardinaliteta 1:1 po pravilu nemaju obilježja. Sva obilježja koja bi eventualno mogla
biti pripisana samoj vezi, zapravo su obilježja jednog od objekata koji učestvuju u toj
vezi. Dakle, mogu biti pripisana tom objektu i time postati obilježja šeme relacije kojom
se taj tip objekta predstavlja.
2.1.1. Veza kardinaliteta (1,1):(1,1) i oba objekta koji u njoj učestvuju prevodimo u
jednu šemu relacije, čija su obilježja sva obilježja jednog i drugog objekta.
Kandidat za ključ u ovoj šemi relacije su identifikatori jednog i drugog objekta koji
su u vezi.
2.1.2. Veza kardinaliteta (0,1):(1,1) i objekte u vezi prevodimo u dvije šeme relacije.
Svakom entitetu u vezi odgovara po jedna šema relacije (prema već definiranom
pravilu 1.1), s tim što identifikator jednog od objekta koji su u vezi postaje
obilježje i druge šeme relacije u ulozi eksternog ključa. Dakle, veza se predstavlja
spoljnim (eksternim) ključem. Spoljni ključ je identifikator entiteta sa čije
strane kardinalitet (1,1) u relacionoj šemi koja odgovara entitetu sa čije strane
kardinalitet je (0,1).
Šema relacije u koju se uvrstiti spoljni (eksterni) ključ bira se tako da relacija
sadrži što manje null vrijednosti i da njeno korištenje bude što efikasnije.
JMBG S_JED
(0,1) (1,1)
RADNIK RUKOVODI RADNA_JEDINICA
Šeme relacija pod a) uzrokovale bi da svaka n-torka za svakog radnika koji nije
rukovodilac ima NULL vrijednost nula za atribut S_JED (tj. spoljni ključ). Pohranjivanje
NULL vrijednosti u relacionoj bazi podataka nije preporučeno jer može prouzrokovati
probleme u toku korištenja i održavanja baze podataka. Također pohranjivanje NULL
vrijednosti nepotrebno zauzima prostor.
Prema šemama relacija pod b), obzirom da radna jedinica obavezno ima rukovodioca,
predstavljanje veze RUKOVODI spoljnim ključem u šemi relacije R_JEDINICA ne dovodi
do pojave NULL vrijednosti.
4
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
2.1.3. Za vezu kardinaliteta (0,1):(0,1) kreiraju se tri šeme relacije. Po jedna za svaki
objekt entitet (prema već definiranom pravilu 1.1) i jedna za vezu. Obilježja u
šemi relacije koja odgovaraju vezi su identifikatori objekata (entiteta) koji su u
vezi i oba su kandidati za ključ.
(0,1) (0,1)
KANDIDAT UPIS STUDENT
OCJENA
BROJ_IND
S_KAND SMJER_STU
IME_KAND D
IME_STUD
Također šema relacije UPIS može za primarni ključ imati S_KAND umjesto BROJ_IND.
Dizajner baze podataka ima slobodu odlučiti se za primarni ključ između ekvivalentnih
ključeva.
(1,1) (0,M)
PREDMET PRIPA KATEDRA
DA
5
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
I={PREDMET[S_KAT] ⊆KATEDRA[S_KAT]}
(1,1) (1,M)
OPŠTINA IMA OKRUG
S_OKR
S_OPS
NAZIV_OPS NAZIV_OKR
I={OPŠTINA[S_OKR]⊆OKRUG[S_OKR]}
2.2.2. Veza između nadređenog i slabog objekta kao i veza između nadtipa i podtipa ne
postaju posebne šeme relacija. One su već ostvarene pravilima 1.2, 1.3 i 1.4.
(0,M) (0,1)
KORISTI
PREDMET UDŽBENIK
INV_BROJ NASLOV
S_PRED NAZIV
I={KORISTI[INV_BROJ]⊆UDŽBENIK[INV_BROJ],
KORISTI[S_PRED]⊆PREDMET[S_PRED]}
6
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
(0,1) (1,M)
PREDMET PREDAJE NASTAVNIK
S_NAS
S_PRED PREZ_IME
NAZIV
I={PREDAJE[S_PRED] ⊆PREDMET[S_PRED],
PREDAJE[S_NAS] ⊆NASTAVNIK[S_NAS]}
(0,M) (0,M)
POLOŽIO
PREDMET STUDENT
I={POLOŽIO[BROJ_IND] ⊆STUDENT[BROJ_IND],
POLOŽIO[S_PRED] ⊆PREDMET[S_PRED]}
7
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
2.4. Gerund ili agregirani objekt (mješoviti tip objekt-veza) se posmatra na isti način kao
i odgovarajuća veza. Ukoliko veza posjeduje obilježja ona postaju obilježja šeme
relacije veze kada se veza prevodi u posebnu šemu relacije ili se uključuju u onu
šemu relacije u koju se upisuje spoljni ključ.
(0,M)
POLOŽIO
PREDMET STUDENT
(0,M)
BROJ_IND PREZIME
Integritetna komponenta:
I={POLOŽIO[BROJ_IND] ⊆STUDENT[BROJ_IND],
POLOŽIO[S_PRED] ⊆PREDMET[S_PRED]}
Prevođenje rekurzivnih ili unarnih veza (unarnom se naziva veza između dva objekta
istog tipa) u relacioni model podataka zavisi od kardinalnaliteta tipa poveznika i izvodi se
kao i za druge tipove ranije opisanih binarnih veza. Kod unarne veze tipa (1:1)
parcijalnost samo na jednoj strani veze, odnosno totalnost samo na jednoj strani veze,
ne bi imalo smisla. Naime, time bi se istom tipu objekta istovremeno dopuštalo i poricalo
opcionalno učešće u vezi.
Pri prevođenju unarnih veza s obzirom da bi spoljni ključ u šemi relacije imao isti naziv
kao i primarni ključ, potrebno je njegovo preimenovanje.
pripada (0,1)
OSOBA BRAK
ima (0,1)
JMBG
IME PREZIME
Model podataka prikazan na slici 12. predstavlja situaciju shvatanja braka u našim
uslovima. Naime, jedna osoba nije u vezi ni sa jednom drugom osobom (nije u braku) ili
je u braku sa samo jednom osobom. Prevođenjem u relacioni model dobivamo sljedeće
šeme relacija:
8
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba
I={BRAK[JMBG]⊆OSOBA[JMBG],
BRAK[JMBG_BRAČNI_DRUG]⊆OSOBA[JMBG]}
rukovođen_od (0,1)
RADNIK RUKOVODI
rukovodi_sa (0.M)
JMBG
IME
PREZIME
I={RUKOVODI[JMBG] ⊆RADNIK[JMBG],
RUKOVODI[JMBG_RUKOVODILAC] ⊆RADNIK[JMBG]}
u_sastavu (0,M)
PROIZVOD SASTAV
sastoji_se (0,M)
S_PROIZVODA NAZIVP
9
Baze podataka I::Predavanja
http://dl.fit.ba/