baze predavanja

180
8/10/2019 BAZE Predavanja http://slidepdf.com/reader/full/baze-predavanja 1/180   Ak.god. 2014/2015. B  AZE PODATAKA 1 B  AZE P ODATAKA FAKULTET STROJARSTVA I RAĈUNARSTVA  SVEUĈILIŠTE U MOSTARU Doc.dr.sc. GORAN K RALJEVIĆ 

Upload: vladoboskic

Post on 02-Jun-2018

227 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 1/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  1

B AZE PODATAKA

FAKULTET STROJARSTVA I RAĈUNARSTVA 

SVEUĈILIŠTE U MOSTARU 

Doc.dr.sc. GORAN K RALJEVIĆ 

Page 2: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 2/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  2

Web:

http://www.fsr.ba/~goran

Pitanja, primjedbe, dogovor za konzultacije ...

o E-mail: [email protected]

[email protected]

Baze podataka

Page 3: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 3/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  3

Baze podataka

Sadrţaj predmeta: o Uvod u baze podataka;o Sustav za upravljanje bazom podataka;

o Relacijski model podataka;

o Modeliranje podataka (Model entiteti-veze, UML notacija);

o Normalizacija podataka (Normalne forme);

o Relacijske baze podataka;o SQL (standardni upitni jezik);

o Korisnici i sigurnost baze podataka;

o  Višekorisnički rad i upravljanje transakcijama; o Zaključavanje podataka; o Objekti u bazi podataka (tablice, pogledi, indeksi, ...);

SQL (detaljno na vjeţbama)

Page 4: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 4/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  4

Polaganje ispita (kolokviji ...)

Prolazna ocjena putem kolokvija: min. 50 bodova 

50,0 bod. ............ dovoljan (2)

62,5 bod. ............ dobar (3)75,0 bod. ............ vrlodobar (4)

87,5 bod. ............ izvrstan (5) 

1. kolokvij (Modeliranje + Teorija)   45 bodova 

2. kolokvij (SQL)   45 bodova

 Aktivno sudjelovanje na nastavi 10 bodova

Ukupno : 100 bodova

Page 5: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 5/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  5

Polaganje ispita (ispitni rokovi ...)

Pismeni + Usmeni

Prolazna ocjena na ispitu: min. 60 bodova 

60-69 bod. .......... dovoljan (2)

70-79 bod. .......... dobar (3)

80-89 bod. .......... vrlodobar (4)

90-100 bod. ........ izvrstan (5)

Napomena:

Studenti koji tijekom semestra (kolokviji ...) osvoje 40-49 bodovadobit će 10 bodova koji će im se pribrojiti na svim pismenim ispitnim

rokovima do kraja akademske godine.Studenti koji tijekom semestra (kolokviji ...) osvoje 30-39 bodovadobit će 5 bodova koji će im se pribrojiti na svim pismenim ispitnimrokovima do kraja akademske godine.

Page 6: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 6/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  6

Uvod u baze podataka 

Page 7: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 7/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  7

Baza podataka

• Baza podataka je skup meĎusobno povezanih podataka,

pohranjenih zajedno bez štetne ili nepotrebne (nekontrolirane)zalihosti (redundancije), s ciljem da ih koriste različite aplikacije.Podaci su pohranjeni u obliku neovisnom od programa koji ih

koriste. Unos, izmjena i dohvat podataka obavlja se ISKLJUČIVOkroz zajedničko i kontrolirano sučelje. 

Page 8: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 8/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  8

Zajedniĉke osobine za sve sustave baza podataka (Ullman)

•  Apstraktni model podataka

•  Visoka razina pristupa ili upitnih jezika

• Upravljanje transakcijama u višekorisničkom okruženju

• Kontrola pristupa i vlasništvo nad podacima 

•  Validacija podataka i provjera konzistentnosti

• Konzistentni oporavak podataka nakon ispada sustava i/ilistrojne opreme

Page 9: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 9/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  9

Ciljevi razvoja baza podataka

• Razdvajanje podataka od aplikacija koje ih koriste

• Prezentiranje logičkog pogleda na podatke neovisno od fizičkihdetalja njihove pohrane u bazu podataka

• Omogućavanje različitih pogleda na istu bazu podataka, ovisnoo korisničkim i aplikativnim potrebama 

Page 10: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 10/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  10

Faze razvoja baza podataka

FAZE razvoja Baza podataka Aplikacija

Zahtjevi

(analiza)

Izrada modela podataka

Specificiranje podataka

Definiranje ograničenja iposlovnih pravila

UtvrĎivanje zahtjeva zaaplikaciju

Dizajn

Tablice

RelacijeIndeksi

Ograničenja 

Pohranjene procedure i okidači 

Forme

Izvješća (Reports) Upiti (Queries)

Kod aplikacije

Implementiranje

Kreiranje tablica

Kreiranje relacija

Kreiranje ograničenja Pisanje procedura i okidača 

Punjenje baze podataka

Testiranje

Kreiranje formi

Kreiranje izvješća 

Kreiranje UpitaPisanje koda aplikacije

Testiranje

Page 11: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 11/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  11

Povijesni razvoj baza podataka

Sustavi bazirani na datoteĉnim sustavima (filesystem)

• podaci su spremljeni u datotekama (files)

• svaka datoteka ima svoj format

 ̶ programi koji koriste bazu moraju poznavati taj format

• Problemi:

 ̶ nema standarda

 ̶ višestruko ponavljanje podataka  

 ̶ meĎuovisnost podataka  

 ̶ teško je vršiti neuobičajena pretraživanja  

 ̶ integritet podataka ̶ sigurnost

 ̶ istovremeni pristup, ...

Page 12: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 12/180

 

 Ak.god. 2014/2015.  B AZE PODATAKA  12

Modeli podataka

• Model podataka je skup pravila koji odreĎuju kako može

izgledati logička struktura baze • U 60-tim i 70-tim godinama su bili u upotrebi hijerarhijski i

mrežni model 

• Hijerarhijski model ̶ baza je predočena stablom ili skupom stabala  

 ̶ jedan član može imati samo jednog vlasnika ̶ putovi pretraživanja su fiksni  

• Mreţni model  ̶ opći slučaj hijerarhijskog modela   ̶ odnosi definirani eksplicitno

 ̶ aplikacija mora poznavati interni model baze podataka

• Implementacije u raĉunalu koristile su pokazivaĉe koji izravnoadresiraju mjesto zapisa na disku

Page 13: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 13/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  13

Hijerarhijski i mreţni model 

Hijerarhijski model podataka Mreţni model podataka 

Ograniĉenja hijerarhijskih i mreţnih baza:

- Nemaju pokriće u formalnoj teoriji - Sva pretraživanja se izvode po unaprijed definiranim i točno navedenim putovima - Svi odnosi izmeĎu objekata se moraju unaprijed i točno definirati - Optimizacija se provodi ručno - programer sam optimizira kod i odreĎuje metodu

koja će biti korištena pri komunikaciji izmeĎu aplikacije i baze podataka 

Page 14: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 14/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  14

Modeli podataka

• Relacijski model ̶ 1970. dogaĎa se relacijska "revolucija“  ̶ E.F.Codd objavljuje članak  "A Relational Model

of Data for Large Shared Databanks"  

koji postavlja osnove skoro svim današnjim

sustavima baza podataka

• Objektni model

 ̶ inspiriran objektno orijentiranim programskim jezicima

 ̶ baza je skup objekata koji se sastoje od podataka i metoda

koje vrše operacija nad njima 

Page 15: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 15/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  15

Sustav za upravljanje bazama podataka

• SUBP (DBMS - Database Management System)  

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

• K orisnički programi ne pristupaju podacimadirektno već preko DBMS-a

• Korisnik ili korisnički program postavlja zahtjevza obavljanjem neke operacije s podacima, aSUBP ga analizira, provjerava, optimizira,transformira u niz operacija koje je potrebno

obaviti na fizičkoj razini, obavlja operacije ivraća rezultat.

Page 16: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 16/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  16

Fiziĉka i logiĉka organizacija podataka 

