You are on page 1of 9

Fakultet informacijskih tehnologija

ProgramiranjeI_sylabus.doc emina@fit.ba

Datum:15.12.2015.

4.2. PREVOĐENJE MODELA OBJEKTI - VEZE- OBILJEŽJA


(ENTITY-RELATIONSHIP ili ER MODELA) U RELACIONI MODEL
PODATAKA
Model entiteta i poveznika (ER model podataka) kreiran je u početku faze dizajna baze
podataka i nije ga moguće direkno implementirati korištenjem relacionog sistema za
upravljanje bazama podataka. U fazi dizajna baze podataka ER model podataka potrebno
je prevesti u relacioni model podataka, koji je moguće direktno implementirati u fazi
implementacije baze podataka.

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.

S obzirom da za sada ne postoji komercijalno raspoloživi sistem za upravljanje bazama


podataka (DBMS) zasnovan na MOV (Model Objekti Veze ili ER model) potrebno je u
praktičnoj realizaciji model podataka izrađen prema MOV prevesti u neki od modela za
koji postoji DBMS.

Kako za relacioni model podataka postoje više komercijalnih sistema za upravljanje


bazama podataka, najčešće se ER dijagram prevodi u relacioni model podataka.

Model objekti-veze-obilježja je semantički bogatiji model (model III generacije), dok je


relacioni model semantički manje bogat (model II generacije).

Prevođenje MOV (ER dijagrama) u relacioni model izvodi se na sljedeći način:

1. Dio strukture MOV, odnosno DOV (Dijagram Objekti-Veze) se predstavlja


relacionom šemom.

2. Ograničenja, operacije i dio strukture MOV se predstavljaju operacijama za očuvanje


integriteta (referencijalni integritet) definiranim nad relacionim modelom, a
implementiraju korištenjem alata odabranoga relacionog sistema za upravljanje
bazama podataka (RDBMS).

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

4.2.1. POSTUPAK PREVOĐENJA


1. Pravila za objekte (entitete):

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.

S_DRZAVA NAZIV_D S_PROIZVOD NAZIV_P

DRŽAVA PROIZVOĐAČ

Slika 1: Entitet i slabi tip entiteta (država-proizvođač)

Prevođenjem primjera sa slike 1 u relacioni model primjenom do sad definiranih


pravila dobivaju se sljedeće šeme relacija:

 Strukturalna komponenta relacionog modela podataka je skup čiji


elementi su relacione šeme država i 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.)
}

 Integritetnu komponentu relacionog modela koji odgovara ER dijagramu


sa slike 1. čini međuralaciono ograničenje.

I={PROIZVOĐAČ[S_DRZAVA]⊆DRŽAVA[S_DRZAVA]}  vrijednosti atribta S_DRŽ u


ekstenziji relacione šeme DRŽAVA mogu biti samo one vrijednosti koje su već
pohranjene u ekstenziji relacione šeme PROIZVOĐAČ.

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

IME (0,1) VRSTA_POSLA

IS_A

DATUMIZB

NASTAVNIK SLUŽBENIK ODRŽAVANJE

ZVANJE STSPREMA ZANIMANJE

Slika 2: Hijerarhijska veza - Fakultet

ER dijagram dat na slici 2. prevodi se u relacioni model sa sljedećim šemama relacija:


S={ RADNIK(JMBG, IME, DATUM_ROD, VRSTA_POSLA), (prema pravilu 1.3.)
NASTAVNIK(JMBG, ZVANJE, DATUMIZB), (prema pravilu 1.4.)
SLUŽBENIK(JMBG, STSPREMA), (prema pravilu 1.4.)
ODRŽAVANJE(JMBG, ZANIMANJE)} (prema pravilu 1.4.)

Međurelaciona ograničenja referencijalnog integriteta koja vrijede za prethodni skup


šema relacija su navedena u integritetnoj komponenti:

I={NASTAVNIK[JMBG] ⊆RADNIK[JMBG],
SLUŽBENIK[JMBG] ⊆RADNIK[JMBG],
ODRŽAVANJE [JMBG] ⊆ RADNIK[JMBG]}

JMBG DATUM_ROD
RADNIK

IME (0,M) VRSTA_POSLA

IS_A

DATUM_UPISA

RADNIK_STUDENT RADNIK_SPORTISTA

FAKULTET SPORT

Slika 3: Hijerarhijska veza - Radnik


ER dijagramu sa slike 3. odgovara relacioni model sa sljedećim šemama relacija:
S={RADNIK(JMBG, IME, DATUM_ROD) (prema pravilu 1.3)
RADNIK_STUDENT(JMBG, FAKULTET, DATUMUPISA) (prema pravilu 1.4)
RADNIK_SPORTISTA(JMBG, SPORT) (prema pravilu 1.4)}

Za prethodne tri šeme relacija vrijede sljedeća međurelaciona ograničenja

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

