280 likes | 963 Views
Prevođenje ER modela u relacioni. Baze podataka. Prevođenje ER modela u relacioni. Pravilo 1. Svaki entitet (objekat) ER modela postaje relaciona šema sa istim imenom. Pravilo 2. Svaki atribut entiteta postaje atribut relacione šeme pod istim imenom.
E N D
Prevođenje ER modela u relacioni Baze podataka
Prevođenje ER modela u relacioni • Pravilo 1.Svaki entitet (objekat) ER modelapostaje relaciona šema sa istim imenom. • Pravilo 2. Svaki atribut entiteta postaje atribut relacione šemepod istim imenom. • Pravilo 3.Primarni ključ entiteta postaje primarni ključ relacione šeme.
Predmet Šifra Naziv Prevođenje tipa entiteta Predmet U relacionom modelu: Predmet {{sifra,naziv},{sifra}}
Prevođenje regularnog tipa poveznika • Tip poveznika P koji povezuje tip entiteta E1 sa tipom entiteta E2 pevodi se: • putem posebne šeme relacije (M:N) • putem prostiranja ključa (1:N, 1:1)
Primeri - MOV Strukture sa kardinalitetima grupe M:N ime brc ozp nazp mbr prz (0,M) (0,N) Radnik Radi Projekat 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}
Primeri - MOV Strukture sa kardinalitetima grupe M:N (1,N) Radnik (0,M) Radi Projekat 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}
Primeri - MOV Strukture sa kardinalitetima grupe M:N Radnik (1,M) Radi (1,N) Projekat 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}
Primeri - MOV Strukture sa kardinalitetima grupe 1:N ime ozrm nrm mbr prz (0,1) (0,N) Radnik Raspoređen Radno mesto U relacionom modelu: S= {Radnik{{mbr,ime,prz,ozrm},{mbr}}, - prostiranje ključa Radno_mesto{{orm, nrm}{orm}}} I = {Radnik[orm] Radno_mesto[orm]} G= {mbr→ ime+prz+ozrm, ozrm→ nrm}
Primeri - MOV Strukture sa kardinalitetima grupe 1:N (1,1) (0,N) Radnik Raspoređen Radno mesto U relacionom modelu: S= {Radnik{{mbr,ime,prz,ozrm},{mbr}}, Radno_mesto{{ozrm, nrm}{ozrm}}} I = { Radnik[orm] Radno_mesto[orm], Null(Radnik,ozrm)= } G = {mbr→ ime+prz+ozrm, ozrm→ nrm}
Primeri - MOV Strukture sa kardinalitetima grupe 1:N (1,N) Radnik (0,1) Raspoređen Radno mesto 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}
Primeri - MOV Strukture sa kardinalitetima grupe 1:N Radnik Raspoređen Radno mesto (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}
Primeri - Strukture sa kardinalitetima grupe 1:1 MOV ime dat mbr prz brp izn (0,1) (0,1) Radnik osiguran Polisa 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}
Primeri - MOV Strukture sa kardinalitetima grupe 1:1 (1,1) (0,1) Radnik osiguran Polisa 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}
Primeri - MOV Strukture sa kardinalitetima grupe 1:1 (1,1) (1,1) Radnik osiguran Polisa U relacionom modelu: S= {Radnik{{mbr, ime, prz, brp, dat, izn}, {mbr, brp},{mbr}}} - jedna relacija I = Ø (nema međurel. ograničenja) G = {mbr→ime+prz+brp+dat+izn, brp→mbr}
Prevođenje rekurzivnog tipa poveznika • Preimenovanje obeležja (preimenovanje ključa jedne uloge rekurzivnog tipa poveznika) • Dva slučaja maksimalnog kardinaliteta: • 1:N prostiranje ključa • M:N posebna šema relacije
Primeri - Rekurzivne veze tipa 1: N MOV nadređeni (0,N) (0,1) Radnik rukovodi podređeni mbr prz ime U relacionom modelu: S= {Radnik{{mbr,ime,prz,sef},{mbr}}} – prostiranje ključa I= {Radnik[sef] Radnik[mbr]} G= {mbr→ ime+prz+sef}
Primeri - Rekurzivne veze tipa M : N MOV Je deo (0,N) (0,M) Proizvod Sastavnica Sastoji se od ozp jm nazp kol 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}
Primeri - Slabi tip entiteta • Tip entiteta dete je identifikaciono zavistan MOV ID (0,N) (1,1) Roditelj R_D Dete sifr prz rbr ime ime U relacionom modelu: S= { Roditelj{{sifr, ime, prz},{sifr}} Dete{{sifr,rbr,ime},{sifr+rbr}} I = {Dete[sifr] Roditelj[sifr]}
Primeri - ime prz Kardinaliteti IS_A hijerarhije jmbr zan Stanovnik Prvi način: S={Stanovnik{{jmbr,ime,prz,zan},{jmbr}} Student{{jmbr, bri, bpi},{jmbr,bri},{jmbr}} Radnik{{jmbr,ozr,spr},{jmbr,ozr},{jmbr}}} I = {Student[jmbr] Stanovnik[jmbr], Radnik[jmbr] Stanovnik[jmbr], Stanovnik[jmbr] Student[jmbr] U Radnik[jmbr]} (1,M) IS_A Student Radnik bri bpi ozr spr
Primeri - Kardinaliteti IS_A hijerarhije Drugi način: (samo kada je klasifikacija totalna) S={Student{{jmbr,ime,prz,zan,bri,bpi}, {jmbr,bri},{bri}} Radnik{{jmbr,ime,prz,zan,ozr,spr}, {jmbr,ozr},{ozr}}} I = {Student[jmbr] Stanovnik[jmbr], Radnik[jmbr] Stanovnik[jmbr], Stanovnik[jmbr] Student[jmbr] U Radnik[jmbr]} Stanovnik (1,M) IS_A Student Radnik
Primeri - Kardinaliteti IS_A hijerarhije Treći način: S={Stanovnik{{jmbr,ime,prz,zan,bri,bpi,ozr,spr},{jmbr}} Stanovnik (1,M) IS_A Student Radnik
Redosled radnji pri prevođenju u relacioni model • Svaki entitet ER modelaprevesti u relacionu šemu sa istim imenom. • Svaki atribut entiteta prevesti u atribut relacione šemepod istim imenom. • Ključni atribut(i) (primarni ključ) odnosno identifikatorentiteta prevesti u primarni ključ relacione šeme
Prevođenje tipova poveznika grupe M:N • Tipovi poveznika čiji kardinaliteti pripadaju grupi M:N se u relacionom modelu predstavljaju samo putem posebne šeme relacije. • Ako je bilo koji donji kardinalitet a=1 (ili oba) dodaje se odgovarajući inverzni referencijalni integritet.
Prevođenje tipova poveznika grupe 1: N • 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. • Dodaje se referencijalni integritet za strani ključ. • U slučaju da imamo sa jedne strane kardinalitete (1,1), dodaje se zabrana null vrednosti. • U slučaju da imamo (1,N) sa druge strane, dodaje se inverzni referencijalni integritet.
Prevođenje tipova poveznika grupe 1:1 • 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:
Prevođenje tipova poveznika grupe 1:1 • 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 (dodaje se jedno ograničenje null vrednosti). • Ako su oba donja kardinaliteta 1 tada dva entiteta treba predstaviti jednom šemom relacije.
Prevođenje specijalnih slučajeva • Prevođenje slabog tipa entitetaa • 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 M:N, a gerund se posmatra kao tip entiteta pri prevođenju poveznika koji spaja taj gerund sa drugim elementima.