•  Vaţna posljedica primjene SUBP jest razdvajanje fiziĉke i logiĉke

organizacije podataka. Dok logičkaorganizacija podataka predstavljaorganizaciju sa stanovišta korisnika bazepodataka ili programera te jekoncentrirana na vrste podataka injihove meĎusobne logičke veze, fizičkaorganizacija predstavlja organizaciju

fizičke pohrane podataka unutarračunala. Oblik i organizacijapohranjenih podataka tu su čestopotpuno različiti od njihovog logičkogoblika i organizacije.

• U okviru toga, zadaća je SUBP-aomogućiti korisniku (programeru)manipuliranje podacima uzpoznavanje samo logiĉkog opisabaze podataka, a ne nužno ipoznavanja načina fizičke pohranepodataka.

Page 17: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 17/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  17

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 odneovlaštenog pristupa 

     ̶ Očuvanje integriteta(backup i recovery)

     ̶ Statističko praćenje

rada baze podataka     ̶ Optimizacija rada

Page 18: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 18/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  18

Sustav za upravljanje bazama podataka

Glavni proizvoĊaĉi SUBP (DBMS):

Page 19: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 19/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  19

Relacijski model podataka 

Page 20: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 20/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  20

Relacijski model podataka

• Relacijski model je osnovne koncepte preuzeo iz matematičketeorije skupova, a to su:

     ̶ Relacija

     ̶  Atribut

     ̶ Domena

Page 21: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 21/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  21

Relacijski model podataka

• Relacijski model podataka se temelji na matematičkoj teoriji relacija 

• Većina suvremenih DBMS je bazirana na relacijskom modelu • Informacije su pohranjene kao zapisi ili slogovi (records) u

relacijama (tablicama)

• Baza podataka je skup relacija (tablica)

     ̶ Podaci su u n-torkama (redovima)     ̶ Zaglavlje definira atribute (stupce) relacije

Page 22: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 22/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  22

Kljuĉevi u relacijskoj bazi podataka 

• Super kljuĉ (superkey) – atribut ili skup atributa koji jedinstveno odreĎuje n-torku unutar relacije.

• Kandidat kljuĉ (candidate key)   – super ključ takav da nemanijedan odgovarajući podskup koji bi bio super ključ unutar relacije. 

• Primarni kljuĉ (primary key)   – kandidat ključ koji je odabranda jedinstveno odredi n-torku unutar relacije.

• Jedinstveni kljuĉ (unique key)   – kandidat ključ koji nijeodabran da bude primarni ključ. 

Page 23: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 23/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  23

Kljuĉevi u relacijskoj bazi podataka 

Primjer:

• Super kljuĉ: npr. {Matbr, Prezime}

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

• Primarni kljuĉ: {Matbr}• Jedinstveni kljuĉ: {JMBG}

Page 24: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 24/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  24

Kljuĉevi u relacijskoj bazi podataka 

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

• Jedinstvenost … na relacijskoj shemi niti u jednom trenutkune mogu postojati dvije n-torke s jednakim vrijednostimaskupa atributa K.

• Minimalnost … niti jedan pravi podskup od skupa atributa Knema svojstvo jednoznačnosti. 

   ̵ I primarni i jedinstveni kljuĉ moraju ispuniti uvjete jedinstvenosti i minimalnosti, ali relacija moţe imati

samo jedan primarni kljuĉ, dok jedinstvenih kljuĉevamoţe imati više. 

Page 25: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 25/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  25

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 26: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 26/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  26

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 27: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 27/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  27

Entitetski integritet

•  Vrijednost primarnog kljuĉa kao cjeline, ne smije biti

 jednaka NULL vrijednosti. Ako je primarni ključ relacije složen, niti jedna njegova komponentane 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 jednakimvrijednostima kljuĉa (vrijedi za sve moguće kljuĉeve). 

Page 28: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 28/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  28

Referencijalni integritet

•  Ako u relacijskoj shemi R postoji strani kljuĉ (foreign key)

koji odgovara primarnom kljuĉu (primary key) relacijskesheme 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 urelaciji OSOBA postoji vrijednost stranog ključa (77000) za koju ne postojiodgovarajuća n-torka u relaciji MJESTO.

Page 29: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 29/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  29

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 skupomdozvoljenih 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 30: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 30/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  30

Operacije u relacijskom modelu

Osnovne operacije u relacijskom modelu:

• Unija

• Razlika

• Presjek

• Kartezijev produkt

• Projekcija

• Selekcija

• Spajanje (join)

Page 31: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 31/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  31

Operacije u relacijskom modelu

• Unija … relacija koju čine sve n-torke prve i druge relacije

Page 32: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 32/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  32

Operacije u relacijskom modelu

• Razlika … relacija koju čine sve n-torke koje se nalaze u prvoj,

ali se ne nalaze u drugoj relaciji

Page 33: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 33/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  33

Operacije u relacijskom modelu

• Presjek  … relacija koju čine n-torke zajedničke za obje relacije 

ij l ij k d l

Page 34: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 34/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  34

Operacije u relacijskom modelu

• Kartezijev produkt … relacija koju čine sve moguće kombinacije

parova n-torki s tim da je prva n-torka iz prve, a druga iz drugerelacije

O ij l ij k d l

Page 35: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 35/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  35

Operacije u relacijskom modelu

• Projekcija … rezultat je izbor odreĎenih atributa polazne relacije 

O ij l ij k d l

Page 36: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 36/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  36

Operacije u relacijskom modelu

• Selekcija (ograničenje, restrikcija, izbor) … rezultat su samo

one n-torke koje zadovoljavaju postavljene uvjete

O ij l ij k d l

Page 37: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 37/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  37

Operacije u relacijskom modelu

• Spajanje … iz dvije relacije stvara novu relaciju od svih

kombinacija parova n-torki koji zadovoljavaju postavljene uvjete

• U svakoj se tablici (relaciji) bira stupac (polje) preko čijih sevrijednosti uspostavlja veza

O ij l ij k d l

Page 38: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 38/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  38

Operacije u relacijskom modelu

• Opisane operacije relacijske algebre primjenjuju se uvijek u

kombinaciji:     ̶ iz više tablica selektiramo samo one zapise koji udovoljavaju

uvjetima     ̶ napravimo spajanje (join)     ̶ projekcijom odaberemo željena polja 

• Na taj se način iz vrlo malog broja osnovnih operacija relacijskealgebre može izvesti veliki broj kombinacija za obradu i analizupodataka.

• Prijevod operacija relacijske algebre u jezik za definiciju i

manipulaciju podacima koji danas predstavlja osnovni standardza relacijske baze podataka: SQL.

Page 39: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 39/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  39

Modeliranje podataka 

Modeliranje podataka

Page 40: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 40/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  40

Modeliranje podataka

ER modeliranje

Page 41: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 41/180

 

 Ak.god. 2014/2015. 

B AZE PODATAKA  41

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

 

ER modeliranje

Page 42: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 42/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  42

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 optimalnijaod drugih

 

Entitet

Page 43: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 43/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  43

Entitet

• Entitet  je bilo koji objekt u sustavu koji ţelimo modelirati io kojem ţelimo saĉuvati informaciju 

     ̶ Pojedinačni objekti zovu se entiteti      ̶ Skupine objekata istog tipa zovu se tipovi entiteta ili skupovi

entiteta

     ̶ Moguća su dva tipa entiteta: jaki i slabi

 

Jaki i slabi tip entiteta

Page 44: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 44/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  44

Jaki i slabi tip entiteta

• JAKI entitet

Tip entiteta čija egzistencija nije vezana za postojanje nekogdrugog tipa entiteta.

• SLABI entitet

Tip entiteta čija egzistencija ovisi o postojanju nekog drugogtipa entiteta, tj. onaj tip entiteta koji ne može postojati u bazipodataka ukoliko neki drugi tip entiteta takoĎer ne postoji ubazi.

 

Atribut

Page 45: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 45/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  45

 Atribut

•  Atribut  je svaki detalj koji sluţi da pobliţe odredi,

