SVEUČILIŠTE U MOSTARU FAKULTET STROJARSTVA I RAČUNARSTVA

BAZE PODATAKA
Nastavnik: Prof.dr.sc. Draţena Gašpar Asistent: Goran Kraljević, dipl.ing.rač.

Ak.god. 2010/2011.

BAZE PODATAKA

1

O predmetu

Web
http://www2.fsr.ba/nastava/baze

Pitanja, primjedbe, dogovor za konzultacije ...

 To: goran.kraljevic@hteronet.ba  Subject: Baze

Ak.god. 2010/2011.

BAZE PODATAKA

2

1

Polaganje ispita ...

Modeliranje SQL Teorija Ukupno :

25 bodova 50 bodova 25 bodova 100 bodova

 Prolazna ocjena na ispitu: min. 50 bodova
50-64 bod. .......... 65-79 bod. .......... 80-89 bod. .......... 90-100 bod. ........ dovoljan (2) dobar (3) vrlodobar (4) izvrstan (5)

Ak.god. 2010/2011.

BAZE PODATAKA

3

Uvod u baze podataka

Ak.god. 2010/2011.

BAZE PODATAKA

4

2

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ČIVO kroz zajedničko i kontrolirano sučelje.

Ak.god. 2010/2011.

BAZE PODATAKA

5

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/ili strojne opreme

Ak.god. 2010/2011.

BAZE PODATAKA

6

3

Ciljevi razvoja baza podataka • Razdvajanje podataka od aplikacija koje ih koriste • Prezentiranje logičkog pogleda na podatke neovisno od fizičkih detalja njihove pohrane u bazu podataka • Omogućavanje različitih pogleda na istu bazu podataka. 2010/2011. BAZE PODATAKA 7 Faze razvoja baza podataka FAZE razvoja Zahtjevi (analiza) Baza podataka Izrada modela podataka Specificiranje podataka Definiranje ograničenja i poslovnih pravila Tablice Relacije Indeksi Ograničenja Pohranjene procedure i okidači Kreiranje tablica Kreiranje relacija Kreiranje ograničenja Pisanje procedura i okidača Punjenje baze podataka Testiranje Aplikacija UtvrĎivanje zahtjeva za aplikaciju Dizajn Forme Izvješća (Reports) Upiti (Queries) Kod aplikacije Kreiranje formi Kreiranje izvješća Kreiranje Upita Pisanje koda aplikacije Testiranje Implementiranje Ak.god.god. BAZE PODATAKA 8 4 . ovisno o korisničkim i aplikativnim potrebama Ak. 2010/2011.

optimizira. a SUBP ga analizira.god. 2010/2011. 2010/2011.Sustav za upravljanje bazama podataka • SUBP (DBMS . obavlja operacije i vraća rezultat. provjerava. transformira u niz operacija koje je potrebno obaviti na fizičkoj razini. BAZE PODATAKA 9 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 Ak. BAZE PODATAKA 10 5 . Ak.Database Management System) Programski sustav koji omogućava upravljanje bazom podataka je sustav za upravljanje bazama podataka.god. • Korisnički programi ne pristupaju podacima direktno već preko DBMS-a • Korisnik ili korisnički program postavlja zahtjev za obavljanjem neke operacije s podacima.

fizička organizacija predstavlja organizaciju fizičke pohrane podataka unutar računala. a ne nužno i poznavanja načina fizičke pohrane podataka.. Ak.god. U okviru toga. BAZE PODATAKA 12 6 . zadaća je SUBP-a omogućiti korisniku (programeru) manipuliranje podacima uz poznavanje samo logičkog opisa baze podataka.god. 2010/2011.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. Oblik i organizacija pohranjenih podataka tu su često potpuno različiti od njihovog logičkog oblika i organizacije.. Sustav za upravljanje bazama podataka Glavni proizvoĎači SUBP (DBMS) • Oracle • IBM DB2 • Microsoft SQL Server • Sybase • Informix (sada IBM) • MySQL • PostgreSQL • . 2010/2011. BAZE PODATAKA 11 • Ak.

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, ...

Ak.god. 2010/2011.

BAZE PODATAKA

13

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 opći slučaj hijerarhijskog modela odnosi definirani eksplicitno aplikacija mora poznavati interni model baze podataka

• Mreţni model

Implementacije u računalu koristile su pokazivače koji izravno adresiraju mjesto zapisa na disku

Ak.god. 2010/2011.

BAZE PODATAKA

14

7

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

Ak.god. 2010/2011.

BAZE PODATAKA

15

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

Ak.god. 2010/2011.

BAZE PODATAKA

16

8

Relacijski model podataka

Ak.god. 2010/2011.

BAZE PODATAKA

17

Relacijski model podataka

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

̶ ̶ ̶

Relacija Atribut Domena

Ak.god. 2010/2011.

BAZE PODATAKA

18

9

• Kandidat ključ (candidate key) – super ključ takav da nema nijedan odgovarajući podskup koji bi bio super ključ unutar relacije. BAZE PODATAKA 20 10 . odabran da bude primarni ključ. da jedinstveno odredi n-torku unutar relacije. • Primarni ključ (primary key) – kandidat ključ koji je odabran • Jedinstveni ključ (unique key) – kandidat ključ koji nije Ak.god. BAZE PODATAKA 19 Ključevi u relacijskoj bazi podataka • Super ključ (superkey) – atribut ili skup atributa koji jedinstveno odreĎuje n-torku unutar relacije.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 Ak.god. 2010/2011. 2010/2011.

