Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
1
Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom.
Pravilo 2. Svaki atribut entiteta postaje atribut relacione šeme pod istim imenom.
Pravilo 3. Primarni ključ entiteta postaje primarni ključ relacione šeme.
2
3
Predmet
Naziv Šifra
Šifra Naziv
101 Informacioni sistemi
102 Proizvodni sistemi
103 Menadžment
104 Upravljanje kvalitetom
Predmet
Relacioni model:
Predmet {{sifra,naziv},{sifra}} primarni ključ
MOV
4
Tip poveznika P koji povezuje tip entiteta E1
sa tipom entiteta E2 pevodi se:
› putem posebne šeme relacije (M:N) ili
› putem prostiranja ključa (1:N, 1:1)
- Strukture sa kardinalitetima grupe M:N
5
Radnik Projekat Radi
(0,M) (0,N)
Relacioni model:
S = { Radnik {{mbr,ime,prz}, {mbr}},
Projekat {{ozp, nazp}, {ozp}}.
Radi {{mbr, ozp, brc}, {mbr+ozp}}} – posebna šema relacije
I = { Radi[mbr] Radnik[mbr],
Radi[ozp] Projekat[ozp] }
G = { mbr→ ime+prz, ozp → nazp, mbr+ozp → brc }
mbr
ime
prz
brc
ozp nazp
MOV
- Strukture sa kardinalitetima grupe M:N
6
Radnik Projekat Radi (0,M) (1,N)
Relacioni model:
S= { Radnik {{mbr,ime,prz}, {mbr}},
Projekat {{ozp, nazp}, {ozp}},
Radi{{mbr, ozp, brc}, {mbr+ozp}} }
I = { Radi[mbr] Radnik[mbr],
Radi[ozp] Projekat[ozp],
Projekat[ozp] Radi[ozp] }
G = { mbr→ ime+prz, ozp → nazp, mbr+ozp → brc }
MOV
- Strukture sa kardinalitetima grupe M:N
7
Radnik Projekat Radi (1,M) (1,N)
Relacioni model: S = { Radnik {{mbr,ime,prz}, {mbr}},
Projekat {{ozp, nazp}, {ozp}},
Radi {{mbr, ozp, brc}, {mbr+ozp}} }
I = { Radi[mbr] Radnik[mbr],
Radi[ozp] Projekat[ozp],
Projekat[ozp] Radi[ozp],
Radnik[mbr] Radi[mbr] }
G = {mbr→ ime+prz, ozp → nazp, mbr+ozp → brc }
MOV
- Strukture sa kardinalitetima grupe 1:N
8
Radnik Radno mesto Raspoređen
(0,1) (0,N)
U relacionom modelu:
S = { Radnik{{mbr,ime,prz,ozrm}, {mbr}}, - prostiranje ključa
Radno_mesto{{ozrm, nrm}, {ozrm}} }
I = { Radnik[ozrm] Radno_mesto[ozrm]}
G = { mbr→ ime+prz+ozrm, ozrm → nrm }
mbr
ime
prz ozrm nrm
MOV
- Strukture sa kardinalitetima grupe 1:N
9
Radnik Radno mesto Raspoređen
(1,1) (0,N)
U relacionom modelu:
S= { Radnik {{mbr,ime,prz,ozrm}, {mbr}},
Radno_mesto {{ozrm, nrm}, {ozrm}} }
I = { Radnik[ozrm] Radno_mesto[ozrm],
Null(Radnik,ozrm) = }
G = { mbr→ ime+prz+ozrm, ozrm → nrm }
MOV
- Strukture sa kardinalitetima grupe 1:N
10
Radnik Radno mesto Raspoređen (0,1) (1,N)
U relacionom modelu:
S= { Radnik {{mbr,ime,prz,ozrm}, {mbr}},
Radno_mesto {{ozrm, nrm}, {ozrm}} }
I = { Radnik[ozrm] Radno_mesto[ozrm],
Radno_mesto[ozrm] Radnik [ozrm] } (‘ne postoji radno mesto koje nije dodeljeno nekom radniku’)
G = {mbr → ime+prz+ozrm, ozrm → nrm}
MOV
- Strukture sa kardinalitetima grupe 1:N
11
Radnik Radno mesto Raspoređen (1,1) (1,N)
U relacionom modelu:
S= { Radnik {{mbr,ime,prz,ozrm}, {mbr}},
Radno_mesto {{ozrm, nrm}, {ozrm}} }
I = { Radnik[ozrm] Radno_mesto[ozrm],
Null(Radnik,ozrm) = ,
Radno_mesto[ozrm] Radnik [ozrm] }
G = {mbr→ ime+prz+ozrm, ozrm → nrm}
MOV
- Strukture sa kardinalitetima grupe 1:1
12
Radnik Polisa osiguran
(0,1) (0,1)
U relacionom modelu:
S= { Radnik {{mbr,ime,prz,brp}, {mbr}}, - prostiranje ključa
Polisa {{brp, dat, izn}, {brp}} }
I = { Radnik[brp] Polisa[brp] }
G = { mbr→ ime+prz+brp, brp → dat+izn }
mbr
ime
prz brp
dat
izn
MOV
- Strukture sa kardinalitetima grupe 1:1
13
Radnik Polisa osiguran
(1,1) (0,1)
U relacionom modelu:
S = { Radnik {{mbr,ime,prz,brp}, {mbr}},
Polisa {{brp, dat, izn}, {brp}} }
I = { Radnik[brp] Polisa[brp],
Null(Radnik,brp) = }
G = { mbr→ ime+prz+brp, brp → dat+izn}
MOV
- Strukture sa kardinalitetima grupe 1:1
14
Radnik Polisa osiguran
(1,1) (1,1)
U relacionom modelu:
S= { Radnik {{mbr, ime, prz, brp, dat, izn}, {mbr, brp}, {mbr}} }
- jedna relacija I = { Null(Radnik,brp) = }
(nema međurelacionih ograničenja)
G = {mbr→ ime+prz+brp+dat+izn, brp → mbr}
MOV
Vrši se preimenovanje ključa jedne uloge
rekurzivnog tipa poveznika i njegovo
dodavanje u listu obeležja.
Dva slučaja maksimalnog kardinaliteta:
› 1:N prostiranje ključa
› M:N posebna šema relacije
15
16
Radnik rukovodi (0,1)
(0,N)
je nadređen
je podređen
U relacionom modelu:
S = {Radnik {{mbr,ime,prz,sef}, {mbr}} } – prostiranje ključa
I = {Radnik[sef] Radnik[mbr] }
G = {mbr→ ime+prz+sef}
mbr
ime
prz
MOV
17
Proizvod Sastavnica (0,M)
(0,N)
je deo
sastoji se od
U relacionom modelu:
S = { Proizvod {{ozp, nazp, jm}, {ozp}}, Sastavnica {{ozp, ozd, kol}, {ozp+ozd}} } - posebna šema relacije
I = { Sastavnica[ozp] Proizvod[ozp],
Sastavnica[ozd] Proizvod[ozp]}
G = {ozp→ nazp+jm, ozp+ozd → kol}
ozp
nazp
jm
kol
MOV
Tip entiteta dete je identifikaciono zavistan
18
Roditelj Dete R_D
ID
U relacionom modelu:
S = { Roditelj {{sifr, ime, prz}, {sifr}},
Dete {{sifr, rbrD ,imeD}, {sifr+rbrD}} }
I = { Dete[sifr] Roditelj[sifr] }
G = { sifr → ime + prz, sifr+rbrD → imeD }
(0,N) (1,1)
sifr ime
prz rbrD imeD
MOV
Primer - Prevođenje IS_A hijerarhije
19
Stanovnik
Student Radnik
IS_A
(1,M)
mbr
ime prz
zan Prvi način:
S = { { Stanovnik {mbr,ime,prz,zan},{mbr}},
Student {{mbr, bri, bpi},{mbr,bri},{mbr}},
Radnik {{mbr,ozr,spr},{mbr,ozr},{mbr}} }
I = { Student[mbr] Stanovnik[mbr],
Radnik[mbr] Stanovnik[mbr],
Stanovnik[mbr] Student[mbr] U Radnik[mbr] }
G = { mbr → ime + prz + zan,
mbr → bri + bpi, bri → mbr,
mbr → ozr + spr, ozr → mbr }
bri bpi ozr spr
20
Stanovnik
Student Radnik
IS_A
(1,M)
Drugi način: (samo kada je klasifikacija totalna – DG=1)
S = { Student {{mbr,ime,prz,zan,bri,bpi}, {mbr,bri},{bri}},
Radnik {{mbr,ime,prz,zan,ozr,spr}, {mbr,ozr},{ozr}} }
I = θ (nema međurelacionih ograničenja)
G = { mbr → ime + prz + zan + bri + bpi, bri → mbr,
mbr → ime + prz + zan + ozr + spr, ozr → mbr }
21
Stanovnik
Student Radnik
IS_A
(1,M)
Treći način:
S = { Stanovnik{ {mbr,ime,prz,zan,bri,bpi,ozr,spr}, {mbr} } }
I = θ (nema međurelacionih ograničenja)
G = { mbr → ime + prz + zan + bri + bpi + ozr + spr }
Svaki entitet ER modela prevesti u relacionu šemu
sa istim imenom.
Svaki atribut entiteta prevesti u atribut relacione
šeme pod istim imenom.
Ključni atribut(i) (primarni ključ) odnosno
identifikator entiteta prevesti u primarni ključ
relacione šeme
22
Tipovi poveznika čiji kardinaliteti pripadaju
grupi M:N se u relacionom modelu
predstavljaju samo putem posebne šeme
relacije.
Primarni ključ ovako nastale šeme relacije je
složen od primarnih ključeva tipova entiteta
koji učestvuju u vezi.
Ako je bilo koji donji kardinalitet (ili oba)
DG=1, dodaje se odgovarajući inverzni
referencijalni integritet.
23
Tipovi poveznika čiji kardinaliteti pripadaju
grupi 1:N mogu se u relacionom modelu
predstaviti bilo putem posebne šeme
relacije, bilo putem prostiranja ključa.
Prostiranje ključa je bolje rešenje.
Prostiranjem ključa se primarni ključ tipa
entiteta na N strani poveznika uključuje u
skup obeležja šeme relacije koja
predstavlja tip entiteta na 1 strani.
24
Dodaje se referencijalni integritet za strani
ključ.
Minimalni kardinaliteti unose sledeće
specifičnosti:
› U slučaju da imamo sa jedne strane
kardinalitet (1,1), dodaje se zabrana null
vrednosti.
› U slučaju da imamo sa druge strane (1, N),
dodaje se inverzni referencijalni integritet.
25
Tipovi poveznika sa kardinalitetima grupe
1:1 mogu se u relacionom modelu
predstaviti bilo putem posebne šeme
relacije, bilo putem prostiranja ključa.
Prostiranje ključa predstavlja bolje rešenje.
Minimalni kardinaliteti unose sledeće
specifičnosti:
26
› Ako su oba donja kardinaliteta 0, vrši se bilo
prostiranje ključa iz jedne šeme relacije u
drugu ili obrnuto (potreban je jedan
referencijalni integritet).
› Ako su donji kardinaliteti a=1 i b=0, tada se
vrši prostiranje ključa u šemu relacije gde je
donji kardinalitet 1 (potreban je jedan
referencijalni integritet i jedno ograničenje
null vrednosti).
› Ako su oba donja kardinaliteta 1 tada dva
entiteta treba predstaviti jednom šemom
relacije.
27
Prevođenje slabog tipa entiteta
› Vrši se prostiranje ključa
Prevođenje rekurzivnog tipa poveznika
› Važe ista pravila kao i za prevođenje regularnih
tipova poveznika samo se mora izvršiti
preimenovanje ključa koji migrira.
Prevođenje gerunda
› Prevodi se u posebnu šemu relacije. Primenjuju
se pravila prevođenja regularnih poveznika
tipa M:N.
› Pri povezivanju gerunda sa drugim
elementima, gerund se posmatra kao tip
entiteta i tako se tretira pri prevođenju te veze. 28