0
Baze podataka (Računske vežbe)
Prevođenje ER modela u relacioni model
Računarstvo i informatika
Katedra za računarstvo
Elektronski fakultet u Nišu
Letnji semestar 2011/2012
0Sadržaj
Relacioni model – Koncepti
Predstavljanje šeme relacione baze
podataka
Prevođenje ER modela u relacioni model
Baza podataka – PREDUZEĆE
Baze podataka 2
0Relacioni model - koncepti
Tvorac relacionog modela podataka
je E.F. (Ted) Codd (1970)
Najpopularniji i najrasprostranjeniji model
podataka.
Teorijska osnova: matematička teorija
relacija i logika prvog reda.
Reprezentacija relacije: dvodimenzionalna
tabela.
Baze podataka 3
0Relacioni model - koncepti
Relacija – tabela sa vrstama i kolonama.
Atribut relacije – imenovana kolona relacije.
Domen atributa – skup dozvoljenih vrednosti atributa.
Torka relacije – vrsta (red) relacije.
Stepen relacije – broj atributa koje relacija sadrži.
Kardinalnost relacije – broj torki koje relacija sadrži.
Relaciona baza podataka – kolekcija normalizovanih relacija sa različitim imenom.
Šema relacije – opis relacije koji sadrži: ime relacije, imena i domen atributa.
Šema relacione baze podataka – skup šema relacije
Baze podataka 4
0Relacioni model - koncepti
Baze podataka 5
STUDENT ImeIndeks Adresa Godine Prosek
Petar Janković10112 Obilićev Venac 157 21 4,23
Branka Rajković10234 Topličina 12/23 21 4,89
Violeta Jovanović11435 Nemanjina 12 21 4,32
Janko Stanković11678 Nikole Pašića 23/45 21 4,03
AtributiIme relacije
Torke
0
Relacioni model - koncepti
EER model Relacioni model
Formalno Neformalno
Tip entiteta Relacija Tabela
Šema tipa entiteta Šema relacije Opis tabele
Instanca eniteta Torka Vrsta
Atribut Atribut Kolona
Domen (skup vrednosti)
atributa
Domen Tip podataka
Baze podataka 6
0Relacioni model - koncepti
Svojstva relacija
◦ Relacija ima ime koje se razlikuje od imena drugih relacija u šemirelacione baze podatka.
◦ Svaka ćelija tabele kojom je relacija predstavljena sadrži samojednu atomičnu vrednost.
◦ Svi atributi jedne relacije imaju različito ime.
◦ Sve vrednosti jednog atributa su iz istog domena.
◦ Sve torke jedne relacije su različite (nema duplikata).
◦ Redosled atributa u relaciji nije od značaja.
◦ Redosled torki u relaciji nema teorijskog značaja ali može uticatina efikasnost pristupa torkama relacije.
Baze podataka 7
0Relacioni model - koncepti
Ključevi relacije
◦ Ključ relacije – atribut ili skup atributa koji na jedinstveni načinidentifikuje svaku torku relacije.
◦ Primarni ključ – ključ kandidat koji je odabran da na jedinstveninačin identifikuje torke unutar relacije.
◦ Spoljni ključ - atribut ili skup atributa jedne relacije koji seuparuje sa ključem kandidatom neke druge relacije.
Baze podataka 8
0Relacioni model - koncepti
Relacioni integritet:
◦ Domenska ograničenja (domain constraints) – ograničava skupdozvoljenih vrednosti atributa relacije.
◦ Integritet entiteta – nijedan atribut primarnog ključa relacije nesme imati NULL vrednost.
◦ Referencijalni integritet – vrednosti spoljnih ključeva moraju bitijednake vrednosti ključa kandidata neke torke u matičnoj relacijiili mogu imati NULL vrednost.
◦ Ograničenja poslovanje (business constraints) – ograničenja kojadefiniše korisnik ili administrator baze podataka a proističu izpravila poslovanja realnog sistema za koji se baza projektuje.
Baze podataka 9
0Predstavljanje šeme relacione baze
podataka
RADNIK(LIme, SSlovo, Prezime, MatBr, DatRodj,
Pol, Plata, Adresa, MatBrojS, BrSek)
PROJEKAT(Naziv, LokPr, BrojPr, BrS)
Baze podataka 10
0Predstavljanje šeme relacione baze
podataka
RADNIK(LIme, SSlovo, Prezime, MatBr, DatRodj, Pol,
Plata, Adresa, MatBrojS, BrSek)
Primary key MatBr
Foreign key MatBrojS references RADNIK(MatBr)
Foreign key BrojSek references SEKTOR(SBroj)
Baze podataka 11
0Dijagram relacija
Baze podataka 12
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa MatBrojS BrSek
RADNIK
Naziv LokPr BrojPr BrS
PROJEKAT
0Prevođenje ER modela u relacioni
model
Jedna od značajnih prednosti ER modela
nad ostalim modelima za konceptualno
projektovanje je mogućnost direktnog
prevođenja u relacioni model
(implementacioni model).
Preslikavanje se odvija kroz sedam
sukcesivnih koraka.
Primer: baza podataka PREDUZEĆE.
Baze podataka 13
0Baza podataka PREDUZEĆE
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 14
01. korak – Prevođenje regularnih tipova
entitetaZa svaki regularni tip entiteta E u ER šemi kreira se relacija R koja sadrži sve prosteatribute i sve proste komponente svih složenih atributa iz E. Jedan od ključnih atributa izE se uzima za primarni ključ relacije R. Ako je ključni atribut u E složen, tada se njegovskup prostih atributa uzima zajedno kao primarni ključ u R.
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 15
0
SEKTOR
PROJEKAT
RADNIK
1. korak – Prevođenje regularnih tipova
entiteta
Baze podataka 16
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa
Naziv LokPr BrojPr
Naziv SektorBr
0
2. korak – Prevođenje slabih tipova entiteta
Za svaki slabi tip entiteta S u ER šemi čiji je vlasnik tip entiteta E kreira se relacija R kojasadrži sve proste atribute iz S i sve proste komponente svih složenih atributa iz S.Relacija R kao spoljašnji ključ sadrži sve atribute primarnog ključa relacije tipa entiteta E.Za primarni ključ relacije R uzima se kombinacija primarnog ključa vlasnika E iparcijalnog ključa slabog tipa entiteta S ukoliko on postoji.
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 17
0
2. korak – Prevođenje slabih tipova entiteta
Baze podataka 18
SEKTOR
PROJEKAT
RADNIK
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa
Naziv LokPr BrojPr
Naziv SektorBr
MatBrRad Ime Pol Srodstvo DatRodj
CLAN_PORODICE
0
3. korak – Prevođenje veza 1:1
Za svaki binarni tip veza R(1:1) u ER šemi identifikuju se relacije S i T koje odgovaraju tipovima entiteta kojiparticipiraju u R. Bira se jedna od ove dve relacije, recimo S, i u nju se kao spoljašnji ključ uključuje primarni ključrelacije T. Za relaciju S treba birati tip entiteta koji totalno participira u R. Kao atribute relacije S treba uključitisve proste atribute i sve proste komponente složenih atributa tipa veze R.
Može se izabrati i alternativno rešenje po kome se formira zajednička relacija za tipove entiteta S i T u koju seuključuju svi atributi iz obe relacije. Ovo je rešenje dobro kada oba tipa entiteta totalno participiraju u R i kadane participiraju ni u jednom drugom tipu veze.
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 19
0
CLAN_PORODICE
3. korak – Prevođenje veza 1:1
Baze podataka 20
SEKTOR
PROJEKAT
RADNIK
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa
Naziv LokPr BrojPr
Naziv SektorBr MatBrR DatPost
MatBrRad Ime Pol Srodstvo DatRodj
0
4. korak – Prevođenje veza 1:N
Za svaki binarni tip veze R(1:N) u ER šemi identifikuje se relacija S koja participira na Nstrani. U S se kao spoljašnji ključ uključuje primarni ključ relacije T koja predstavlja tipentiteta koji participira na 1 strani. Kao atribute relacije S treba uključiti sve prosteatribute i sve proste komponente složenih atributa tipa veze R.
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 21
0
CLAN_PORODICE
4. korak – Prevođenje veza 1:N
Baze podataka 22
SEKTOR
PROJEKAT
RADNIK
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa
Naziv LokPr BrojPr BrS
Naziv SektorBr MatBrR DatPost
MatBrojS BrSek
MatBrRad Ime Pol Srodstvo DatRodj
0
5. korak – Preslikavanje veza M:N
Za svaki binarni tip veze R(M:N) u ER šemi kreira se nova relacija S. U S se kaospoljašnji ključevi uključuju primarni ključevi relacija koje predstavljaju tipove entitetakoji participiraju u R. Kombinacija ovih spoljašnjih ključeva formira primarni ključ relacijeS. U relaciji S se takođe uključuju svi prosti atributi i sve proste komponente složenihatributa tipa veze R.
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 23
0
5. korak – Preslikavanje veza M:N
Baze podataka 24
CLAN_PORODICE
SEKTOR
PROJEKAT
RADNIK
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa
Naziv LokPr BrojPr BrS
Naziv SektorBr MatBrR DatPost
MatBrojS BrSek
MatBrRad Ime Pol Srodstvo DatRodj
Mbr BrPr Sati
RADI_NA
06. korak – Preslikavanje viševrednosnih
atributaZa viševrednosni atribut A tipa entiteta E ili tipa poveznika P kreira se nova relacija Rkoja sadrži atribut A i primarni ključ K relacije kojom je predstavljen tip entiteta E ili tipveze P. Za primarni ključ relacije R bira se konbinacija A i K. Ako je viševrednosniatribut složen uključuju se sve njegove proste komponente.
Naziv
CLAN-PORODICE
RADNIK
SEKTOR
PROJEKAT
JE-NOSILAC
Broj
Lokacija
RADI-NA
DatRodj
Ime
Pol
Srodstvo
Sati
RUKOVODI
RADI-U
DatumPostBrojRadnika
Naziv
Sbroj
Lokacija
NADZOR
Adresa
PlataPol
Ime
Prezime
SSlovo
LIme
MatBr
DatRodj
Rukovodi-
Sektorom
Nosi-
Projekat
ZavisiN
N
1
N
N
1
1
1
1
N
M
1
nadredjen podredjen
Izvrsilac
Rukovodilac
Radnik Sektor
Sektor-nosilac
RadnikProjekat
ZAVISI_OD
Baze podataka 25
0
Baze podataka 26
CLAN_PORODICE
SEKTOR
PROJEKAT
RADNIK
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa
Naziv LokPr BrojPr BrS
Naziv SektorBr MatBrR DatPost
MatBrojS BrSek
MatBrRad Ime Pol Srodstvo DatRodj
Mbr BrPr Sati
RADI_NA
BrS Lokacija
LOK_SEK
6. korak – Preslikavanje viševrednosnih atributa
0
7. korak – Preslikavanje n-arnih veza
Za svaki n-arni tip veze R, n > 2, kreira se nova relacija S. U S se kao spoljašnji ključeviuključuju primarni ključevi relacija koje predstavljaju tipove entiteta koji participiraju u R.Kombinacija ovih spoljašnjih ključeva formira primarni ključ relacije S. U relaciji S setakođe uključuju svi prosti atributi i sve proste komponente svih složenih atributa n-arnog tipa veze.
Ako neki tip entiteta E participira u R sa ograničenjem (min,max) i ako je min = max=1,tada se kao primarni ključ relacije S može uzeti onaj spoljašnji ključni atribut kojim serelacija S referencira na relaciju kojom je predstavljen tip entiteta E.
Baze podataka 27
DIme
DOBAVLJAČ
PIme
PROJEKAT
BDela
DEO
DIme Pime BDela Količina
SNABDEVA
0Relacioni model baze podataka
PREDUZEĆE
Baze podataka 28
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa MatBrojS BrSek
RADNIK
Naziv LokPr BrojPr BrS
PROJEKAT
Naziv SektorBr MatBrR DatPost
SEKTOR
MatBrRad Ime Pol Srodstvo DatRodj
CLAN_PORODICE
BrS Lokacija
LOK_SEK
Mbr BrPr Sati
RADI_NA
0Baza podataka - PREDUZEĆE
Baze podataka 29
LIme SSlovo Prezime MatBr DatRodj Pol Plata Adresa MatBrojS BrSek
RADNIK
Naziv LokPr BrojPr BrS
PROJEKAT
Naziv SektorBr MatBrR DatPost
SEKTOR
MatBrRad Ime Pol Srodstvo DatRodj
CLAN_PORODICE
BrS Lokacija
LOK_SEK
Mbr BrPr Sati
RADI_NA
0Baza podataka - PREDUZEĆE
Baze podataka 30
RADNIK
SEKTOR LOK_SEK
PROJEKAT
0Baza podataka - PREDUZEĆE
Baze podataka 31
RADI_NA
CLAN_PORODICE
0Baza podataka - PREDUZEĆE
Kompozitni atribut
Baze podataka 32
RADNIK
0Baza podataka - PREDUZEĆE
Unarna (rekurzivna) veza
Baze podataka 33
RADNIK
0Baza podataka - PREDUZEĆE
Veza 1:1
Baze podataka 34
RADNIK
SEKTOR
0Baza podataka - PREDUZEĆE
Veza 1:N
Baze podataka 35
SEKTOR
PROJEKAT
0Baza podataka - PREDUZEĆE
Veza M:N
Baze podataka 36
RADNIK
PROJEKAT
RADI_NA
0Baza podataka - PREDUZEĆE
Slabi tip entiteta
Baze podataka 37
RADNIK
CLAN_PORODICE
0Baza podataka - PREDUZEĆE
Viševrednosni atribut
Baze podataka 38
SEKTOR
LOK_SEK