SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički...

29
SUSTAVI BAZA PODATAKA 1 Doc.dr.sc. GORAN KRALJEVIĆ S USTAVI B AZA P ODATAKA FAKULTET STROJARSTVA I RAČUNARSTVA SVEUČILIŠTE U MOSTARU

Transcript of SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički...

Page 1: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 1

Doc.dr.sc. GORAN KRALJEVIĆ

SUSTAVI BAZA PODATAKA

FAKULTET STROJARSTVA I RAČUNARSTVA

SVEUČILIŠTE U MOSTARU

Page 2: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 2

Web:

http://www.uni-mo.ba/~goran

Pitanja, primjedbe, dogovor za konzultacije ...

o E-mail: [email protected]

Sustavi baza podataka

Page 3: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 3

Sustav za upravljanje bazama podataka

Page 4: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 4

Sustav za upravljanje bazama podataka

• SUBP (DBMS - Database Management System)

Programski sustav koji omogućava upravljanje bazom podataka je sustav za upravljanje bazama podataka.

• Korisnički programi ne pristupaju podacima direktno već preko DBMS-a

• Korisnik ili korisnički program postavlja zahtjev za obavljanjem neke operacije s podacima, a SUBP ga analizira, provjerava, optimizira, transformira u niz operacija koje je potrebno obaviti na fizičkoj razini, obavlja operacije i vraća rezultat.

Page 5: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 5

Fizička i logička organizacija podataka

• Važna posljedica primjene SUBP jest razdvajanje fizičke i logičke organizacije podataka. Dok logička organizacija podataka predstavlja organizaciju sa stanovišta korisnika baze podataka ili programera te je koncentrirana na vrste podataka i njihove međusobne logičke veze, fizička organizacija predstavlja organizaciju fizičke pohrane podataka unutar računala. Oblik i organizacija pohranjenih podataka tu su često potpuno različiti od njihovog logičkog oblika i organizacije.

• U okviru toga, zadaća je SUBP-a omogućiti korisniku (programeru) manipuliranje podacima uz poznavanje samo logičkog opisa baze podataka, a ne nužno i poznavanja načina fizičke pohrane podataka.

Page 6: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 6

Sustav za upravljanje bazama podataka

Funkcije SUBP-a:

• Definiranje baze podataka (DDL–Data Definition Language)

• Manipuliranje podacima u bazi (DML–Data Manipulation Language)

• Upravljačke funkcije:

Sigurnost i zaštita od neovlaštenog pristupa

Očuvanje integriteta (backup i recovery)

Statističko praćenje rada baze podataka

Optimizacija rada

Page 7: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 7

Sustav za upravljanje bazama podataka

Glavni proizvođači SUBP (DBMS):

Page 8: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 8

Relacijski model podataka

Page 9: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 9

Ključevi u relacijskoj bazi podataka

Primjer:

• Kandidat ključ: {Matbr}, {JMBG}

• Primarni ključ: {Matbr}

• Jedinstveni ključ: {JMBG}

Page 10: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 10

Ključevi u relacijskoj bazi podataka

Kandidat (za PRIMARNI) ključ mora zadovoljiti 2 uvjeta:

• Jedinstvenost … na relacijskoj shemi niti u jednom trenutku

ne mogu postojati dvije n-torke s jednakim vrijednostima skupa atributa K.

• Minimalnost … niti jedan pravi podskup od skupa atributa K

nema svojstvo jednoznačnosti.

o I primarni i jedinstveni ključ moraju ispuniti uvjete

jedinstvenosti i minimalnosti, ali relacija može imati

samo jedan primarni ključ, dok jedinstvenih ključeva

može imati više.

Page 11: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 11

Ključevi u relacijskoj bazi podataka

• Vanjski ili strani ključ (foreign key) – atribut ili skup

atributa unutar jedne relacije koji odgovara kandidat ključu neke (moguće i iste) relacije.

• Vanjski ključevi omogućuju povezivanje n-torki iz različitih tablica.

Primjer:

Page 12: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 12

Ograničenja u relacijskom modelu podataka

Dva opća ograničenja:

• Entitetski integritet

- povezan sa primarnim ključem

• Referencijalni integritet

- povezan sa stranim ključem

Page 13: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 13

Entitetski integritet

• Vrijednost primarnog ključa kao cjeline, ne smije biti jednaka NULL vrijednosti.