identificira, klasificira, kvantificira ili izrazi stanje entiteta.• Predstavlja opis entiteta

 

Veze

Page 46: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 46/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  46

 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 putaegzistira u različitimulogama

 

Kardinalnost veze

Page 47: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 47/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  47

Kardinalnost veze

• Odnos omjera meĊu povezanim entitetima nazivamo 

kardinalnost 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)

  Grafiĉki prikaz veze

Page 48: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 48/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  48

Grafiĉki prikaz veze 

 

Razbijanje M:N veza

Page 49: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 49/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  49

Razbijanje M:N veza

•  Veza m:n u ER modelu se moţe razbiti uvoĊenjem novog

posredniĉkog entiteta. 

Primjer:

• Vezu više na više možemo razbiti uvoĎenjem entiteta najam, koji sadržiatribut datum_najma

 

Preslikavanje ER modela u relacije

Page 50: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 50/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  50

 VEZA JEDAN:VIŠE 

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

 VEZA VIŠE:VIŠE 

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

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

Preslikavanje ER modela u relacije

 

Usporedne i povratne veze

Page 51: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 51/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  51

Usporedne i povratne veze

Usporedne veze – dvije usporedne veze izmeĎu dva entiteta ... 

Povratne veze – veza entiteta “na samog sebe” ... 

 

Preslikavanje ER modela u relacije

Page 52: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 52/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  52

Usporedne veze

