prevođenje er modela u relacioni - vps.ns.ac.rs · prevođenje slabog tipa entiteta ›vrši se...
TRANSCRIPT
![Page 1: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/1.jpg)
1
![Page 2: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/2.jpg)
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
![Page 3: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/3.jpg)
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
![Page 4: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/4.jpg)
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)
![Page 5: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/5.jpg)
- 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
![Page 6: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/6.jpg)
- 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
![Page 7: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/7.jpg)
- 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
![Page 8: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/8.jpg)
- 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
![Page 9: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/9.jpg)
- 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
![Page 10: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/10.jpg)
- 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
![Page 11: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/11.jpg)
- 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
![Page 12: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/12.jpg)
- 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
![Page 13: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/13.jpg)
- 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
![Page 14: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/14.jpg)
- 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
![Page 15: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/15.jpg)
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
![Page 16: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/16.jpg)
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
![Page 17: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/17.jpg)
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
![Page 18: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/18.jpg)
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
![Page 19: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/19.jpg)
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
![Page 20: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/20.jpg)
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 }
![Page 21: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/21.jpg)
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 }
![Page 22: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/22.jpg)
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
![Page 23: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/23.jpg)
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
![Page 24: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/24.jpg)
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
![Page 25: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/25.jpg)
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
![Page 26: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/26.jpg)
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
![Page 27: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/27.jpg)
› 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
![Page 28: Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se prostiranje ključa Prevođenje rekurzivnog tipa poveznika ›Važe ista pravila kao](https://reader031.vdocuments.site/reader031/viewer/2022020115/5e0afa0e917f92348f0ae812/html5/thumbnails/28.jpg)
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