SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički...
Transcript of SUSTAVI BAZA PODATAKAuni-mo.sve-mo.ba/~goran/nastava/1_SBP_Modeliranje.pdf · Primjer 4. (Tehnički...
SUSTAVI BAZA PODATAKA 1
Doc.dr.sc. GORAN KRALJEVIĆ
SUSTAVI BAZA PODATAKA
FAKULTET STROJARSTVA I RAČUNARSTVA
SVEUČILIŠTE U MOSTARU
SUSTAVI BAZA PODATAKA 2
Web:
http://www.uni-mo.ba/~goran
Pitanja, primjedbe, dogovor za konzultacije ...
o E-mail: [email protected]
Sustavi baza podataka
SUSTAVI BAZA PODATAKA 3
Sustav za upravljanje bazama podataka
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.
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.
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
SUSTAVI BAZA PODATAKA 7
Sustav za upravljanje bazama podataka
Glavni proizvođači SUBP (DBMS):
SUSTAVI BAZA PODATAKA 8
Relacijski model podataka
SUSTAVI BAZA PODATAKA 9
Ključevi u relacijskoj bazi podataka
Primjer:
• Kandidat ključ: {Matbr}, {JMBG}
• Primarni ključ: {Matbr}
• Jedinstveni ključ: {JMBG}
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.
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:
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
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).
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.
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.
SUSTAVI BAZA PODATAKA 16
Modeliranje podataka
SUSTAVI BAZA PODATAKA 17
Modeliranje podataka
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
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
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
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)
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
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
SUSTAVI BAZA PODATAKA 24
Modeliranje podatakaPrimjeri za vježbu
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.
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).
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.
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.
SUSTAVI BAZA PODATAKA 29
Web:
http://www.uni-mo.ba/~goran
Pitanja, primjedbe, dogovor za konzultacije ...
o E-mail: [email protected]
Sustavi baza podataka