• Svaku vezu zamijenimo s po jednim stranim ključem u relacijina strani veze VIŠE (usporedne veze se preslikaju u jednu, alis 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 primarnomključu relacije, ali pod drugim imenom. 

Preslikavanje ER modela u relacije

 

UML (Unified Modeling Language)

Page 53: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 53/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  53

UML (Unified Modeling Language)

Zašto UML (odnosno korištenje jedne notacije)? 

• Korištenje jednog jezika i notacije bitno olakšava komunikacijuizmeĎu članova različitih timova (projektanti baze podataka,analitičari, programeri aplikacije) i time doprinosi da se svisudionici koji participaraju u projektu osjećaju dijelom jedne

cjeline.

 

Relacije u UML-u

Page 54: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 54/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  54

Relacije u UML u

  ZAVISNOST (dependency)

  ASOCIJACIJA (association)

  AGREGACIJA (aggregation)

  GENERALIZACIJA (generalization)

  REALIZACIJA (realization)

1 1..*

 

UML notacija ...

Page 55: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 55/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  55

UML notacija ...

 

Page 56: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 56/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  56

Normalizacija podataka 

 

Normalizacija podataka

Page 57: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 57/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  57

j p

• Normalizacija je proces kojime se nastoji eliminirati

redundancija, ali tako da se sačuva integritet podataka u bazi 

• Redundancija se izražava kroz pojam funkcijske zavisnosti 

• Definiraju se normalne forme (NF)

     ̶ prva NF, druga NF, treća NF, itd.      ̶ svaka normalna forma garantira da nema odreĎenog tipa

zavisnosti

     ̶ svaka viša NF uključuje prethodnu NF te dodatno ureĎuje

model, tj. eliminira dodatne redundantnosti

Page 58: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 58/180

 

Definicije funkcijskih ovisnosti

Page 59: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 59/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  59

j j

Funkcijska ovisnost atributa

•  Ako promatramo tablicu R sa atributima X i Y koji mogu bitikompozitni tj. složeni: za atribut Y tablice R kaže se da jefunkcijski ovisan o atributu X iste tablice

R.X->R.Y  

ako je svaka pojedina vrijednost atributa X povezana sa samo jednom vrijednošću atributa Y. 

 

Definicije funkcijskih ovisnosti

Page 60: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 60/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  60

j j

Potpuna funkcijska ovisnost atributa

• U tablici R s atributima X i Y koji mogu biti kompozitni tj. složeni, Y je potpuno funkcijski ovisan o X ako vrijedi da je Y funkcijskiovisan o X i nije funkcijski ovisan niti o jednom manjem podskupuatributa X.

Odnosno, ako vrijedi X->Y  tada ne smije postojati niti jedanpodskup Z koji sadrži samo dio atributa od kojih se sastoji atributX, za koji bi vrijedilo da je Z->Y .

 

Definicije funkcijskih ovisnosti

Page 61: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 61/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  61

j j

Tranzitivna funkcijska ovisnost atributa

•  Ako vrijedi  X->Y   i  Y-/->X  (Y je funkcijski ovisan o X, a X nijefunkcijski ovisan o Y), i ako Y->A (A je funkcijski ovisan o Y) tadavrijedi da je A funkcijski ovisan i o X ( X->A).

 Ako vrijedi A-/->Y  tada je A striktno tranzitivno ovisan o X.

  1NF

Page 62: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 62/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  62

Prva normalna forma (1NF)

Tablica se nalazi u prvoj normalnoj formi ako su svinekljuĉni atributi funkcijski ovisni o kljuĉu. 

 Uklanjanje ponavljajućih atributa ili grupa atributa  

  2NF

Page 63: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 63/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  63

Druga normalna forma (2NF)

Tablica je u drugoj normalnoj formi ako i samo ako jeu 1NF i ako su svi nekljuĉni atributi potpuno funkcijskiovisni o kljuĉu. 

Uklanjanje atributa ovisnih samo o dijelu jedinstvenogidentifikatora.

  3NF

Page 64: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 64/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  64

Treća normalna forma (3NF) 

Tablica je u trećoj normalnoj formi ako i samo ako je u2NF i ako niti jedan nekljuĉni atribut nije tranzitivnoovisan o kljuĉu. 

Uklanjanje atributa ovisnih o atributima koji nisu dio jedinstvenog identifikatora.

 

Primjer normalizacije podataka

Page 65: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 65/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  65

• Na slici je dana denormalizirana tablica s nazivima stupaca i

vrijednostima redaka.

Napraviti normalizirani model podataka s pripadajućimentitetima, atributima i vezama izmeĊu njih. 

 

Normalizacija podataka (1NF)

Page 66: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 66/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  66

 – Postoji funkcijska zavisnost : 

Matbr→ Prezime, Ime

 – Ne postoji funkcijska zavisnost : Matbr→ SifPred Matbr→ NazPred  Matbr→ DatIsp Matbr→ Ocjena

Matbr→ SifNas Matbr→ PrezNas

 

Normalizacija podataka (1NF)

Page 67: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 67/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  67

Rješenje:

PK (STUDENT) = {Matbr}

PK (ISPIT) = {Matbr, SifPred, DatIsp}

 

Normalizacija podataka (2NF)

Page 68: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 68/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  68

{Matbr, SifPred, DatIsp} → {NazPred} 

{SifPred}→

 {NazPred} dakle, ne postoji potpuna funkcijska ovisnostneključnih atributa o ključu 

ISPIT ne zadovoljava 2 NF !

Rješenje:

 

Normalizacija podataka (3NF)

Page 69: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 69/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  69

{Matbr, SifPred, DatIsp} → {SifNas} 

{SifNas}→

 {PrezNas} dakle, postoji tranzitivna funkcijska ovisnost(koju je potrebno eliminirati) 

ISPIT ne zadovoljava 3 NF !

Rješenje:

  Normalizacija podataka

Page 70: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 70/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  70

Sve tablice zadovoljavaju 3 NF !

STUDENT (Matbr, Prezime, Ime)

PREDMET (SifPred, NazPred)

NASTAVNIK  (SifNas, PrezNas)

ISPIT (Matbr, SifPred, DatIsp, Ocjena, SifNas)

 Vaţno:

- Baza podataka treba biti barem u 3 NF !

- Osim 1NF, 2NF, 3NF postoje i BCNF (Boyce-Coddova normalna forma),4NF i 5NF.

  Relacijski model (UML notacija)

Page 71: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 71/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  71

 

Page 72: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 72/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  72

Modeliranje podatakaPrimjeri

 

Primjer 1.

Page 73: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 73/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  73

• Profesionalni programer Ivo Ivić odlučio je napraviti program za

evidentiranje svih programa koje je uradio, korisnika kod kojih tiprogrami rade, kao i ostvarene zarade po svakom programu.

Za svaki program se evidentira vrijeme utrošeno za njegovu izradu,kao i vrijeme utrošeno kod korisnika za prilagodbu programakorisničkim zahtjevima, kad je program pušten u rad kod korisnika,

kao i koliko je od korisnika naplaćeno za taj program. TakoĎer seevidentira da li je program u uporabi tj. aktivan ili ne.

Page 74: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 74/180

Page 75: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 75/180

  Primjer 2.

Page 76: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 76/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  76

• Faktura je dokument koji se šalje kupcu kako bi mogao izvršiti plaćanje

kupljene robe. Da bi se napravila faktura moraju postojati osnovnipodaci o kupcu (naziv, adresa, telefon i sl.), podaci o fakturi (brojfakture, datum izdavanja, broj narudžbe prema kojoj je raĎena, rokplaćanja, iznos za plaćanje i sl.), kao i podaci o kupljenim artiklima(naziv, jedinica mjere, kupljena količina, cijena i sl.). 

Faktura se sastoji od 2 osnovna dijela:- Zaglavlje fakture koje sadrži zajedničke, opće podatke 

- Stavke fakture s pojedinačnim artiklima, količinama i cijenama. 

Definirati sve entitete, atribute i veze za proces Fakturiranja kupcima.

  Primjer 2. ( ER model )  

Page 77: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 77/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  77

  Primjer 2. ( Relacijski model )

Page 78: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 78/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  78

  Primjer 3.

Page 79: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 79/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  79

• Na Fakultetu strojarstva i računarstva u Mostaru evidentirani su podaci o

kandidatima koji su se prijavili na razradbeni ispit i njihovim rezultatima.Evidentiraju se podaci o:

- kandidatu: JMBG, ime, prezime, mjesto roĎenja, završena srednjaškola (šifra, naziv, adresa, poštanski broj mjesta, mjesto, šifra općine inaziv općine u kojoj se škola nalazi) - za svakog kandidata ocjena iz pojedinih predmeta iz srednje škole – 

šifra i naziv predmeta, razred i ocjena. Šifra odreĎuje predmet u nekomrazredu (godini), npr. Matematika u 1.razredu i Matematika u 2.razreduimaju različite šifre. Isti predmeti u različitim školama imaju istu šifrunpr. Matematika iz 1.razreda ima istu šifru za sve škole 

- podaci o zadacima na razradbenom ispitu – redni broj zadatka, tekst

zadatka, točan odgovor (A, B, C, D ili E) - za svakog kandidata odgovori koje je dao na zadatke (odgovor za svakipojedini zadatak mogu biti A, B, C, D, E ili ništa) 

  Primjer 3. ( ER model )  

Page 80: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 80/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  80

  Primjer 3. ( Relacijski model )

Page 81: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 81/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  81

  Primjer 4.

Page 82: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 82/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  82

• U bazi podataka potrebno je evidentirati podatke o zrakoplovima,aerodromima i letovima.

Zrakoplov je identificiran svojim jedinstvenim registracijskim brojem (npr.N6061U). Za zrakoplov se evidentiraju godina proizvodnje i tip zrakoplova.Za svaki tip zrakoplova evidentira se šifra tipa i naziv tipa zrakoplova (npr.šifra: 123, naziv tipa: "Airbus- A319") te najveća ukupna dozvoljena težinapri polijetanju. Za svaki aerodrom se evidentira šifra i naziv aerodroma. 

Zrakoplov prema namjeni može biti ili putnički ili teretni (jedno isključujedrugo). Za svaki pojedini zrakoplov, ovisno o njegovoj namjeni, evidentirase je li u zrakoplov ugraĎena dodatna oprema: za svaki pojedini putničkizrakoplov evidentira se ima li ugraĎenu internu televiziju, ima li ureĎaj zasatelitsku komunikaciju, a za svaki pojedini teretni zrakoplov broj dodatno

ugraĎenih klimatiziranih kontejnera za prijevoz životinja i je li ugraĎenkatapult za izbacivanje tereta padobranom.

Page 83: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 83/180

Page 84: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 84/180

  Primjer 4. ( Relacijski model )

Page 85: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 85/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  85

 

Page 86: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 86/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  86

Modeliranje podatakaPrimjeri za vjeţbu  

  Primjer 1. (Evidentiranje objavljenih radova)  

Page 87: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 87/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  87

• Profesor programiranja Ivo Ivić odlučio je napraviti program zaevidentiranje 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 ilidomaćem časopisu.Za svaki rad unose se podaci o naslovu rada, klasifikacijama,koautorima i časopisu u kojem je rad objavljen. 

  Primjer 2. (Ugovori)  

Page 88: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 88/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  88

• Na slici je dana denormalizirana tablica UGOVORI s nazivima stupaca ivrijednostima redaka. Napraviti normalizirani model podataka s

pripadajućim entitetima, atributima i vezama izmeĎu njih. 

  Primjer 3. (Filmovi)  

Page 89: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 89/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  89

• U bazi podataka su evidentirani podaci o filmovima. Za svaki filmevidentira se žanr (šifra, naziv) i država (šifra, naziv).

Uz svaki film evidentiraju se različiti izvoĎači (šifra, ime, prezime) ifunkcije koje su obavljali u filmu.

Funkcije su predstavljene kraticom i nazivom, a mogu biti npr.GL-glumac, RED-redatelj, SC-scenarist, SKL-skladatelj, itd.

Obratite pozornost na tip veze izmeĎu entiteta funkcija, izvoĎač i film: 

  Primjer 4. (Multipleks kino)

Page 90: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 90/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  90

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

U bazi podataka je potrebno evidentirati sljedeće podatke o filmovima:šifra, naziv, naziv originala, godina proizvodnje, trajanje filma, šifru inaziv žanra, glumce u filmu (šifra, ime, prezime).Baza podataka takoĎer treba sadržavati popis dvorana u multiplekskinu (sifra, naziv, broj mjesta) kao i raspored svih projekcija filmovapo dvoranama (datum i vrijeme projekcije, cijena karte za projekciju).

Page 91: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 91/180

  Primjer 6. (Tehniĉki biro)  

Page 92: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 92/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  92

• Napraviti normalizirani model podataka s pripadajućim entitetima, atributima ivezama 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čiteljuprojekta (šifra, naziv, adresa, telefon, mail). Za svaki projekt postoji samo jedanglavni naručitelj s kojim se sklapa ugovor o poslu. O projektu se vode slijedećipodaci: naziv projekta, opis projekta, planirani datum početka rada na projektu,

planirani svršetak rada na projektu, stvarni početak rada na projektu, stvarnisvrš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Ďenomradnom mjestu u birou (šifra, naziv radnog mjesta, opis). Projekt se razlaže naviš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, planiranisvršetak, stvarni početak, stvarni svršetak, vrijednost i napomena.

 

Page 93: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 93/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  93

Uvod u SQL 

  SQL

Page 94: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 94/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  94

• SQL = Structured Query Language

• SQL je upitni jezik temeljen na relacijskoj algebri i predikatnomračunu.

• SQL se koristi kao programski jezik i interaktivni upitni jezik .Kao programski jezik može se ugraĎivati u jezike treće i četvrtegeneracije.

• Zadaća SQL-a je omogućiti definiciju podataka, upravljanje podacimai provoĎenje kontrole nad podacima u relacijskoj bazi podataka. 

• ProizvoĎači komercijalnih sustava takoĎer ugraĎuju i svoje, uglavnomnestandardne, DDL i DML naredbe.

Ti su nestandardni dijelovi problematični jer programski kod postajeneprenosiv izmeĎu različitih SQL sustava, a takoĎer se bitno otežavausaglašavanje oko budućih standarda. 

  SQL

Page 95: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 95/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  95

• DDL (Data Definition Language)

= izrazi za definiranje podataka

 ̶ CREATE, ALTER, DROP, GRANT, REVOKE ...

• DML (Data Manipulation Language)= izrazi za upravljanje podacima

 ̶ SELECT, INSERT, UPDATE, DELETE ...

  SQL

Page 96: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 96/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  96

• Primjer SQL naredbe iz DDL dijela jezika (kreiranje tablice mjesto):

CREATE TABLE mjesto( pbr_mjesta  VARCHAR2(5) NOT NULL , 

naziv_mjesta  VARCHAR2(30) NOT NULL ,

sifra_opcine NUMBER(4)

); 

• Primjer SQL naredbe iz DML dijela jezika (iz tablice mjesto dohvaća sven-torke kojima je vrijednost atributa poštanski broj jednaka 88000): 

SELECT *

FROM mjesto

WHERE pbr = 88000;

  Izvršavanje SQL iskaza (ORACLE server)

Page 97: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 97/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  97

 

Page 98: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 98/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  98

DDL naredbeKreiranje tablica

  Kreiranje tablica

Page 99: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 99/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  99

  SQL – Kreiranje i brisanje tablica

Page 100: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 100/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  100

Kreiranje tablice:

CREATE TABLE ime_tablice

( ime_stupca tip (veličina) (ograničenje), 

ime_stupca tip (veličina) (ograničenje), 

ime_stupca tip (veličina) (ograničenje), 

...);

Brisanje tablice:

DROP TABLE ime_tablice;

  Ograniĉenja nad stupcima tablice i nad tablicama ... 

Page 101: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 101/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  101

• NULL/NOT NULL

• UNIQUE

• PRIMARY KEY

• FOREIGN KEY

• CHECK  

  Tipovi podataka (ORACLE)

Page 102: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 102/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  102

•  VARCHAR2(size )

• CHAR [(size )] 

• NUMBER [( p  ,s )] 

• DATE 

 

Tipovi podataka Veliki objekti

Page 103: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 103/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  103

  PRIMJER   – Relacijski model

Page 104: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 104/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  104

  SQL – Kreiranje tablica

Page 105: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 105/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  105

CREATE TABLE MJESTO

( PBR NUMBER(10) NOT NULL ,

NAZIV VARCHAR2(40) NOT NULL ,

CONSTRAINT mjesto_pk  PRIMARY KEY (PBR));

  SQL – Kreiranje tablica

Page 106: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 106/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  106

CREATE TABLE OSOBA

( MBR NUMBER(10) NOT NULL ,

IME VARCHAR2(25) NOT NULL ,

PREZIME VARCHAR2(25) NOT NULL ,

EMAIL VARCHAR2(40) , 

PBR NUMBER(10) NOT NULL ,

CONSTRAINT osoba_pk  PRIMARY KEY (MBR),

CONSTRAINT osoba_mjesto_fk  FOREIGN KEY (PBR)

REFERENCES MJESTO(PBR));

Page 107: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 107/180

Page 108: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 108/180

 

Page 109: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 109/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  109

DML naredbeSELECT, INSERT, UPDATE, DELETE

Page 110: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 110/180

  INSERT – Unos podataka u tablicu

Page 111: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 111/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  111

• INSERT INTO ime_tablice (stupac, stupac,…)  VALUES (vrijednost, vrijednost, …); 

Primjeri:

• INSERT INTO osoba (mbr, ime, prezime, email)

 VALUES (1, 'Ivo', 'Ivic', '[email protected]');

• INSERT INTO osoba

 VALUES (1, 'Ivo', 'Ivic', '[email protected]'); 

  INSERT – Unos podataka u tablicu

Page 112: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 112/180

 Ak.god. 2014/2015. B AZE PODATAKA  112

• INSERT se može koristiti i za kopiranje podatakaiz druge tablice. 

Primjer:

• INSERT INTO osoba_2 (mbr, ime, prezime, email)

SELECT mbr, ime, prezime, email

FROM osoba;

  UPDATE –  Aţuriranje podataka u tablici 

Page 113: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 113/180

 Ak.god. 2014/2015. B AZE PODATAKA  113

• UPDATE ime_tablice [alias] SETstupac [,stupac…] = {iskaz, podupit} 

[WHERE uvjet]; 

Primjer:

• UPDATE osoba SET email='[email protected]'

WHERE mbr=1; 

  DELETE – Brisanje podataka u tablici

Page 114: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 114/180

 Ak.god. 2014/2015. B AZE PODATAKA  114

• DELETE FROM ime_tablice 

[WHERE uvjet]; 

Primjer:

• DELETE FROM osoba

WHERE mbr=2;

  SELECT – Selektiranje podataka iz tablice

Page 115: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 115/180

 Ak.god. 2014/2015. B AZE PODATAKA  115

• SELECT stupac, stupac, stupac, … FROM ime_tablice 

[WHERE uvjet]; 

Primjeri:

• SELECT mbr, ime, prezime, email

FROM osoba;

• SELECT * FROM osoba; 

  INSERT – Primjeri

Page 116: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 116/180

 Ak.god. 2014/2015. B AZE PODATAKA  116

• INSERT INTO mjesto (pbr, naziv)

 VALUES (88000, 'Mostar');

• INSERT INTO mjesto (pbr, naziv) 

 VALUES (88220, 'Široki Brijeg'); 

• INSERT INTO osoba (mbr, ime, prezime, email, pbr)  VALUES (1, 'Ivo', 'Ivic', '[email protected]', 88000);

• INSERT INTO osoba (mbr, ime, prezime, pbr) 

 VALUES (2, 'Mate', 'Matic', 88220);

  INSERT – Primjeri

Page 117: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 117/180

 Ak.god. 2014/2015. B AZE PODATAKA  117

• INSERT INTO osoba (mbr, ime, prezime, email, pbr) 

 VALUES (2, 'Pero', 'Peric', '[email protected]', 88000);→ ORA-00001: unique constraint (PC-1.OSOBA_PK) violated

• INSERT INTO osoba (mbr, ime, prezime, email, pbr)  VALUES (3, 'Pero', 'Peric', '[email protected]', 90000);

→ ORA-02291: integrity constraint (PC-1.OSOBA_MJESTO_FK) violated - parent key not found

• INSERT INTO osoba (mbr, ime, email, pbr) 

 VALUES (3, 'Pero', '[email protected]', 88000);→ ORA-01400: cannot insert NULL into ("OSOBA"."PREZIME")

  UPDATE – Primjeri

Page 118: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 118/180

 Ak.god. 2014/2015. B AZE PODATAKA  118

• UPDATE mjesto SET pbr=10000WHERE naziv='Mostar';

→ ORA-02292: integrity constraint (PC-1.OSOBA_MJESTO_FK)violated - child record found

• UPDATE mjesto SET naziv='Š.Brijeg'WHERE pbr=88220; 

• UPDATE osoba SET email='[email protected]'

WHERE mbr=2;

  DELETE – Primjeri

Page 119: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 119/180

 Ak.god. 2014/2015. B AZE PODATAKA  119

• DELETE FROM mjestoWHERE pbr=88000;

→ ORA-02292: integrity constraint (PC-1.OSOBA_MJESTO_FK)violated - child record found

• DELETE FROM osoba

WHERE mbr=1;

• DELETE FROM mjesto

WHERE pbr=88000;

 

Page 120: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 120/180

 Ak.god. 2014/2015. B AZE PODATAKA  120

Sigurnost baze podataka 

Page 121: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 121/180

  Korisnici i sigurnost

Page 122: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 122/180

 Ak.god. 2014/2015. B AZE PODATAKA  122

Page 123: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 123/180

  Sistemske privilegije 

Page 124: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 124/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  124

• više od 100 sistemskih privilegija 

• Tipiĉne DBA privilegije:

 – CREATE USER

 – DROP USER

 – DROP ANY TABLE – BACKUP ANY TABLE

 – SELECT ANY TABLE

 – CREATE ANY TABLE

  Sistemske privilegije 

Page 125: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 125/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  125

• Osnovna sintaksa za dodjeljivanje sistemskih privilegija:

GRANT sistemske_privilegije 

TO korisnik  | uloga | PUBLIC

[WITH ADMIN OPTION]

• Osnovna sintaksa za ukidanje sistemskih privilegija:

REVOKE sistemske_privilegije 

FROM korisnik  | uloga | PUBLIC

  Sistemske privilegije

Page 126: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 126/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  126

Primjeri:

• GRANT create session, create table,

create sequence, create view 

TO pero;

• REVOKE create view 

FROM pero; 

  Uloga (Role)

Page 127: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 127/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  127

Korisnici

Privilegije

Uloga

Dodjeljivanje privilegija korisnicimabez definirane uloge

Dodjeljivanje privilegija korisnicimanakon definiranja uloge

  Uloga (Role)

Page 128: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 128/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  128

• CREATE ROLE uloga_1 IDENTIFIED BY uloga_1;

• GRANT create session, create table, create view 

TO uloga_1;

• GRANT uloga_1 

TO pero;

Page 129: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 129/180

  Objektne privilegije 

Page 130: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 130/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  130

• Osnovna sintaksa za dodjeljivanje objektnih privilegija:

GRANT objektne_privilegije ON ime_objekta

TO korisnik  | uloga | PUBLIC

[WITH GRANT OPTION]

• Osnovna sintaksa za ukidanje objektnih privilegija:

REVOKE objektne_privilegije 

ON ime_objekta 

FROM korisnik  | uloga | PUBLIC

  Objektne privilegije 

Page 131: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 131/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  131

Primjer:

• GRANT select, insert 

ON osoba

TO pero, mate

WITH GRANT OPTION;

• GRANT select 

ON mjesto

TO PUBLIC;

 

Page 132: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 132/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  132

Upravljanje transakcijama 

 

Upravljanje transakcijama

Page 133: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 133/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  133

• Pod transakcijom se podrazumijeva aktivnost ili niz

aktivnosti koje izvršava jedan korisnik ili aplikacijskiprogram, a koja ĉita ili aţurira sadrţaj baze podataka. 

• To je logička radna jedinica baze podataka 

• Transakcija se logički mora provesti kao nedjeljiva cjelina  ̶ svaka transakcija unosi promjenu u bazi

 ̶ pojedinačne operacije unutar transakcije nisu bitne same zasebe

 

Upravljanje transakcijama

Page 134: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 134/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  134

1) UPDATE racun SET saldo=saldo-500WHERE id_racuna=1;

