910 likes | 1.28k Views
RELACIJSKO MODELIRANJE PODATAKA. Analiza potreba. Modeliranje entiteta i veza. Pretvorba u relacije. Normalizacija relacija. ENTITETI. DEF: Entitet je skup objekata iz realnog svijeta koji imaju neka zajedni čka svojstva . Svojstva entiteta nazivaju se atributi. E = {e 1 , e 2 , e 3 , ….}
E N D
Analiza potreba Modeliranje entiteta i veza Pretvorba u relacije Normalizacija relacija
ENTITETI DEF: Entitet je skup objekata iz realnog svijeta koji imaju neka zajednička svojstva. Svojstva entiteta nazivaju se atributi. E = {e1, e2, e3, ….} - Za prikaz entiteta potrebno je utvrditi: - SELEKCIJU ATRIBUTA - INTEGRITET ATRIBUTA – tip, ograničenja, pravila - KARDINALITET ATRIBUTA
KARDINALITET ATRIBUTA DEF: Broj koji kazuje koliko vrijednosti pojedini atribut daje za opis jednog elementa entiteta. card(A,E) = (min card(A,E), max card (A,E)) min card (IME,STUDENT) = 1 max card (IME,STUDENT) = 1 card (IME,STUDENT) = (1,1) (0,1) card(ZAVRŠENA ŠKOLA, STUDENT)=
atributi sa min card = 0 nisu obavezni • VIŠEVRIJEDNOSNI ATRIBUTI - atributi koji mogu imati više vrijednosti za pojedini element entiteta card(SPORT, STUDENT) = (0, n)
Dvije vrste atributa: • OPISNI ATRIBUTI • IDENTIFIKACIJSKI ATRIBUTI DEF: IDENTIFIKATOR (identifikacijski atribut) je atribut koji jedinstveno određuje pojedine elemente entiteta • u entitetu ne mogu postojati dva elementa sa istom vrijednošću identifikatora • identifikator sa card = (1,1) - PRIMARNI KLJUČ (primary key)
(1,1) (1,1) card (IME, STUDENT) = card (PREZIME, STUDENT) = card (DAT_ROD, STUDENT) = card (MJESTO_ROD, STUDENT) = card (JMBG, STUDENT) = card (ZAVRSENA_SK, STUDENT) = (1,1) (1,1) (0,1) (0,1) • identifikator? • primarni ključ?
DIJAGRAM ENTITETA STUDENT_ID (1,1) SPORT ZAVRSENA_SK (0,1) (0,n) MJESTO_ROD (1,1) STUDENT (0,1) (1,1) JMBG IME (1,1) (1,1) PREZIME DAT_ROD
SLOŽENI ATRIBUTI • sastavljeni od atributa koji u procesu modeliranja podataka čine ligičke cjeline • primjer: ADRESA – MJESTO + ULICA card (ULICA, STUDENT) = (0,1) card (MJESTO, STUDENT) = (1,1) ULICA (0,1) MJESTO ADRESA (0,1) STUDENT
kardinalitet složenog atributa: min card (A,E) = max(min card(A1,E), min card(A2,E), …, min card(An,E)) max card (A,E) = max(max card(A1,E), max card(A2,E), …, max card(An,E)) card(ADRESA, STUDENT) = (1,1) • složeni atributi mogu biti identifikatori : • - svi atributi koji čine složeni imaju card = (1,1) • - složeni atr. je jedinstven za svaki element
RELACIJE • entiteti su međusobno povezani logičkim vezama – relacijama DEF: KARDINALITET ENTITETA U RELACIJI definiran je brojem veza pojedinog elementa tog entiteta sa elementima entiteta s kojim je relacijski povezan
RELACIJA 1x1 ONE-TO-ONE DEF: Za dva entiteta E i F koji sudjeluju u relaciji R jedan-na jedan vrijedi: card(E,R) = (0,1) card(F,R) = (0,1) - svaki element skupa E može biti povezan samo sa jednim elementom skupa F, ali i ne mora. Isto vrijedi i za elemente skupa F.
- primjer: STUDENT i PIN STUDENT PIN PRIJAVA card(STUDENT, PRIJAVA) = card(PIN,PRIJAVA) = (0,1) (0,1)
RELACIJA 1xn ONE-TO-MANY DEF: Ako dva entiteta E i F ostvaruju relaciju R, pri čemu vrijedi: card(E,R) = (0,n) card(F,R) = (1,1) takva relacija je tipa 1xn
- primjer: STUDENT i UPISNI LIST STUDENT UPISNI LIST PREDAJE card(STUDENT, PREDAJE) = card(UPISNI LIST,PREDAJE) = (0,n) (1,1)
RELACIJA nxn MANY-TO-MANY DEF: Ako dva entiteta E i F ostvaruju relaciju R, pri čemu vrijedi: card(E,R) = (0,n) card(F,R) = (0,n) takva relacija je tipa nxn - svaki element skupa E može biti povezan sa više elemenata skupa F, ali i ne mora. Isto vrijedi i za elemente skupa F.
- primjer: UPISNI LIST i PREDMET UPISNI LIST PREDMET UPISUJE card(UPISNI LIST, UPISUJE) = card(PREDMET,UPISUJE) = (0,n) (0,n)
relacije više-na-više, osim povezivanja entiteta, sa sobom mogu donijeti i atribute koji su posljedica relacijske veze UPISNI LIST PREDMET UPISUJE OCJENA DATUM
SLOŽENIJE VEZE • INVOLVIRANA VEZA • povezuje jedan tip entiteta s istim tipom entiteta • funkcionalnost može biti 1x1, 1xn, nxn • primjeri: (0,1) (1,N) U BRAKU SA OSOBA SURADNIK JE ŠEFZA (0,1) (1,1) (1,M) DIO PROIZVODA SADRŽI (1,N)
JE JE JE • PODTIPOVI - entitet E1 je podtip entiteta E2 ako je svaki element entiteta E1 ujedno i element entiteta E2 - E1 nasljeđuje sve atribute od E2, no može imati i dodatne atribute OSOBA STUDENT NASTAVNIK REDOVNI PROFESOR
IZVOZI • TERNARNE VEZE - uspostavljaju se između tri entiteta - uvode se samo onda kada se ne mogu rastaviti na binarne ZEMLJA (0,N) (0,M) (0,P) KOMPANIJA PROIZVOD
RELACIJSKI MODEL • iz E-R dijagrama rekonstruira se relacijski model • baza se sastoji od skupa tabela tzv. RELACIJA TRANSFORMACIJSKA PRAVILA • Entitet kao skup objekata prikazuje se tablicom • redak – element entiteta • stupac – atribut • head (IME TABLICE) = {atriburt 1, atribut 2, …..} • PK(IME TABLICE) = naziv atributa
2. Viševrijednosni atributi ne prikazuju se jednom kolonom nego posebnom tablicom - nova tablica sastoji se od dva stupca: - primarni ključ entiteta - viševrijednosni atribut • head(S) = {E_id, S} • PK (S) = {E_id, S} • E_id = PK (E)
primjer: STUDENT – SPORT • formira se nova tablica SPORT: SPORT = (student_id, sport)
3. Prikaz relacije 1xn • E i F u relaciji R • card (E, R) = (0,n) • card (F, R) = (1,1) Relacija se ostvaruje preko STRANOG KLJUČA: - tablica entiteta F proširuje se kolonom E_id = PK(E) – strani ključ (foreign key)
primjer: STUDENT – UPISNI LIST card (STUDENT, PREDAJE) = (0,n) card(UPISNI LIST, PREDAJE) = (1,1) - u UPISNI LIST se dodaje atribut koji je u entitetu STUDENT primarni ključ – student_id
4. Prikaz relacije nxn • E i F u relaciji R • card (E, R) = (0,n) • card (F, R) = (0,n) Relacija se ostvaruje formiranjem nove tzv. RELACIJSKA TABLICE: E_id = PK(E) = FK(R) F_id = PK(F) = FK(R) PK(R) = (E_id, F_id) - nova tablica se proširuje atributima koji su posljedica relacije među entitetima
primjer: UPISNI LIST – PREDMET card(UPISNI LIST, UPISUJE) = (0,n) card(PREDMET, UPISUJE) = (0,n) PK(UPISNI LIST) = FK(UPISUJE) = ulist_id PK(PREDMET) = FK(UPISUJE) = predmet_id PK(UPISUJE) = (ulist_id, predmet_id)
5. Prikaz relacije 1x1 • E i F u relaciji R • card (E, R) = (0,1) • card (F, R) = (0,1) • E_id = PK(E), F_id = PK(F) Relacija se može ostvariti na tri načina: a) E_id = PK(E) = FK(F) b) F_id = PK(F) = FK(E) c) proširivanjem tablice E sa kolonama tablice F
6. Prikaz involviranih veza • ovisi o tipu veze: OSOBA (JMBG, PREZIME_IME, ADRESA) BRAK(JMBG_MUZA, JMBG_ZENE, DTM_VJ) SURADNIK(ID, ID_SEFA, PREZIME_IME) DIO_PROIZVODA(BR_DIJELA, IME_DIJELA, OPIS) SADRZI(BR_DIJ_SLOZENOG, BR_DIJ_JEDNOSTAVNOG, KOLICINA)
7. Prikaz podtipova • podtip se prikazuje posebnom relacijom koja sadrži primarne atribute nadređenog tipa i atribute specifične za podtip - primjer: OSOBA(JMBG, atributi zajednički za sve tipove) STUDENT(JMBG, atributi specifični za studente) NASTAVNIK(JMBG, atributi specif. za nastavnike) PROFESOR(JMBG, atributi specifićni za profesore)
8. Prikaz ternarnih veza • ternarna veza se prikazuje posebnom relacijom koja sadrži primarne atribute svih triju tipova entiteta, zajedno s eventualnim atributima veze • primjer: KOMPANIJA(IME_KOMPANIJE, …) PROIZVOD(IME_PROIZVODA, …) ZEMLJA(IME_ZEMLJE, …) IZVOZI(IME_KOMPANIJE, IME_PROIZVODA, IME_ZEMLJE)
PRIMARNI KLJUČ • atribut ili skup atributa koji jedinstveno identificiraju svaki element entiteta • mora zadovoljavati: 1. JEDINSTVENOST 2. MINIMALNOST 3. PRAVILO INTEGRITETA PK
primjer: dekompozicija atributa • STUDENT – atribut MJESTO RODJENJA - više različitih mjesta istog naziva - redefinicija atributa MJESTO kao posebnog entiteta DRŽAVA (1,1) MJESTO_ID (1,1) OPĆINA (0,1) STUDENT (0,1) (1,1) IME MJESTA POŠTANSKI BROJ
novi entitet se nalazi u relaciji sa entitetom STUDENT: MJESTO STUDENT ROĐENJE card (MJESTO, ROĐENJE) = (0,n) card (STUDENT, ROĐENJE) = (1,1)
relacija: 1xn • ostvaruje se preko stranog ključa
OPĆINA - mjesto koje predstavlja općinsko središte • pojam općine moguće povezati sa pojmom mjesta: (0,N) MJESTO U OPĆINI (1,1) - pošto se radi o 1xn – preko stranog ključa
RELACIJSKA ALGEBRA - definira operacije nad entitetima i podacima DEF: KOMPATIBILNE TABLICE su tablice koje: a) sadrže atribute jednakog naziva i isti broj atributa b) atributi istog naziva definirani su nad jednakim domenama DOMENA PODATAKA – predstavlja skup vrijednosti kojeodređei atribut može poprimiti
operacije teorije skupova: - unija T:= R S - presjek T:= R S - razlika T:= R - S - produkt T:= R x S • prirodne relacijske operacije: - projekcija T:= R [a] - selekcija T:= R when a=12 - dijeljenje T:= R ÷ S - join T:= R ▷◅ S
UNIJA T:= R S - samo nad kompatibilnim tablicama - T ima isto zaglavlje (header) kao i tablice R i S, a sadrži sve retke koji se nalaze bilu u R bilo u S S R T
PRESJEK T:= R S - samo nad kompatibilnim tablicama - T ima isto zaglavlje (header) kao i tablice R i S, a sadrži sve retke koji se nalaze u oba dvije tablice S R T
RAZLIKA T:= R - S - samo nad kompatibilnim tablicama - T ima isto zaglavlje (header) kao i tablice R i S, a sadrži sve retke koji se nalaze u R, a ne nalaze se u S S T R
PRODUKT T:= R x S • temelji se na skupovnoj operaciji kartezijev produkt • T se sastoji od uređenih parova, pri čemu je prvi element iz R, a drugi iz S - head(RxS) = head(R) head(S) T
R T S
za operatore unija, presjeka i produkta vrijede pravila asocijativnosti i komutativnosti • (RS)T = R(ST) = RST • (RS)T = R(ST) = RST • (RxS)xT = Rx(SxT) = RxSxT
PROJEKCIJA T:= R [a] - izdvajaju se atributi tablice nad kojima se vrši projekcija • T sadrži sve redove koji su sadržani u tablici R - nova tablica je vertikalni podskup zadane tablice T := R[A] R
SELEKCIJA T:= R where a=12 - izdvajaju se skup redova koji zadovoljavaju uvjet po kojem se selekcija vrši • nova tablica sadrži sve atribute kao i izvorna tablica - nova tablica predstavlja horizontalni poskup izvorne R T := R where A = s
DIJELJENJE T:= R ÷ S - Tablic T koja se dobije dijeljenjem R i S je najveća tablica za koju vrijedi da se svi redovi produkta TxS nalaze u tablici R S T R