2. Pravila za prevođenje binarne veze

Veze ili poveznici iz ER modela podataka prevodit će se različito, ovisno o


kardinalitetu poveznika ili brojnosti veze.

2.1. Veze kardinaliteta 1:1

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

IMERAD SPREMA JED_NAZ

Slika 4: Veza Rukovodi kardinaliteta (0,1):(1,1)

DOV-u sa slike 4. odgovara relacioni model sa sljedećim šemama relacija:

a) RADNA_JEDINICA(S_JED, JED_NAZ) (prema pravilu 1.1)


RADNIK(JMBG, IMERAD, SPREMA, S_JED) (prema pravilu 1.1 i 2.1.2)
ili

b) R_JEDINICA(S_JED, JED_NAZ, JMBG) (prema pravilu 1.1 i 2.1.2)


RADNIK(JMBG, IMERAD, SPREMA) (prema pravilu 1.1)

Š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

Prema tome, pravilo za prevođenje veze sa kardinalnošću (0,1):(1,1) je njeno


predstavljanje spoljnim ključem u šemi relacije objekta sa strane gdje je kardinalitet
(1,1).

Integritetoj komponenti za b) odgovara jedno međurelaciono ograničenje:

I={ R_JEDINICA[JMBG] ⊆RADNIK[JMBG] }

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

Slika 5: Veza Upis kardinaliteta (0,1):(0,1)

ER dijagram sa slike 5 prevodi se u relacioni model sa sljedećim šemama relacija:


S={ KANDIDAT(S_KAND, IME_KAND, OCJENA) (prema pravilu 1.1)
STUDENT(BROJ_IND, IME_STUD, SMJER_STUD) (prema pravilu 1.1)
UPIS(BROJ_IND, S_KAND) (prema pravilu 2.1.3)}

I={ UPIS[BROJ_IND] ⊆STUDENT[BROJ_IND],


UPIS[S_KAND] ⊆KANDIDAT [S_KAND]}

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.

2.2. Veze kardinaliteta 1:N ili N:1

2.2.1. Veze kardinaliteta (1,1):(0,M) i (1,1):(1,M) ne postaju posebne šeme relacija.


Identifikator objekta sa strane za koju je gornja granica kardinaliteta
preslikavanja M postaje obilježje šeme relacije koja odgovara objektu sa čije
strane je maksimalni kardinalitet 1.

(1,1) (0,M)
PREDMET PRIPA KATEDRA
DA

S_PRED NAZIV S_KAT NAZIVK

Slika 6: Veza Pripada kardinaliteta (1,1):(0,M)

ER dijagram sa slike 6 prevodi se u relacioni model sa sljedećim šemama relacija:

5
Baze podataka I::Predavanja
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc emina@fit.ba

S={PREDMET(S_PRED, NAZIV, S_KAT), (prema pravilu 1.1 i 2.2)


KATEDRA(S_KAT, NAZIVK)} (prema pravilu 1.1).

Integritetnu komponentu čini jedno međurelaciono ograničenje referencijalnog


integriteta.

I={PREDMET[S_KAT] ⊆KATEDRA[S_KAT]}

(1,1) (1,M)
OPŠTINA IMA OKRUG

S_OKR
S_OPS
NAZIV_OPS NAZIV_OKR

Slika 7: Veza Ima kardinaliteta (1,1):(1,M)

ER dijagram sa slike 7 prevodi se u relacioni model sa sljedećim šemama relacija:

S={OPŠTINA(S_OPS, NAZIV_OPS, S_OKR) (prema pravilu 1.1 i 2.2)


OKRUG(S_OKR, NAZIV_OKR)} (prema pravilu 1.1).

Integritetnu komponentu čini jedno međurelaciono ograničenje referencijalnog


integriteta.

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.

2.2.3. Veze kardinaliteta (0,1):(0,M) i (0,1):(1,M) postaju posebne šeme relacija.


Obilježja ove šeme relacije su identifikatori objekata koji su u vezi, a ključ šeme
relacije je identifikator objekta sa čije strane maksimalni kardinalitet je 1.

(0,M) (0,1)
KORISTI
PREDMET UDŽBENIK

INV_BROJ NASLOV
S_PRED NAZIV

Slika 8: Veza Koristi kardinaliteta (0,1):(0,M)

ER dijagram sa slike 8 prevodimo u relacioni model sa sljedećim šemama relacija i


međurelacionim ograničenjima:
S={PREDMET(S_PRED, NAZIV), (prema pravilu 1.1)
UDŽBENIK(INV_BROJ, NASLOV), (prema pravilu 1.1)
KORISTI(INV_BROJ, S_PRED)} (prema pravilu 2.4)

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

Slika 9: Veza Predaje kardinaliteta (0,1):(1,M)

ER dijagram sa slike 9 prevodi se u relacioni model sa sljedećim šemama relacija i