2) UPDATE racun SET saldo=saldo+500

WHERE id_racuna=2;

Transakcija se mora izvršiti u potpunosti (u gornjem sluĉaju obeUPDATE naredbe) ili nikako –  “SVE ili NIŠTA”  

Raĉun 1  Raĉun 2 

500 KM

5.000 KM 1.000 KM

 

Osobine transakcija

Page 135: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 135/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  135

Tzv. ACID osobine transakcija:

•  Atomicity  –  „sve ili ništa‟ (transakcije nije moguće samodjelomično izvršiti) 

• Consistency  – transakcija mora transformirati bazu iz jednog

konzistentnog stanja u drugo

• Isolation  – učinak transakcije postaje vidljiv drugim transakcijama

tek nakon završetka transakcije promatrajući izvana transakcija možebiti ili izvedena ili ne

• Durability  – rezultat uspješno završenih (potvrĎenih) transakcija

se trajno bilježi u bazu podataka i ne smije se izgubiti zbognaknadnih grešaka (čak ni u slučaju pada sustava) 

 

Upravljanje transakcijama (ORACLE)

Page 136: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 136/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  136

• 2 tipa transakcija: 

o DDL – sadrži jedan DDL iskaz 

o DML – sadrži jedan ili više DML iskaza

• Transakcija zapoĉinje kada je: 