Prezime} Kandidat ključ: {Matbr}.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. 2010/2011. dok jedinstvenih ključeva moţe imati više. K nema svojstvo jednoznačnosti. BAZE PODATAKA 21 Ključevi u relacijskoj bazi podataka Primjer: • • • • Super ključ: npr. 2010/2011. • Minimalnost … niti jedan pravi podskup od skupa atributa Ak.god.god. {Matbr. ali relacija moţe imati SAMO JEDAN primarni ključ. BAZE PODATAKA 22 11 . {JMBG} Primarni ključ: {Matbr} Jedinstveni ključ: {JMBG} Ak.  I primarni i jedinstveni ključ moraju ispuniti uvjete jedinstvenosti i minimalnosti.

BAZE PODATAKA 23 Ograničenja u relacijskom modelu podataka Dva opća ograničenja: • Entitetski integritet . BAZE PODATAKA 24 12 .povezan sa primarnim ključem • Referencijalni integritet . Vanjski ključevi omogućuju povezivanje n-torki iz različitih tablica. 2010/2011.god. 2010/2011.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.god. • Primjer: Ak.povezan sa stranim ključem Ak.

DatIsp} PK (ISPIT) = {Matbr. DatIsp} → Matbr. SifPred. tada svaka vrijednost stranog ključa u relaciji r(R) mora biti ili jednaka vrijednosti primarnog ključa neke ntorke 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. SifPred. BAZE PODATAKA 26 13 . DatIsp ne smiju biti NULL Ak. (Codd. ne smije biti jednaka NULL vrijednosti. PrezNas} PK (NASTAVNIK) = {SifNas} → SifNas ne smije biti NULL ISPIT = {Matbr. niti jedna njegova komponenta ne smije poprimiti NULL vrijednost. Ako je primarni ključ relacije sloţen. 2010/2011.god. 1970) Primjeri: NASTAVNIK = {SifNas. SifPred. Ak. 2010/2011.Entitetski integritet • Vrijednost primarnog ključa kao cjeline. BAZE PODATAKA 25 Referencijalni integritet • Ako u relacijskoj shemi R postoji strani ključ (foreign key) koji odgovara primarnom ključu (primary key) relacijske sheme S.god.

• NULL nije nula (0) za numeričke vrijednosti ili “spaces” za tekst. postoje ograničenja (engl.god. domain constraints) koja čine restrikcije nad skupom dozvoljenih vrijednosti atributa relacije. • NULL znači ODSUSTVO (nepostojanje) vrijednosti. 2010/2011. BAZE PODATAKA 27 Operacije u relacijskom modelu Osnovne operacije u relacijskom modelu: • Unija • Razlika • Presjek • Kartezijev produkt • Projekcija • Selekcija • Spajanje (join) Ak. • NULL je način rada s nepotpunim podacima ili izuzetcima. NULL / NOT NULL • NULL – predstavlja vrijednost atributa koja je trenutno nepoznata ili nije primjenjiva za konkretnu n-torku. Ak. 2010/2011.god.Ograničenja u relacijskom modelu podataka Domenski integritet • Kako svaki atribut ima pridruženu domenu. BAZE PODATAKA 28 14 .

ali se ne nalaze u drugoj relaciji Ak.god.Operacije u relacijskom modelu • Unija … relacija koju čine sve n-torke prve i druge relacije Ak. BAZE PODATAKA 29 Operacije u relacijskom modelu • Razlika … relacija koju čine sve n-torke koje se nalaze u prvoj. 2010/2011.god. BAZE PODATAKA 30 15 . 2010/2011.

Operacije u relacijskom modelu • Presjek … relacija koju čine n-torke zajedničke za obje relacije Ak. 2010/2011. BAZE PODATAKA 31 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.god. BAZE PODATAKA 32 16 . 2010/2011.god. a druga iz druge relacije Ak.

BAZE PODATAKA 34 17 . restrikcija. BAZE PODATAKA 33 Operacije u relacijskom modelu • Selekcija (ograničenje. 2010/2011.god.Operacije u relacijskom modelu • Projekcija … rezultat je izbor odreĎenih atributa polazne relacije Ak.god. izbor) … rezultat su samo one n-torke koje zadovoljavaju postavljene uvjete Ak. 2010/2011.

god. Ak.god. BAZE PODATAKA 36 18 . 2010/2011.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 se vrijednosti uspostavlja veza Ak. • Prijevod operacija relacijske algebre u jezik za definiciju i manipulaciju podacima koji danas predstavlja osnovni standard za relacijske baze podataka: SQL. BAZE PODATAKA 35 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 relacijske algebre može izvesti veliki broj kombinacija za obradu i analizu podataka. 2010/2011.

BAZE PODATAKA 38 19 . BAZE PODATAKA 37 Modeliranje podataka Ak.Modeliranje podataka Ak.god.god. 2010/2011. 2010/2011.

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 Ak.veze . BAZE PODATAKA 39 Entitet • Entitet je bilo koji objekt u sustavu koji ţelimo modelirati i o 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 Ak. BAZE PODATAKA 40 20 .god.atributi ER modeliranje: • • • • • • je sastavljeno iz entiteta.veze (entity-relationship model) • ili bolje: model entiteti .ER modeliranje Model entiteti . 2010/2011. 2010/2011.god.

• SLABI entitet – tip entiteta čija egzistencija ovisi o postojanju nekog drugog tipa entiteta. klasificira.god. kvantificira ili izrazi stanje entiteta. 2010/2011. Ak. • ID-ovisan entitet – tip entiteta kod kojega identifikator jednog Ak.Jaki i slabi tip entiteta • JAKI entitet – tip entiteta čija egzistencija nije vezana za postojanje nekog drugog tipa entiteta. 2010/2011. onaj tip entiteta koji ne može postojati u bazi podataka ukoliko neki drugi tip entiteta takoĎer ne postoji u bazi.god. BAZE PODATAKA 42 21 . • Predstavlja opis entiteta identificira. tj. BAZE PODATAKA 41 Atribut • Atribut je svaki detalj koji sluţi da pobliţe odredi. entiteta uključuje identifikator drugog entiteta.

Više na jedan (m:1) . 2010/2011.god. Binarna veza veza 2 entiteta Ternarna veza veza 3 entiteta Unarna veza isti entitet više puta egzistira u različitim ulogama Ak.Jedan na jedan (1:1) .Veze • Entiteti se mogu povezivati jedan s drugim u veze (relacije). BAZE PODATAKA 43 Kardinalnost veze • Odnos omjera meĎu povezanim entitetima nazivamo kardinalnost veze . BAZE PODATAKA 44 22 . 2010/2011.Jedan na više (1:m) .god. • Broj entiteta u vezi predstavlja STUPANJ VEZE.Više na više (m:n) Ak.

Grafički prikaz veze Ak.god. 2010/2011. 2010/2011. Primjer: • Vezu više na više možemo razbiti uvoĎenjem entiteta najam.god. BAZE PODATAKA 45 Razbijanje M:N veza • Veza m:n u ER modelu se moţe razbiti uvoĎenjem novog posredničkog entiteta. BAZE PODATAKA 46 23 . koji sadrži atribut datum_najma Ak.

BAZE PODATAKA 48 24 .god. 2010/2011.. • Ti atributi zajedno tvore složeni primarni ključ novonastalog entiteta. koji sadrži primarne ključeve obaju rubnih entiteta.god. Povratne veze – veza entiteta “na samog sebe” .. Ak..Preslikavanje ER modela u relacije VEZA JEDAN:VIŠE • Primarni ključ entiteta sa strane veze JEDAN doda se kao strani ključ u entitet sa strane veze VIŠE. BAZE PODATAKA 47 Usporedne i povratne veze Usporedne veze – dvije usporedne veze izmeĎu dva entiteta . VEZA VIŠE:VIŠE • Doda se novi entitet. Ak. 2010/2011..

• Da bi razlikovali veze meĎu entitetima stranim ključevima damo različite nazive. • Za povratne veze vrijedi da je strani ključ jednak primarnom ključu relacije. BAZE PODATAKA 49 UML (Unified Modeling Language) Zašto UML (odnosno korištenje jedne notacije)? • Korištenje jednog jezika i notacije bitno olakšava komunikaciju izmeĎu članova različitih timova (projektanti baze podataka. 2010/2011. ali s uvoĎenjem dodatnog stranog ključa). Ak.Preslikavanje ER modela u relacije Usporedne veze • Svaku vezu zamijenimo s po jednim stranim ključem u relaciji na strani veze VIŠE (usporedne veze se preslikaju u jednu. Ak. programeri aplikacije) i time doprinosi da se svi sudionici koji participaraju u projektu osjećaju dijelom jedne cjeline. BAZE PODATAKA 50 25 .god. 2010/2011.god. analitičari. ali pod drugim imenom. Povratne veze • Doda se strani ključ jednak primarnom ključu relacije.

god.Relacije u UML-u  ZAVISNOST (dependency)  ASOCIJACIJA (association)  AGREGACIJA (aggregation)  GENERALIZACIJA (generalization)  REALIZACIJA (realization) 1 1.god. 2010/2011. 2010/2011.* Ak.. BAZE PODATAKA 52 26 . Ak. BAZE PODATAKA 51 UML notacija ...

2010/2011. eliminira dodatne redundantnosti Ak. BAZE PODATAKA 53 Normalizacija podataka • Normalizacija je proces kojime se nastoji eliminirati redundancija. svaka normalna forma garantira da nema odreĎenog tipa zavisnosti svaka viša NF uključuje prethodnu NF te dodatno ureĎuje model. itd. treća NF. tj.god.Normalizacija podataka Ak. druga NF.god. 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. BAZE PODATAKA 54 27 . 2010/2011.

2010/2011. Y je potpuno funkcijski ovisan o X ako vrijedi da je Y funkcijski ovisan o X i nije funkcijski ovisan niti o jednom manjem podskupu atributa X.X->R. BAZE PODATAKA 55 Definicije funkcijskih ovisnosti Potpuna funkcijska ovisnost atributa • U tablici R s atributima X i Y koji mogu biti kompozitni tj.god. BAZE PODATAKA 56 28 .god. ako vrijedi X->Y tada ne smije postojati niti jedan podskup Z koji sadrži samo dio atributa od kojih se sastoji atribut X. Ak.Y ako je svaka pojedina vrijednost atributa X povezana sa samo jednom vrijednošću atributa Y. 2010/2011.Definicije funkcijskih ovisnosti Funkcijska ovisnost atributa • Ako promatramo tablicu R sa atributima X i Y koji mogu biti kompozitni tj. Ak. složeni. Odnosno. za koji bi vrijedilo da je Z->Y. složeni: za atribut Y tablice R kaže se da je funkcijski ovisan o atributu X iste tablice R.

Ak.god.  Uklanjanje ponavljajućih atributa ili grupa atributa Ak. BAZE PODATAKA 58 29 .Definicije funkcijskih ovisnosti Tranzitivna funkcijska ovisnost atributa • Ako vrijedi X->Y i Y-/->X (Y je funkcijski ovisan o X. i ako Y->A (A je funkcijski ovisan o Y) tada vrijedi da je A funkcijski ovisan i o X (X->A). a X nije funkcijski ovisan o Y). BAZE PODATAKA 57 1NF Prva normalna forma (1NF) Tablica se nalazi u prvoj normalnoj formi ako su svi neključni atributi funkcijski ovisni o ključu.god. 2010/2011. 2010/2011. Ako vrijedi A-/->Y tada je A striktno tranzitivno ovisan o X.

Uklanjanje atributa ovisnih samo o dijelu jedinstvenog identifikatora.god.god. 2010/2011. Ak. BAZE PODATAKA 59 3NF Treća normalna forma (3NF) Tablica je u trećoj normalnoj formi ako i samo ako je u 2NF i ako niti jedan neključni atribut nije tranzitivno ovisan o ključu. BAZE PODATAKA 60 30 . 2010/2011. Uklanjanje atributa ovisnih o atributima koji nisu dio jedinstvenog identifikatora. Ak.2NF Druga normalna forma (2NF) Tablica je u drugoj normalnoj formi ako i samo ako je u 1NF i ako su svi neključni atributi potpuno funkcijski ovisni o ključu.

god.Primjer normalizacije podataka • Na slici je dana denormalizirana tablica s nazivima stupaca i vrijednostima redaka. atributima i vezama izmeĎu njih.god. Ime – Ne postoji funkcijska zavisnost : Matbr → SifPred Matbr → NazPred Matbr → DatIsp Matbr → Ocjena Matbr → SifNas Matbr → PrezNas Ak. Ak. BAZE PODATAKA 62 31 . 2010/2011. 2010/2011. Napraviti normalizirani model podataka s pripadajućim entitetima. BAZE PODATAKA 61 Normalizacija podataka (1NF) – Postoji funkcijska zavisnost : Matbr → Prezime.

Normalizacija podataka (1NF) Rješenje:  PK (STUDENT) = {Matbr}  PK (ISPIT) = {Matbr. BAZE PODATAKA 64 32 . DatIsp} Ak. SifPred.god. SifPred. 2010/2011. BAZE PODATAKA 63 Normalizacija podataka (2NF)   {Matbr. ne postoji potpuna funkcijska ovisnost neključnih atributa o ključu ISPIT ne zadovoljava 2 NF ! Rješenje: Ak.god. 2010/2011. DatIsp} → {NazPred} {SifPred} → {NazPred} dakle.

Normalizacija podataka (3NF)   {Matbr.god. 2010/2011. postoji tranzitivna funkcijska ovisnost (koju je potrebno eliminirati) ISPIT ne zadovoljava 3 NF ! Rješenje: Ak. SifPred. BAZE PODATAKA 65 Normalizacija podataka Sve tablice zadovoljavaju 3 NF !  STUDENT (Matbr. Prezime. DatIsp} → {SifNas} {SifNas} → {PrezNas} dakle. 2010/2011.god. NazPred)  NASTAVNIK (SifNas. Ocjena. SifNas) Vaţno: . PrezNas)  ISPIT (Matbr. BAZE PODATAKA 66 33 .Baza podataka treba biti barem u 3 NF ! Ak. SifPred. Ime)  PREDMET (SifPred. DatIsp.

2010/2011. 2010/2011.god.god. BAZE PODATAKA 67 Modeliranje podataka Primjeri Ak.Relacijski model (UML notacija) Ak. BAZE PODATAKA 68 34 .

BAZE PODATAKA 70 35 .god. Ak. 2010/2011. kad je program pušten u rad kod korisnika. BAZE PODATAKA 69 Primjer 1. Za svaki program se evidentira vrijeme utrošeno za njegovu izradu.Primjer 1. ( ER model ) Ak. 2010/2011. korisnika kod kojih ti programi rade. aktivan ili ne. • Profesionalni programer Marko Marković odlučio je napraviti program za evidentiranje svih programa koje je uradio. kao i ostvarene zarade po svakom programu. TakoĎer se evidentira da li je program u uporabi tj. kao i vrijeme utrošeno kod korisnika za prilagodbu programa korisničkim zahtjevima. kao i koliko je od korisnika naplaćeno za taj program.god.

). telefon i sl.god.Stavke fakture s pojedinačnim artiklima. Definirati sve entitete. • Faktura je dokument koji se šalje kupcu kako bi mogao izvršiti plaćanje kupljene robe.).Zaglavlje fakture koje sadrži zajedničke. jedinica mjere.Primjer 1. podaci o fakturi (broj fakture. broj narudžbe prema kojoj je raĎena. Ak.). kao i podaci o kupljenim artiklima (naziv. 2010/2011. ( Relacijski model ) Ak. kupljena količina. BAZE PODATAKA 71 Primjer 2. iznos za plaćanje i sl. 2010/2011. datum izdavanja. opće podatke . cijena i sl. BAZE PODATAKA 72 36 . adresa. rok plaćanja. atribute i veze za proces Fakturiranja kupcima. količinama i cijenama. Faktura se sastoji od 2 osnovna dijela: . Da bi se napravila faktura moraju postojati osnovni podaci o kupcu (naziv.god.

god. ( Relacijski model ) Ak. BAZE PODATAKA 73 Primjer 2. 2010/2011. 2010/2011. BAZE PODATAKA 74 37 .Primjer 2. ( ER model ) Ak.god.

za svakog kandidata ocjena iz pojedinih predmeta iz srednje škole – šifra i naziv predmeta. Matematika u 1. mjesto roĎenja.razreda ima istu šifru za sve škole . BAZE PODATAKA 75 Primjer 3. 2010/2011.god. tekst zadatka. npr. prezime. završena srednja škola (šifra. B. 2010/2011. Isti predmeti u različitim školama imaju istu šifru npr. BAZE PODATAKA 76 38 . D ili E) .god. Šifra odreĎuje predmet u nekom razredu (godini). E ili ništa) Ak. C. Matematika iz 1. šifra općine i naziv općine u kojoj se škola nalazi) . ime. • Na Fakultetu strojarstva i računarstva u Mostaru evidentirani su podaci o kandidatima koji su se prijavili na razradbeni ispit i njihovim rezultatima.razredu i Matematika u 2. mjesto.za svakog kandidata odgovori koje je dao na zadatke (odgovor za svaki pojedini zadatak mogu biti A. Evidentiraju se podaci o: .Primjer 3.podaci o zadacima na razradbenom ispitu – redni broj zadatka.razredu imaju različite šifre. B. naziv.kandidatu: JMBG. C. D. poštanski broj mjesta. ( ER model ) Ak. razred i ocjena. točan odgovor (A. adresa.

Za svaki aerodrom se evidentira šifra i naziv aerodroma. ovisno o njegovoj namjeni. a za svaki pojedini teretni zrakoplov broj dodatno ugraĎenih klimatiziranih kontejnera za prijevoz životinja i je li ugraĎen katapult za izbacivanje tereta padobranom. 2010/2011. • U bazi podataka potrebno je evidentirati podatke o zrakoplovima. evidentira se je li u zrakoplov ugraĎena dodatna oprema: za svaki pojedini putnički zrakoplov evidentira se ima li ugraĎenu internu televiziju. Zrakoplov prema namjeni može biti ili putnički ili teretni (jedno isključuje drugo). Za svaki pojedini zrakoplov. N6061U). Za svaki tip zrakoplova evidentira se šifra tipa i naziv tipa zrakoplova (npr.god. Ak. naziv tipa: "Airbus-A319") te najveća ukupna dozvoljena težina pri polijetanju. 2010/2011. ima li ureĎaj za satelitsku komunikaciju. aerodromima i letovima. BAZE PODATAKA 77 Primjer 4.Primjer 3. BAZE PODATAKA 78 39 . ( Relacijski model ) Ak. Za zrakoplov se evidentiraju godina proizvodnje i tip zrakoplova.god. šifra: 123. Zrakoplov je identificiran svojim jedinstvenim registracijskim brojem (npr.

Evidentira se koji zrakoplov leti na kojem letu. Evidentiraju se kategorije cijena karata. itd).2001).6. 1. Za svakog putnika se evidentira jmbg (jedinstveno odreĎuje putnika). Let je identificiran šifrom i datumom leta (npr. Svaka kategorija cijena ima svoju šifru (jedinstveno identificira kategoriju) i naziv (npr. Putnik ne može za jedan let kupiti više od jedne karte. Putnik kupuje kartu točno odreĎene kategorije cijene za odreĎeni let. a za let se evidentira s kojeg aerodroma zrakoplov polijeće. 2010/2011.) .god.. na koji aerodrom slijeće te vrijeme polijetanja i vrijeme slijetanja. BAZE PODATAKA 80 40 . BAZE PODATAKA 79 Primjer 4. (nastavak zadatka . "s popustom za osobe mlaĎe od 27 godina".. Ak. ( ER model ) Ak. prezime i ime.Primjer 4.. 2010/2011. Evidentiraju se letovi samo putničkih zrakoplova.god. "ekonomska". "poslovna". "OU763". "s popustom za zaposlenika kompanije"..

radnim mjestima (šifra. 2010/2011. vrijednost). U bazi podataka nalaze se podaci o djelatnicima (šifra. datumu kreiranja naloga. organizacijskim jedinicama (šifra. proizvedenom gotovom proizvodu. Ak. prezime. • U procesu proizvodnje prati se utrošak sirovina u proizvodnji 5 proizvoda na osnovu radnog naloga koji sadrži informacije o broju radnog naloga.). naziv.god. stručna sprema. proizvodima (šifra. BAZE PODATAKA 81 Primjer 5. Za proizvodnju svakog pojedinog proizvoda pravi se poseban radni nalog samo za taj proizvod. BAZE PODATAKA 82 41 . sirovinama (šifra. šifra organizacijske jedinice). opis. ( Relacijski model ) Ak. naziv). djelatniku koji ga je inicirao. 2010/2011.god. količini gotovog proizvoda i utrošenoj količini i vrijednosti sirovina za svaki gotovi proizvod pojedinačno i sl. ime. šifra radnog mjesta i sl. datumu izvršenja naloga (proizvodnje).Primjer 4. adresa). naziv.

BAZE PODATAKA 83 Modeliranje podataka Primjeri za vjeţbu Ak. 2010/2011. 2010/2011.Primjer 5.god. BAZE PODATAKA 84 42 . ( ER model ) Ak.god.

koautora koji su s njim učestvovali u pisanju radova. Ak. atributima i vezama izmeĎu njih. (Evidentiranje objavljenih radova) • Profesor programiranja Marko Marković odlučio je napraviti program za evidentiranje svojih objavljenih radova.Primjer 1. klasifikacijama. godina objavljivanja kao i časopisa u kojima je objavljivano. 2010/2011. stručni ili pregledni rad. Napraviti normalizirani model podataka s pripadajućim entitetima. Ak. BAZE PODATAKA 86 43 . koautorima i časopisu u kojem je rad objavljen.god. Za svaki rad unose se podaci o naslovu rada. To podrazumijeva evidentiranje svih do sada objavljenih radova. naslova radova.god. (Ugovori) • Na slici je dana denormalizirana tablica UGOVORI s nazivima stupaca i vrijednostima redaka. te da li je rad objavljen u meĎunarodnom ili domaćem časopisu. BAZE PODATAKA 85 Primjer 2. 2010/2011. TakoĎer treba uspostaviti klasifikaciju radova po principu: znanstveni.

Prilikom izlaska na teren potrebno je zabilježiti točno vrijeme odlaska i povratka. Jednim ugovorom se definira točno razdoblje servisiranja (od kojeg do kojeg datuma). SC-scenarist. ili više njih. Ak.Primjer 3. a mogu biti npr.god. U tvrtki radi više servisera i pri kupnji se ugovara koji je serviser zadužen za kojeg kupca s tim da na jednog servisera doĎe više kupaca. Primjerci filma su odreĎeni šifrom filma i rednim brojem primjerka. Uz svaki primjerak evidentira se datum nabavke. (Videoteka) • U videoteci su evidentirani filmovi i primjerci filmova. 2010/2011. RED-redatelj. Funkcije su predstavljene kraticom i nazivom. Za svaki film evidentira se žanr (oznaka i naziv) i distributer (šifra i naziv). SKL-skladatelj. BAZE PODATAKA 87 Primjer 4. vrijeme provedenu na terenu izraženo u satima. a podrazumijeva više izlazaka servisera na teren unutar definiranog vremenskog razdoblja. prezime i ime) i funkcije koje su obavljali u filmu. Napraviti normalizirani model podataka s pripadajućim entitetima. (Tvrtka informatičke opreme) • Tvrtka koja se bavi prodajom informatičke opreme prilikom prodaje iste sa svojim kupcima dogovara uvjete servisiranja opreme. itd.god. Uz svaki film evidentiraju se različiti izvoĎači (šifra. BAZE PODATAKA 88 44 . izvoĎač i film: Ak. Obratite pozornost na tip veze izmeĎu entiteta funkcija. te na kojoj je komponenti. atributima i vezama izmeĎu entiteta. GL-glumac. Naravno. 2010/2011. vršena popravka. intervencija servisera nije nužna.

zanimanje. Na svakom projektu radi više djelatnika iz biroa (šifra. naziv. Ak. stvarni početak. adresa. 2010/2011. planirani datum početka rada na projektu. stvarni svršetak rada na projektu. vrijednost projekta. ugovoreni penali za kašnjenje. Osnovni način poslovanja tehničkog biroa jeste rad na izradi odreĎenih projekata. telefon. ime. stvarni svršetak. što znači da se za svaki projekt trebaju evidentirati osnovni podaci o naručitelju projekta (šifra. telefon.god. 2010/2011. mail) koji rade na odreĎenom radnom mjestu u birou (šifra. mail). rokova i izvršitelja u jednom tehničkom birou. (Tehnički biro) • Napraviti normalizirani model podataka s pripadajućim entitetima. naziv radnog mjesta. planirani svršetak. adresa. prezime. Uz svaki posao (zadatak) evidentira se i naziv zadatka. Projekt se razlaže na više različitih poslova (zadataka). O projektu se vode slijedeći podaci: naziv projekta. BAZE PODATAKA 90 45 . opis).god. Svakom članu projektnog tima dodjeljuje se točno odreĎeni posao (zadatak) što se posebno i evidentira. planirani početak. titula. dodatna napomena. Za svaki projekt postoji samo jedan glavni naručitelj s kojim se sklapa ugovor o poslu. kratak opis.Primjer 5. planirani svršetak rada na projektu. vrijednost i napomena. atributima i vezama izmeĎu entiteta koji bi osigurao evidentiranje projekata. BAZE PODATAKA 89 Sigurnost baze podataka Ak. stvarni početak rada na projektu. opis projekta.

BAZE PODATAKA 92 46 . BAZE PODATAKA 91 Korisnici i sigurnost Ak.god.Sigurnost i integritet • Sigurnost baze podataka se brine da samo ovlašteni korisnici pristupaju podacima • Integritet baze podataka se brine da ovlašteni korisnici koriste podatke na ispravan način Integritet: ̶ korektnost (dopuštene zdravorazumske vrijednosti podataka) ̶ konzistencija (meĎusobna suglasnost podataka) Ak.god. 2010/2011. 2010/2011.

Korisnici i sigurnost • CREATE USER pero IDENTIFIED BY pero. 2010/2011.god. Ak. BAZE PODATAKA 93 Sistemske privilegije • 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 Ak.god. 2010/2011. • ALTER USER pero IDENTIFIED BY pero1. BAZE PODATAKA 94 47 . • CONNECT pero/pero.

god. 2010/2011.Sistemske privilegije • 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 Ak. create view TO pero. BAZE PODATAKA 96 48 . 2010/2011. BAZE PODATAKA 95 Sistemske privilegije Primjeri: • GRANT create session. create sequence.god. create table. Ak. • REVOKE create view FROM pero.

create table. Ak. • GRANT create session. BAZE PODATAKA 98 49 . 2010/2011.god. 2010/2011. BAZE PODATAKA 97 Uloga (Role) • CREATE ROLE uloga_1 IDENTIFIED BY uloga_1.god.Uloga (Role) Korisnici Uloga Privilegije Dodjeljivanje privilegija korisnicima bez definirane uloge Dodjeljivanje privilegija korisnicima nakon definiranja uloge Ak. create view TO uloga_1. • GRANT uloga_1 TO pero.

pogledi. BAZE PODATAKA 99 Objektne privilegije • 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 Ak. 2010/2011. sekvence EXECUTE – procedure ALL.god. sekvence INSERT. 2010/2011.god. BAZE PODATAKA 100 50 . REFERENCES – tablice ALTER – tablice. UPDATE. pogledi INDEX. ALL PRIVILEGES Ak.Objektne privilegije Najčešće korištene objektne privilegije su: • • • • • • SELECT – tablice. DELETE – tablice.

god.god. insert ON djelatnik TO pero. 2010/2011. mate WITH GRANT OPTION. 2010/2011. • GRANT select ON opcina TO PUBLIC. BAZE PODATAKA 101 Upravljanje transakcijama Ak. Ak.Objektne privilegije Primjer: • GRANT select. BAZE PODATAKA 102 51 .

Transakcija se mora izvršiti u potpunosti (u gornjem slučaju obe UPDATE naredbe) ili nikako – “SVE ili NIŠTA” Ak.000 KM Račun 2 1.god.Upravljanje transakcijama • Pod transakcijom se podrazumijeva aktivnost ili niz aktivnosti koje izvršava jedan korisnik ili aplikacijski program. • 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 za sebe Ak. 2010/2011.god. UPDATE racun SET saldo=saldo+500 WHERE id_racuna=2. a koja čita ili aţurira sadrţaj baze podataka.000 KM 1) 2) UPDATE racun SET saldo=saldo-500 WHERE id_racuna=1. BAZE PODATAKA 103 Upravljanje transakcijama 500 KM Račun 1 5. BAZE PODATAKA 104 52 . 2010/2011.