međurelacionim ograničenjima:
S={PREDMET(S_PRED, NAZIV), (prema pravilu 1.1)
NASTAVNIK(S_NAS, PREZ_IME), (prema pravilu 1.1)
PREDAJE(S_PRED, S_NAS)} (prema pravilu 2.4)

I={PREDAJE[S_PRED] ⊆PREDMET[S_PRED],
PREDAJE[S_NAS] ⊆NASTAVNIK[S_NAS]}

2.3. Veze kardinaliteta N:M

2.3.1. Veze kardinaliteta (0,M):(0,M), (1,M):(0,M) i (1,M):(1,M) postaju posebne šeme


relacija. Obilježja ove šeme relacije su identifikatori objekata koji su u vezi, a
ključ šeme relacije je složeni ili kompozitni ključ koji se sastoji od identifikatora
objekata koji su u vezi.

(0,M) (0,M)
POLOŽIO
PREDMET STUDENT

NAZIV BROJ_IND SMER_STUD


S_PRED
PREZ_IME

Slika 10: Veza kardinaliteta (0,M):(0,M)

ER dijagram sa slike 10 prevodi se u relacioni model sa sljedećim šemama relacija i


međurelacionim ograničenjima:

S={PREDMET(S_PRED, NAZIV), (prema pravilu 1.1)


STUDENT(BROJ_IND, PREZ_IME, SMER_STUD), (prema pravilu 1.1)
POLOŽIO(BROJ_IND, S_PRED)} (prema pravilu 2.5)

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)

S_PRED NAZIV DATUMISP


SMERSTUD

BROJ_IND PREZIME

Slika 11: Gerund Položio

ER dijagram sa slike 10 prevodimo u sljedeće šeme relacija:


S={PREDMET(S_PRED, NAZIV), (prema pravilu 1.1)
STUDENT(BROJ_IND, PREZIME, SMERSTUD), (prema pravilu 1.1)
POLOŽIO(BROJ_IND, S_PRED, DATUMISP)} (prema pravilu 2.6)

Integritetna komponenta:
I={POLOŽIO[BROJ_IND] ⊆STUDENT[BROJ_IND],
POLOŽIO[S_PRED] ⊆PREDMET[S_PRED]}

2.5. Pravila za rekurzivne (unarne) veze

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

Slika 12: Rekurzivna veza Brak kardinaliteta (0,1):(0,1)

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

S={OSOBA(JMBG, IME, PREZIME), (prema pravilu 1.1)


BRAK(JMBG, JMBG_BRAČNI_DRUG)} (prema pravilu 2.1.3)

I={BRAK[JMBG]⊆OSOBA[JMBG],
BRAK[JMBG_BRAČNI_DRUG]⊆OSOBA[JMBG]}

U šemi relacije BRAK za ključ relacije bilo je moguće također odabrati


JMBG_BRAČNI_DRUG umjesto JMBG.

rukovođen_od (0,1)
RADNIK RUKOVODI
rukovodi_sa (0.M)

JMBG
IME
PREZIME

Slika 13: Rekurzivna veza Rukovodi kardinaliteta (0,1):(0,M)

ER dijagram na slici 13 predstavlja situaciju u kojoj jedan radnik može da rukovodi sa


više radnika i može imati jednog nadređenog rukovodioca. Svaki radnik ne mora imati
nadređenog rukovodioca i svaki radnik ne mora biti rukovodilac.
Prevođenjem u relacioni model dobivamo sljedeće šeme relacija:
S={RADNIK(JMBG, IME, PREZIME) , (prema pravilu 1.1)
RUKOVODI(JMBG, JMBG_RUKOVODILAC)} (prema pravilu 2.4)

I={RUKOVODI[JMBG] ⊆RADNIK[JMBG],
RUKOVODI[JMBG_RUKOVODILAC] ⊆RADNIK[JMBG]}

Model podataka na slici 14.

u_sastavu (0,M)

PROIZVOD SASTAV
sastoji_se (0,M)

S_PROIZVODA NAZIVP

Slika 14: Rekurzivna veza Sastav kardinaliteta (0,M):(0,M)

predstavlja model sastavnice u kojem jedan proizvod može sam da predstavlja


sastavljeni objekt ili se sastoji od jednog ili više objekata koji ulaze u sastav.

Prevođenjem u relacioni model dobivamo sljedeće šeme relacija:

S={PROIZVOD(S_PROIZVODA, NAZIVP) (prema pravilu 1.1)


SASTAV(S_PROIZVODA, S_PROIZVODA_U_SASTAVU)} (prema pravilu 2.5).

I={ SASTAV[S_PROIZVODA] ⊆ PROIZVOD[S_PROIZVODA],


SASTAV[S_PROIZVODA U SASTAVU] ⊆ PROIZVOD[S_PROIZVODA]}

9
Baze podataka I::Predavanja
http://dl.fit.ba/

You might also like