o DDL naredba izdana

o Pokrenut prvi DML iskaz nakon COMMIT-a

• Transakcija se moţe završiti na sljedeći naĉin:

o COMMIT iskazom – potvrdi sve izmjene 

o ROLLBACK  iskazom – poništi sve izmjene 

o DDL iskazom→ automatski COMMIT  

o Padom sustava→ automatski ROLLBACK

 

Upravljanje transakcijama Primjer

Page 137: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 137/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  137

SELECT placa FROM djelatnikWHERE id_djelatnika=1;

UPDATE djelatnikSET placa=placa+1000WHERE id_djelatnika=1;

COMMIT;

t1

t2

t3

t4

t5

 Vrijeme Sesija 1 Sesija 2

SELECT placa FROM djelatnikWHERE id_djelatnika=1; SELECT placa FROM djelatnikWHERE id_djelatnika=1;

2000

2000 3000

SELECT placa FROM djelatnik

WHERE id_djelatnika=1;

SELECT placa FROM djelatnik

WHERE id_djelatnika=1;3000 3000

 

Upravljanje transakcijama Primjer

Page 138: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 138/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  138

SELECT placa FROM djelatnikWHERE id_djelatnika=1;

UPDATE djelatnikSET placa=placa+1000WHERE id_djelatnika=1;

ROLLBACK ;

t1

t2

t3

t4

t5

 Vrijeme Sesija 1 Sesija 2

SELECT placa FROM djelatnikWHERE id_djelatnika=1; SELECT placa FROM djelatnikWHERE id_djelatnika=1;

2000

2000 3000

SELECT placa FROM djelatnik

WHERE id_djelatnika=1;

SELECT placa FROM djelatnik

WHERE id_djelatnika=1;2000 2000

Page 139: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 139/180

  Zakljuĉavanje (locking)

Page 140: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 140/180

 Ak.god. 2014/2015. 

B AZE PODATAKA  140

Dijeljeno zakljuĉavanje (shared lock, read lock)

 ̶ Kljuĉ za ĉitanje  – npr. transakcija SQL naredbom SELECT zaključaobjekt za čitanje. ̶ Bilo koja druga transakcija taj objekt moţe zakljuĉati za ĉitanje,

ali ga niti jedna transakcija ne moţe zakljuĉati za pisanje.

Ekskluzivno zakljuĉavanje (exclusive lock, write lock)

 ̶ Kljuĉ za pisanje  – npr. transakcija SQL naredbom (INSERT,UPDATE ili DELETE) zaključa objekt za pisanje.

 ̶ Niti jedna transakcija taj objekt ne moţe zakljuĉati niti zaĉitanje niti za pisanje, dok ga transakcija u kojoj je izvršenozaključavanje ne otključa. 

  Zakljuĉavanje (locking)

Page 141: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 141/180

 Ak.god. 2014/2015. B AZE

 PODATAKA

  141

Proces1 – postavio ključ na objekt 

Proces2 – pokušava postaviti ključ na isti objekt kao i Proces1 

  Zakljuĉavanje (locking)

Page 142: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 142/180

 Ak.god. 2014/2015. B AZE

 PODATAKA

  142

Protokol dvofaznog zakljuĉavanja 

Two-phase locking protocol (2PL)

1) prije obavljanja operacije nad objektom (npr. n-torkom iz baze),transakcija mora za taj objekt zatražiti ključ 

2) nakon otpuštanja ključa, transakcija ne smije više zatražitinikakav ključ

Transakcije koje poštuju 2PL protokol imaju 2 faze:

1) fazu pribavljanja ključeva (faza rasta - growing phase)  

2) fazu otpuštanja ključeva (fazu suţavanja - shrinking phase)  

-> COMMIT ili ROLLBACK na kraju transakcije

  Zakljuĉavanje (locking)

Page 143: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 143/180

 Ak.god. 2014/2015.  B AZE PODATAKA  143

• Svojstvo nesmetanog konkurentnog (višekorisničkog) izvoĎenjatransakcija naziva se serijalizabilnost.

• Serijalizabilnost (serializability) redoslijeda izvršavanjatransakcija je osigurana ako sve transakcije poštuju protokoldvofaznog zaključavanja (2PL). 

 

Razine izolacije (isolation levels)

Page 144: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 144/180

 Ak.god. 2014/2015.  B AZE PODATAKA  144

• Kod zapisivanja se uvijek traži ekskluzivno zaključavanje koje sezadržava do kraja transakcije. 

• Kod ĉitanja možemo imati različite načine zaključavanja: 

o read uncommitted

čitanje bez zaključavanja; 

o read committed

