28
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

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

- 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

- 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

- 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

- 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

- 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

- 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

- 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

- 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

- 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

- 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

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

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

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

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

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

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

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

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

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

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

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

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

› 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

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