Prevođenje ER modela u relacioni - vps.ns.ac.rs · Prevođenje slabog tipa entiteta ›Vrši se...

Preview:

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