zahtijeva dijeljeno zaključavanje za sve zapise koji su dohvaćeni upitima; otključava zapise odmah nakon što su pročitani; 

o repeatable read

zahtijeva dijeljeno zaključavanje za sve zapise koji su dohvaćeni upitima; podaci ostaju zaključani do kraja transakcije; 

  Granulacija zakljuĉavanja 

Page 145: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 145/180

 Ak.god. 2014/2015.  B AZE PODATAKA  145

• Granulacija  je odreĎena veličinom objekta koji se zaključava:

o n-torka, stranica (fizički blok na kojem su zapisi pohranjeni),tablica ili baza podataka.

  Mrtva toĉka (deadlock)

Page 146: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 146/180

 Ak.god. 2014/2015.  B AZE PODATAKA  146

• Mrtva toĉka (deadlock) nastaje kada dvije (ili više)transakcija, obje (sve) čekaju da se otpusti zaključavanje kojedrži druga transakcija. 

Page 147: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 147/180

  Upravljanje transakcijama i zakljuĉavanje 

St j t ij COMMIT ili ROLLBACK db

Page 148: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 148/180

 Ak.god. 2014/2015.  B AZE PODATAKA  148

• Stanje sustava prije COMMIT ili ROLLBACK naredbe:

 – moguće je vratiti sustav u stanje prije izvršavanja naredbi iztransakcije

 – korisnik koji radi izmjene podataka kroz transakciju moževidjeti efekte tih izmjena (npr. izvršavanjem SELECT iskaza) 

 – ostali korisnici ne mogu vidjeti efekte navedenih izmjena

Zakljuĉavanje:

 – n-torke nad kojima se rade izmjene kroz transakciju (INSERT,UPDATE, DELETE) automatski se zaključavaju i ostali korisniciih ne mogu mijenjati

Napomena: Npr. u Oracle sustavu implicitno zakljuĉavanjeće se desiti za sve SQL iskaze osim SELECT -a

  Upravljanje transakcijama i zakljuĉavanje 

Page 149: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 149/180

 Ak.god. 2014/2015.  B AZE PODATAKA  149

• Stanje sustava nakon izvršavanja COMMIT naredbe:

 – izmjene podataka u bazi postaju trajne – sustav se više ne može vratiti u stanje prije izvršavanja

naredbi iz transakcije

 – svi korisnici mogu vidjeti efekte izmjena učinjenih kroztransakciju

Zakljuĉavanje:

 – n-torke nad kojima su vršene izmjene kroz transakcijunisu više zaključane i navedene n-torke postaju dostupneza izmjenu i drugim korisnicima

Page 150: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 150/180

 

Page 151: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 151/180

 Ak.god. 2014/2015.  B AZE PODATAKA  151

Objekti u bazi podataka

TABLE, VIEW, INDEX, SEQUENCE, SYNONYM,STORED PROCEDURE, TRIGGER

 

Objekti u bazi podataka

Page 152: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 152/180

 Ak.god. 2014/2015.  B AZE PODATAKA  152

• TABLE – Tablica 

•  VIEW – Pogled 

• INDEX – Indeks 

• SEQUENCE – Sekvenca (Oracle)

• SYNONYM – Sinonim

• STORED PROCEDURE – Pohranjena procedura

• TRIGGER – Okidač 

 

Pogled (VIEW)

Š

Page 153: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 153/180

 Ak.god. 2014/2015.  B AZE PODATAKA  153

Što je pogled? 

o  “prozor” u podatke 

o podaci se izvode, ne posjeduju

o pohranjuje se kao SELECT izraz u rječnik podataka 

Uporaba pogleda

o za ograničenje pristupa podacima 

o za pojednostavljenje složenih upita 

o za omogućavanje neovisnosti podataka 

o za prikaz različitih pogleda na iste podatke 

 

Pogled (VIEW)

Page 154: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 154/180

 Ak.god. 2014/2015.  B AZE PODATAKA  154

 

Pogled (VIEW)

Page 155: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 155/180

 Ak.god. 2014/2015.  B AZE PODATAKA  155

Jednostavni pogled

o podaci su iz jedne tablice

o ne sadrži funkcije ili grupeo može izvršiti DML

Sloţeni pogled 

o podaci su iz više tablica

o sadrži funkcije ili grupe

o ne može izvršiti DML 

 

Kreiranje pogleda (VIEW)

Page 156: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 156/180

 Ak.god. 2014/2015.  B AZE PODATAKA  156

CREATE OR REPLACE VIEW djelatnik_imenik

 ASSELECT id_djelatnika, ime, prezime, email, telefon

FROM djelatnik;

CREATE VIEW radno_mj_stat (radmj,minplac,maxplac,prosjek) 

 AS

SELECT rm.naziv_radmj, min(placa), max(placa), avg(placa)

FROM djelatnik d, radno_mjesto rm

WHERE d.sifra_radmj=rm.sifra_radmj

GROUP BY  rm.naziv_radmj;

 

Brisanje pogleda (VIEW)

Page 157: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 157/180

 Ak.god. 2014/2015.  B AZE PODATAKA  157

• Pogled možete izbrisati bez ikakvog gubitka podataka jer je pogled (view) baziran na tablicama u bazi.

• Brisanje pogleda nema nikakvog utjecaja na te tablice ipodatke u njima.

DROP VIEW ime_pogleda

 

Indeks (INDEX)

Page 158: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 158/180

 Ak.god. 2014/2015.  B AZE PODATAKA  158

o Brzina pristupa podacima u relaciji je važno svojstvo sustava za

upravljanje podacima. Najjednostavniji način pristupa,sekvencijalna pretraga, u većini slučajeva ne zadovoljava.

o Kreiranjem indeksa formira se struktura B-stabla koja omogućavanesekvencijalni pristup do n-torke u relaciji. Nesekvencijalnipristup moguć je prema vrijednostima onih atributa nad kojima je

izgraĎena indeksna struktura.

o Nad jednom relacijom može biti izgraĎeno više indeksa, od kojihsvaki može sadržavati jedan ili više atributa.

o Osim radi poboljšanja performansi sustava, indeksi se kreiraju iradi osiguranja jedinstvenosti vrijednosti atributa u relaciji. 

 

Kreiranje indeksa (INDEX)

AUTOMATSKI

Page 159: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 159/180

 Ak.god. 2014/2015.  B AZE PODATAKA  159

 AUTOMATSKI

• UNIQUE INDEX se automatski kreira kada se definiraPRIMARY KEY ili UNIQUE CONSTRAINT u definicijitablice.

RUĈNO 

• Korisnik može ručno dodati indeks na neki drugi atribut(radi ubrzanja pristupa podacima).

Primjer:

• CREATE INDEX  djelatnik_prez_idxON djelatnik(prezime); 

 

Indeks (INDEX)

Page 160: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 160/180

 Ak.god. 2014/2015.  B AZE PODATAKA  160

Indekse bi u principu trebalo primjenjivati u

sljedećim sluĉajevima:

• za atribute prema kojima se obavlja spajanje relacija

• za atribute koji se često koriste za postavljanje uvjeta

selekcije• za atribute prema kojima se često obavlja grupiranje

ili sortiranje 

 

Indeks (INDEX)

ĉ

Page 161: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 161/180

 Ak.god. 2014/2015.  B AZE PODATAKA  161

Prilikom kreiranja indeksa treba voditi raĉuna i o

nekim njihovim negativnim aspektima, te ih trebakoristiti samo tamo gdje je njihova uporabaopravdana.

• Indeksi zauzimaju značajan prostor 

•  A žuriranje vrijednosti atributa nad kojima je izgraĎenindeks traje znatno dulje nego ažuriranje vrijednosti nadkojima nema indeksa (ovdje treba razlikovati atributeprema kojima se pronalaze n-torke koje treba ažurirati,od atributa čije se vrijednosti ažuriraju) 

 

Indeks (INDEX)

d k bi b l i j ji i k lik

Page 162: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 162/180

 Ak.god. 2014/2015.  B AZE PODATAKA  162

Indekse ne bi trebalo primjenjivati ukoliko:

• vrijednosti atributa za kojeg se gradi indeks imaju relativnomali broj različitih vrijednosti (npr. spol_osobe s dopuštenimvrijednostima M, Ţ, u relaciji s 30 000 n-torki)

• u relaciji predstoji velik broj upisa, izmjena ili brisanja n-torki.

Preporučljivo je u takvim slučajevima postojeće indekseizbrisati, te ih ponovo izgraditi tek nakon obavljenih promjenana podacima.

• relacija sadrži vrlo mali broj n-torki (npr. do stotinu). U takvimslučajevima sustav lakše pristupa sekvencijalnom pretragom,

nego prolaskom kroz strukturu B-stabla. 

  Primarni kljuĉ (PK) – Automatsko generiranje vrijednosti

Page 163: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 163/180

 Ak.god. 2014/2015.  B AZE PODATAKA  163

• Oracle  –> SEQUENCE, IDENTITY (od v.12c)

• MS SQL Server  –> IDENTITY

• MS Access  –> AUTONUMBER

• MySQL  –> AUTO_INCREMENT

• PostgreSQL  –> SERIAL, BIGSERIAL

• ...

 

Sekvenca (SEQUENCE)

P i j

Page 164: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 164/180

 Ak.god. 2014/2015.  B AZE PODATAKA  164

Primjer:

Sekvenca (Oracle)

o automatski generira jedinstveni broj

o

najčešće se koristi za dodijeljivanje vrijednosti PK(PRIMARNOM KLJUČU) 

o sekvenci može pristupati više korisnika 

 

Sekvenca (SEQUENCE)

Page 165: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 165/180

 Ak.god. 2014/2015.  B AZE PODATAKA  165

• CREATE SEQUENCE odjel_sifra_seqINCREMENT BY  1

START WITH 1

MAXVALUE 9999

NOCACHENOCYCLE;

 

Sekvenca (SEQUENCE)

Page 166: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 166/180

 Ak.god. 2014/2015.  B AZE PODATAKA  166

• INSERT INTO odjel (sifra_odjela, naziv_odjela) VALUES (odjel_sifra_seq.NEXTVAL, 'Strategija i razvoj');

• SELECT odjel_sifra_seq.CURRVAL

FROM dual;

 

Sinonim (SYNONYM)

Page 167: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 167/180

 Ak.god. 2014/2015.  B AZE PODATAKA  167

Sinonim (Synonym) je drugi naziv za objekt

koristan kod referenciranja na objekte drugih korisnika.

Primjer:

CREATE [PUBLIC] SYNONYM ime_sinonima

FOR  [vlasnik.]ime_objekta;

CREATE SYNONYM djelatnik

FOR fsr.djelatnik;

Page 168: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 168/180

 

• ProizvoĎači SUBP koriste vlastite inačice jezika za definiranje 

Pohranjena procedura (STORED PROCEDURE)

Page 169: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 169/180

 Ak.god. 2014/2015.  B AZE PODATAKA  169

pohranjenih procedura (standard postoji, ali je rijetko gdje

implementiran)o Oracle: PL/SQL

PL/SQL (Procedural Language / Structured Query Language)

o Microsoft SQL Server: T-SQLT-SQL (Transact-SQL)

• Navedeni jezici proširuju mogućnosti SQL jezika proceduralnimelementima koji se koriste u strukturiranim jezicima (C, Java, ...).

Osim SQL naredbi, pohranjene procedure omogućuju korištenje:

o varijabli

o naredbi za kontrolu toka programa (if, for, while, ...)o naredbi za rukovanje iznimkama (exception handling)

 

• Upotrebom pohranjenih procedura omogućena je zaštita

Pohranjena procedura (STORED PROCEDURE)

Page 170: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 170/180

 Ak.god. 2014/2015.  B AZE PODATAKA  170

podataka na razini funkcije (a ne samo objekta).

• Osnovna sintaksa za dodjeljivanje dozvole za izvršavanje procedure: 

GRANT EXECUTE 

ON { ime_procedure | ime_funkcije }TO { korisnici | uloge | PUBLIC }

[ WITH GRANT OPTION ]

• Osnovna sintaksa za ukidanje dozvole za izvršavanje procedure: 

REVOKE EXECUTE 

ON { ime_procedure | ime_funkcije }

FROM { korisnici | uloge | PUBLIC }[ CASCADE | RESTRICT ]

Page 171: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 171/180

Page 172: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 172/180

 

Primjer (klijent-server arhitektura oslonjena na server)

Primjer: Prebacivanje iznosa s jednog raĉuna na drugi P j t j li d i b j i č i k t j b j i

Page 173: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 173/180

 Ak.god. 2014/2015.  B AZE PODATAKA  173

EXECUTE PROCEDURE

prebaci (1, 2, 500);

CREATE PROCEDURE prebaci (...) 

DEFINE ...

SELECT ...SELECT ...

UPDATE ...UPDATE ...

END PROCEDURE;

Prvo se provjerava postoje li zadani brojevi računa i ako postoje, prebacuje se iznos(od 500 KM) s jednog računa na drugi (rješenje s korištenjem pohranjene procedure).

Page 174: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 174/180

 

Okidaĉ (TRIGGER) 

 “Pasivni” SUBP 

Page 175: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 175/180

 Ak.god. 2014/2015.  B AZE PODATAKA  175

• konvencionalni SUBP je pasivan• operacije nad podacima se izvršavaju isključivo na temeljueksplicitnog zahtjeva korisnika / aplikacije

 “Aktivni” SUBP i “aktivne” baze podataka 

• aktivni SUBP autonomno reagira na odreĎene dogaĎaje (events)

• u aktivnim bazama podataka neke operacije nad podacima seizvršavaju automatski, reakcijom na odreĎeni dogaĎaj ili stanje 

 

• SUBP – definiranje aktivnih pravila (active rules)

Okidaĉ (TRIGGER) 

Page 176: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 176/180

 Ak.god. 2014/2015.  B AZE PODATAKA  176

• DogaĊaj-Uvjet-Akcija (ECA: Event-Condition-Action)

→ Okidaĉi (triggers)

o dogaĊaj (event): ako se dogodi, izračunava se uvjet (npr. unos - INSERT, izmjena - UPDATE ili brisanje - DELETE podataka)

o uvjet (condition): ako je rezultat izračunavanja uvjeta istina,obavljaju se akcije

o akcije (action): niz operacija, najčešće operacije nadpodacima

ON event IF condition THEN action

 

• Okidaĉi (trigeri) se izvršavaju automatski kod izvršavanja akcijskihSQL it (INSERT UPDATE DELETE) d j di i t bli

Okidaĉ (TRIGGER) 

Page 177: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 177/180

 Ak.god. 2014/2015.  B AZE PODATAKA  177

SQL upita (INSERT, UPDATE, DELETE) nad pojedinim tablicama u

bazi podataka.

 

• Pri definiciji okidača moguće je specificirati koje akcije (operacije)kti i j kid č (t i )

Okidaĉ (TRIGGER) 

Page 178: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 178/180

 Ak.god. 2014/2015.  B AZE PODATAKA  178

aktiviraju okidač (triger): 

INSERT, UPDATE, DELETE

• TakoĎer, pri definiciji okidača moguće je specificirati da li se akcijenavedene u samom okidaču obavljaju:

o nakon što se obavi operacija koja je aktivirala okidač 

 AFTER INSERT, AFTER UPDATE, AFTER DELETE

o prije nego se obavi operacija koja je aktivirala okidač BEFORE INSERT, BEFORE UPDATE, BEFORE DELETE

o te da li se akcije u okidaču obavljaju jednom za svaku n-torku

na koju je djelovala operacija koja je aktivirala okidač FOR EACH ROW

Page 179: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 179/180

 

Baze podataka

Page 180: BAZE Predavanja

8/10/2019 BAZE Predavanja

http://slidepdf.com/reader/full/baze-predavanja 180/180

Web:

http://www.fsr.ba/~goran

Pitanja, primjedbe, dogovor za konzultacije ...

o E-mail: [email protected]

goran kraljevic@sve mo ba