Ako je primarni ključ relacije složen, niti jedna njegova komponenta ne smije poprimiti NULL vrijednost.

Primjeri:

NASTAVNIK = {SifNas, PrezNas}PK (NASTAVNIK) = {SifNas} → SifNas ne smije biti NULL

ISPIT = {Matbr, SifPred, DatIsp}PK (ISPIT) = {Matbr, SifPred, DatIsp} → Matbr, SifPred, DatIsp ne smiju biti NULL

• Integritet ključa:

U relaciji ne smiju postojati dvije n-torke s jednakim vrijednostima ključa (vrijedi za sve moguće ključeve).

Page 14: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 14

Referencijalni integritet

• Ako u relacijskoj shemi R postoji strani ključ (foreign key) koji odgovara primarnom ključu (primary key) relacijske sheme S, tada svaka vrijednost stranog ključa u relaciji r(R) mora biti ili jednaka vrijednosti primarnog ključa neke n-torke iz relacije s(S) ili jednaka NULL vrijednosti.

Primjer:

Relacije OSOBA i MJESTO ne zadovoljavaju pravilo referencijalnog integriteta jer u relaciji OSOBA postoji vrijednost stranog ključa (77000) za koju ne postoji odgovarajuća n-torka u relaciji MJESTO.

Page 15: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 15

Ograničenja u relacijskom modelu podataka

Domenski integritet

• Kako svaki atribut ima pridruženu domenu, postoje ograničenja (engl. domain constraints) koja čine restrikcije nad skupom dozvoljenih vrijednosti atributa relacije.

NULL / NOT NULL

• NULL – predstavlja vrijednost atributa koja je trenutno nepoznata ili nije primjenjiva za konkretnu n-torku.

• NULL je način rada s nepotpunim podacima ili izuzetcima.

• NULL nije nula (0) za numeričke vrijednosti ili “spaces” za tekst.

• NULL znači ODSUSTVO (nepostojanje) vrijednosti.

Page 16: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 16

Modeliranje podataka

Page 17: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 17

Modeliranje podataka

Page 18: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 18

ER modeliranje

Model entiteti - veze (entity-relationship model)

• ili bolje: model entiteti - veze - atributi

ER modeliranje:

• je sastavljeno iz entiteta, veza i atributa

• je slikovni prikaz sustava baze podataka

• je neovisno o DBMS i hardveru

• predstavlja konceptualni model visokog nivoa

• podržava korisnikovu percepciju podataka

• je alat za projektiranje

Page 19: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 19

ER modeliranje

• ER modeliranje je iterativan postupak – realno je očekivati više “razvojnih” verzija modela

Entiteti

Atributi

Veze

• Postoji više rješenja problema – neka su optimalnija od drugih

Page 20: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 20

Veze

• Entiteti se mogu povezivati jedan s drugim u veze (relacije).

• Broj entiteta u vezi predstavlja STUPANJ VEZE.

Binarna veza

veza 2 entiteta

Ternarna veza

veza 3 entiteta

Unarna veza

isti entitet više puta

egzistira u različitim ulogama

Page 21: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 21

Kardinalnost veze

• Odnos omjera među povezanim entitetima nazivamokardinalnost veze

- Jedan na jedan (1:1)

- Jedan na više (1:m)

- Više na jedan (m:1)

- Više na više (m:n)

Page 22: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 22

VEZA JEDAN:VIŠE

• Primarni ključ entiteta sa strane veze JEDAN doda se kao strani ključ u entitet sa strane veze VIŠE.

VEZA VIŠE:VIŠE

• Doda se novi entitet, koji sadrži primarne ključeve obaju rubnih entiteta.

• Ti atributi zajedno tvore složeni primarni ključ novonastalog entiteta.

Preslikavanje ER modela u relacije

Page 23: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 23

Usporedne veze

• Svaku vezu zamijenimo s po jednim stranim ključem u relaciji na strani veze VIŠE (usporedne veze se preslikaju u jednu, ali s uvođenjem dodatnog stranog ključa).

• Da bi razlikovali veze među entitetima stranim ključevima damo različite nazive.

Povratne veze

• Doda se strani ključ jednak primarnom ključu relacije.

• Za povratne veze vrijedi da je strani ključ jednak primarnom ključu relacije, ali pod drugim imenom.

Preslikavanje ER modela u relacije

Page 24: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 24