Osobine transakcija Tzv. 2010/2011.god. 2010/2011. ACID osobine transakcija: • Atomicity – „sve ili ništa‟ (transakcije nije moguće samo djelomič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že biti 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 zbog naknadnih grešaka (čak ni u slučaju pada sustava) Ak. BAZE PODATAKA 106 53 . BAZE PODATAKA 105 Upravljanje transakcijama (ORACLE) • 2 tipa transakcija: – DML – sadrži jedan ili više DML iskaza – DDL – sadrži jedan DDL iskaz • Transakcija započinje kada je: – DDL naredba izdana – Pokrenut prvi DML iskaz nakon COMMIT-a • Transakcija se moţe završiti na sljedeći način: – – – – COMMIT iskazom – potvrdi sve izmjene ROLLBACK iskazom – poništi sve izmjene DDL iskazom → automatski COMMIT Padom sustava → automatski ROLLBACK Ak.god.

2010/2011. BAZE PODATAKA 107 Upravljanje transakcijama • 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 kroz transakciju – n-torke nad kojima su vršene izmjene kroz transakciju nisu više zaključane i navedene n-torke postaju dostupne za izmjenu i drugim korisnicima. BAZE PODATAKA 108 54 . izvršavanjem SELECT iskaza) – ostali korisnici ne mogu vidjeti efekte navedenih izmjena – n-torke nad kojima se rade izmjene kroz transakciju (INSERT.god. 2010/2011.Upravljanje transakcijama • Stanje sustava prije izvršavanje COMMIT ili ROLLBACK naredbe: – moguće je vratiti sustav u stanje prije izvršavanja naredbi iz transakcije – korisnik koji radi izmjene podataka kroz transakciju može vidjeti efekte tih izmjena (npr. UPDATE. DELETE) automatski se zaključavaju i ostali korisnici ih ne mogu mijenjati.god. Ak. Napomena: U Oracle sustavu implicitno zaključavanje će se desiti za sve SQL iskaze osim SELECT-a Ak.

3000 Ak.Upravljanje transakcijama • Stanje sustava nakon izvršavanja ROLLBACK naredbe: – izmjene podataka u bazi se poništavaju – sustav se vraća u stanje prije izvršavanja naredbi iz transakcije – n-torke koje su bile implicitno zaključane kroz transakciju nisu više zaključane te postaju dostupne za izmjenu i drugim korisnicima. 3000 COMMIT. BAZE PODATAKA 109 Upravljanje transakcijama Primjer Vrijeme Sesija 1 SELECT placa FROM djelatnik WHERE id_djelatnika=1. 2010/2011.god. BAZE PODATAKA 110 55 . 2010/2011. 2000 SELECT placa FROM djelatnik WHERE id_djelatnika=1. SELECT placa FROM djelatnik WHERE id_djelatnika=1. 2000 Sesija 2 t1 t2 t3 t4 t5 UPDATE djelatnik SET placa=placa+1000 WHERE id_djelatnika=1. SELECT placa FROM djelatnik WHERE id_djelatnika=1. Ak.god. 3000 SELECT placa FROM djelatnik WHERE id_djelatnika=1.

2000 SELECT placa FROM djelatnik WHERE id_djelatnika=1. 2000 SELECT placa FROM djelatnik WHERE id_djelatnika=1.Zaključavanje (locking) . .Upravljanje transakcijama Primjer Vrijeme Sesija 1 SELECT placa FROM djelatnik WHERE id_djelatnika=1. BAZE PODATAKA 111 Tehnike kontrole konkurentnosti • Konzervativne (pesimistične) uzrokuju odgaĎanje transakcija u slučaju da će biti u konfliktu s drugim transakcijama u budućnosti. 2000 Ak. SELECT placa FROM djelatnik WHERE id_djelatnika=1. BAZE PODATAKA 112 56 . 2010/2011. 2010/2011. kada se transakcija potvrĎuje.god.Timestamp • Optimistične su bazirane na pretpostavci da su konflikti rijetki tako da dozvoljavaju transakcijama da nastave i nesinkronizirane i samo provjeravaju konflikt na kraju. 3000 ROLLBACK.god. 2000 Sesija 2 t1 t2 t3 t4 t5 UPDATE djelatnik SET placa=placa+1000 WHERE id_djelatnika=1. SELECT placa FROM djelatnik WHERE id_djelatnika=1. Ak.

̶ repeatable read zahtijeva dijeljeno zaključavanje za sve zapise koji su dohvaćeni upitima. Ak. BAZE PODATAKA 114 57 .Zaključavanje (locking) • mehanizam zabrane pristupa zapisima koje netko obraĎuje ̶ ̶ prije obavljanja operacije podaci se zaključavaju transakcija koja traži zaključavanje mora čekati dok ono ne bude odobreno Dijeljeno zaključavanje (shared lock.god. • Kod čitanja možemo imati različite načine zaključavanja: ̶ ̶ read uncommitted čitanje bez zaključavanja. otključava zapise odmah nakon što su pročitani. 2010/2011. read lock) ̶ obavlja se prije čitanja Ekskluzivno zaključavanje (exclusive lock. podaci ostaju zaključani do kraja transakcije. stranica (fizički blok na kojem su zapisi pohranjeni) Ak. tablica. read committed zahtijeva dijeljeno zaključavanje za sve zapise koji su dohvaćeni upitima. write lock) ̶ prethodi zapisivanju Što se zaključava? ̶ granulacija: polje.god. zapis. BAZE PODATAKA 113 Razine izolacije (isolation levels) • Kod zapisivanja se uvijek traži ekskluzivno zaključavanje koje se zadržava do kraja transakcije. 2010/2011.

UPDATE djelatnik SET placa=placa+1000 WHERE id_djelatnika=1.god. BAZE PODATAKA 115 Deadlock Primjer Vrijeme Sesija 1 Sesija 2 t1 t2 t3 t4 t5 UPDATE djelatnik SET placa=placa+1000 WHERE id_djelatnika=1. UPDATE djelatnik SET placa=placa-500 WHERE id_djelatnika=2.god. BAZE PODATAKA 116 58 . obje (sve) čekaju da se otpusti zaključavanje koje drži druga transakcija.Mrtva točka (Deadlock) • Mrtva točka (deadlock) nastaje kada dvije (ili više) transakcija. 2010/2011. 2010/2011. → ORA-00060: deadlock detected while waiting for resource Ak. Ak. UPDATE djelatnik SET placa=placa-500 WHERE id_djelatnika=2.

2010/2011.god. BAZE PODATAKA 117 Objekti u bazi podataka • TABLE – Tablica • VIEW – Pogled • INDEX – Indeks • SEQUENCE – Sekvenca (ORACLE) • SYNONYM – Sinonim (ORACLE) Ak. BAZE PODATAKA 118 59 . SEQUENCE. SYNONYM Ak.god. INDEX. 2010/2011.Ostali objekti u bazi podataka VIEW.

BAZE PODATAKA 119 Pogled (VIEW) Jednostavni pogled . 2010/2011.ne sadrži funkcije ili grupe .podaci su iz jedne tablice .za ograničenje pristupa podacima pojednostavljenje složenih upita omogućavanje neovisnosti podataka prikaz različitih pogleda na iste podatke Ak.za .ne može izvršiti DML Ak.Pogled (VIEW) Što je pogled? . 2010/2011.pohranjuje se kao SELECT izraz u rječnik podataka Uporaba pogleda .god.za . BAZE PODATAKA 120 60 .može izvršiti DML Sloţeni pogled .sadrži funkcije ili grupe .“prozor” u podatke .podaci se izvode.za .podaci su iz više tablica .god. ne posjeduju .

radno_mjesto rm WHERE d.sifra_radmj GROUP BY rm. max(placa).minplac. ime.prosjek) AS SELECT rm.Kreiranje pogleda (VIEW) CREATE OR REPLACE VIEW djelatnik_imenik AS SELECT id_djelatnika. 2010/2011.god. 2010/2011.naziv_radmj. Ak. telefon FROM djelatnik. prezime. avg(placa) FROM djelatnik d. CREATE VIEW radno_mj_stat (radmj. BAZE PODATAKA 122 61 .maxplac. email.god.sifra_radmj=rm.naziv_radmj. min(placa). BAZE PODATAKA 121 Pogled (VIEW) Ak.

DROP VIEW ime_pogleda Ak.Brisanje pogleda (VIEW) • Pogled možete izbrisati bez ikakvog gubitka podataka jer je pogled (view) baziran na tablicama u bazi. u većini slučajeva ne zadovoljava. BAZE PODATAKA 124 62 . sekvencijalna pretraga.god. Nesekvencijalni pristup moguć je prema vrijednostima onih atributa nad kojima je izgraĎena indeksna struktura. Ak. – Kreiranjem indeksa formira se struktura B-stabla koja omogućava nesekvencijalni pristup do n-torke u relaciji. BAZE PODATAKA 123 Indeks (INDEX) – Brzina pristupa podacima u relaciji je važno svojstvo sustava za upravljanje podacima. indeksi se kreiraju i radi osiguranja jedinstvenosti vrijednosti atributa u relaciji. od kojih svaki može sadržavati jedan ili više atributa. 2010/2011.god. 2010/2011. Najjednostavniji način pristupa. – Nad jednom relacijom može biti izgraĎeno više indeksa. – Osim radi poboljšanja performansi sustava. Brisanje pogleda nema nikakvog utjecaja na te tablice.

Kreiranje indeksa (INDEX) – AUTOMATSKI • UNIQUE INDEX se automatski kreira kada se definira PRIMARY KEY ili UNIQUE CONSTRAINT u definiciji tablice – RUČNO • Korisnik može ručno dodati indeks na neki drugi atribut (radi ubrzanja pristupa podacima) Primjer: • CREATE INDEX djelatnik_prez_idx ON djelatnik(prezime).god. 2010/2011. 2010/2011. BAZE PODATAKA 125 Indeks (INDEX) – 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 Ak.god. BAZE PODATAKA 126 63 . Ak.

2010/2011. Preporučljivo je u takvim slučajevima postojeće indekse izbrisati. U takvim slučajevima sustav lakše pristupa sekvencijalnom pretragom. od atributa čije se vrijednosti ažuriraju) Ak. te ih treba koristiti samo tamo gdje je njihova uporaba opravdana. jer: • indeksi zauzimaju značajan prostor • ažuriranje vrijednosti atributa nad kojima je izgraĎen indeks traje znatno dulje nego ažuriranje vrijednosti nad kojima nema indeksa (ovdje treba razlikovati atribute prema kojima se pronalaze n-torke koje treba ažurirati. spol_osobe s dopuštenim vrijednostima M.god.Indeks (INDEX) – Prilikom kreiranja indeksa treba voditi računa i o nekim njihovim negativnim aspektima. BAZE PODATAKA 128 64 .god. Ak. Ţ. te ih ponovo izgraditi tek nakon obavljenih promjena na podacima. nego prolaskom kroz strukturu B-stabla. do stotinu). 2010/2011. izmjena ili brisanja n-torki. u relaciji s 30 000 n-torki) • u relaciji predstoji velik broj upisa. • relacija sadrži vrlo mali broj n-torki (npr. BAZE PODATAKA 127 Indeks (INDEX) – Indekse ne bi trebalo primjenjivati ukoliko: • vrijednosti atributa za kojeg se gradi indeks imaju relativno mali broj različitih vrijednosti (npr.

BAZE PODATAKA 129 Sekvence (SEQUENCES) • CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}].automatski generira jedinstveni broj . Ak. BAZE PODATAKA 130 65 .obično se koristi za dodijeljivanje vrijednosti PRIMARNOM KLJUČU .sekvenci može pristupati više korisnika Ak.god.Sekvence (SEQUENCES) Što je sekvenca? . 2010/2011. 2010/2011.god.