Modeliranje podatakaPrimjeri za vježbu

Page 25: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 25

Primjer 1. (Evidentiranje objavljenih radova)

• Profesor programiranja Ivo Ivić odlučio je napraviti program za evidentiranje svojih objavljenih radova.

To podrazumijeva evidentiranje svih do sada objavljenih radova, naslova radova, koautora koji su s njim učestvovali u pisanju radova, godina objavljivanja kao i časopisa u kojima je objavljivano.

Također treba uspostaviti klasifikaciju radova po principu: znanstveni, stručni ili pregledni rad, te da li je rad objavljen u međunarodnom ili domaćem časopisu.

Za svaki rad unose se podaci o naslovu rada, klasifikacijama, koautorima i časopisu u kojem je rad objavljen.

Page 26: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 26

Primjer 2. (Multipleks kino)

• Napraviti normalizirani model podataka s pripadajućim entitetima, atributima i vezama između entiteta koji će podržavati proces rezervacije karata za multipleks kino.

U bazi podataka je potrebno evidentirati sljedeće podatke o filmovima: šifra, naziv, naziv originala, godina proizvodnje, trajanje filma, šifru i naziv žanra, glumce u filmu (šifra, ime, prezime).

Baza podataka također treba sadržavati popis dvorana u multipleks kinu (sifra, naziv, broj mjesta) kao i raspored svih projekcija filmova po dvoranama (datum i vrijeme projekcije, cijena karte za projekciju).

Page 27: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 27

Primjer 3. (Svjetsko prvenstvo u nogometu)

• U bazi podataka potrebno je evidentirati podatke o nogometnim utakmicama na Svjetskom prvenstvu.

Utakmice se igraju između dviju država, od kojih jedna ima ulogu domaćina, a druga gosta. Svaka utakmica je identificirana šifrom, a osim toga se za utakmicu bilježi i datum odigravanja, rezultat i stadion na kojem je utakmica odigrana. Za svaki stadion se bilježi jedinstvena šifra, naziv stadiona i kapacitet. Na svakom stadionu se odigra više utakmica na Svjetskom prvenstvu. Svaka država odigra na prvenstvu više utakmica. Za svaku državu se bilježi jedinistvena šifra, naziv i godina osnutka nogometnog saveza u toj državi.

U bazi se evidentiraju i svi igrači koji su nastupili na utakmicama. Za igrače se bilježi jedinstvena šifra, ime, prezime, datum rođenja i država iz koje dolaze. Za svakog igrača se pored toga bilježi i broj minuta odigranih na svakoj od utakmica u kojoj je nastupio, te broj postignutih golova na utakmici.

Page 28: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 28

Primjer 4. (Tehnički biro)

• Napraviti normalizirani model podataka s pripadajućim entitetima, atributima i vezama između entiteta koji bi osigurao evidentiranje projekata, rokova i izvršitelja u jednom tehničkom birou.

Osnovni način poslovanja tehničkog biroa jeste rad na izradi određenih projekata, što znači da se za svaki projekt trebaju evidentirati osnovni podaci o naručitelju projekta (šifra, naziv, adresa, telefon, mail). Za svaki projekt postoji samo jedan glavni naručitelj s kojim se sklapa ugovor o poslu. O projektu se vode slijedeći podaci: naziv projekta, opis projekta, planirani datum početka rada na projektu, planirani svršetak rada na projektu, stvarni početak rada na projektu, stvarni svršetak rada na projektu, vrijednost projekta, ugovoreni penali za kašnjenje, dodatna napomena.

Na svakom projektu radi više djelatnika iz biroa (šifra, ime, prezime, zanimanje, titula, adresa, telefon, mail) koji rade na određenom radnom mjestu u birou (šifra, naziv radnog mjesta, opis). Projekt se razlaže na više različitih poslova (zadataka). Svakom članu projektnog tima dodjeljuje se točno određeni posao (zadatak) što se posebno i evidentira. Uz svaki posao (zadatak) evidentira se i naziv zadatka, kratak opis, planirani početak, planirani svršetak, stvarni početak, stvarni svršetak, vrijednost i napomena.

Page 29: SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima, atributima

SUSTAVI BAZA PODATAKA 29

Web:

http://www.uni-mo.ba/~goran

Pitanja, primjedbe, dogovor za konzultacije ...

o E-mail: [email protected]

Sustavi baza podataka