Ak. BAZE PODATAKA 131 Sekvence (SEQUENCES) • INSERT INTO odjel (sifra_odjela. 'Strategija i razvoj'). • SELECT odjel_sifra_seq.god. 2010/2011.CURRVAL FROM dual.Sekvence (SEQUENCES) • CREATE SEQUENCE dept_deptid_seq INCREMENT BY 10 START WITH 120 MAXVALUE 9999 NOCACHE NOCYCLE. Ak. BAZE PODATAKA 132 66 . 2010/2011.NEXTVAL.god. naziv_odjela) VALUES (odjel_sifra_seq.

ba/nastava/baze Pitanja. primjedbe.  To: goran. CREATE SYNONYM djelatnik FOR fsr. 2010/2011..god. 2010/2011..god.kraljevic@hteronet.Sinonimi (SYNONYMS) Sinonim je drugi naziv za objekt koristan kod referenciranja na objekte drugih korisnika.djelatnik. Primjer: CREATE [PUBLIC] SYNONYM ime_sinonima FOR [vlasnik. BAZE PODATAKA 134 67 . dogovor za konzultacije .]ime_objekta. Ak. BAZE PODATAKA 133 O predmetu Web http://www2.ba  Subject: Baze Ak.fsr.

Sign up to vote on this title
UsefulNot useful