16
1 foiskripte.com „neslužbena skripta“ BAZE PODATAKA - skripta 1. Sustav za upravljanje bazom podataka Baza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski model podataka Za relacijski model podataka, RMP, imamo sljedeće: S je skup relacija (tablica), UI je skup ograničenja stanja relacija i O je skup relacijskih operatora. To znači da će podaci u relacijskoj bazi podataka biti prikazani u obliku relacija (tablica) dok će uvjeti integriteta UI predstavljati ograničenja koja trebaju biti zadovoljena u relacijama da bi se dana baza podataka mogla smatrati valjanom. 3. Vrste baza podataka Vrste baze podataka: hijerarhijske baze podataka (temeljene na hijerarhijskom modelu podataka) mrežne baze podataka (temeljene na mrežnom modelu podataka relacijske baze podataka (temeljene na relacijskom modelu podataka) deduktivne baze podataka (temeljene na deduktivnom modelu podata) temporalne baze podataka (temeljene na temporalnom modelu podataka) objektno/relacijske baze podataka (temeljene na poopćenom relacijskom modelu podataka) objektno orijentirane baze podataka (temeljene na objektnom modelu podataka). 4. Pojam relacije Konačan, neprazan skup atributa, R = {A1,.., Ak, nazivamo relacijskom shemom. Neka je D = D1 È D2 .. Dk, gdje je Dom(Ai) = Di za i = 1,.., k . Slog nad R je funkcija t : R ® D , gdjeje t(Ai) Di , i = 1,.., k . Relacija nad R je konačan skup slogova nad R . Notacija r(R) znači daje r relacija nad R 5. Jednakost relacija

1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

Embed Size (px)

Citation preview

Page 1: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

1 foiskripte.com „neslužbena skripta“

BAZE PODATAKA - skripta

1. Sustav za upravljanje bazom podataka

Baza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta .

2. Relacijski model podataka

Za relacijski model podataka, RMP, imamo sljedeće: S je skup relacija (tablica), UI je skup ograničenja stanja relacija i O je skup relacijskih operatora.

To znači da će podaci u relacijskoj bazi podataka biti prikazani u obliku relacija

(tablica) dok će uvjeti integriteta UI predstavljati ograničenja koja trebaju biti

zadovoljena u relacijama da bi se dana baza podataka mogla smatrati valjanom.

3. Vrste baza podataka

Vrste baze podataka:

hijerarhijske baze podataka (temeljene na hijerarhijskom modelu podataka)

mrežne baze podataka (temeljene na mrežnom modelu podataka

relacijske baze podataka (temeljene na relacijskom modelu podataka)

deduktivne baze podataka (temeljene na deduktivnom modelu podata)

temporalne baze podataka (temeljene na temporalnom modelu podataka)

objektno/relacijske baze podataka (temeljene na poopćenom relacijskom modelu podataka)

objektno orijentirane baze podataka (temeljene na objektnom modelu podataka).

4. Pojam relacije

Konačan, neprazan skup atributa, R = {A1,.., Ak, nazivamo relacijskom shemom.

Neka je D = D1 È D2 .. Dk, gdje je Dom(Ai) = Di za i = 1,.., k .

Slog nad R je funkcija t : R ® D , gdjeje t(Ai) Di , i = 1,.., k . Relacija nad R je konačan skup slogova nad R . Notacija r(R) znači daje r relacija nad R 5. Jednakost relacija

Page 2: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

2 foiskripte.com „neslužbena skripta“

Relacije r(R) i s(S) su jednake ako vrijedi da R = S tj. r i s se sastoje od istih slogova .

6. Restrikcija sloga

Neka je X R; t[x] je restrikcija sloga t na skup atributa X.

Propozicija- ti[] = tj[] , ti,tjr da se bilo koja dva sloga podudaraju na praznom

atributu.

7. Ažuriranje relacije

Izmjene u aplikacijskoj domeni imaju za posljedicu promjenu relacije (održavanje modela odgovarajućim modelom za danu situaciju).

8. Primarni indeks, sekundarni indeks

SUBP automatski kreira primarni indeks na temelju primarnog ključa.

Sekundarni indeks kreira korisnik. Jednoj vrijednosti sekundarnog indeksa mozeodgovarati

grupa s više od jednog reda. Sekundarni indeks nema svojstvo jedinstvene identifikacije.

9. Relacijski operatori: unija, presjek razlika

Unija- r s (R) ; r s = t nad R t r ili t s (redovi se ne ponavljaju)

Presjek- r s (R) ; r s = t nad R t r i t s (redovi koji su: u R i u S

Razlika- r s (R) ; r s = t nad R t r i t s (koji su u R a nisu u S)

10. Relacijski operatori: projekcija, selekcija

Projekcija- Za relaciju r(R) i X R , X imamo: X(r) (X) ; X(r) = tX t r U

projekciji nema ponavljanja redova

Selekcija- F(r) (R) ; F(r) = t r F(t) = 1

11. Relacijski operatori: prirodno spajanje, aktivni komplement

Prirodno spajanje- Neka su zadane relacije r(R) , s(S) .r s (RS) ; r s = t nad RS tR r i

tS s

Aktivni komplement- Neka je zadana relacija r(A1,.., An) . Aktivni komplement od r je

relacija AC(r) definirana jednakošću: AC(r) = A(r) .. An(r) r

12. Relacijski operatori: preimenovanje, produkt

PREIMENOVANJE ATRIBUTA

Za relaciju r(R) i A1 A2..Am Í R te B1, B2,..Bm R i Dom(Ai) = Dom(Bi) za i = 1,.m

Page 3: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

3 foiskripte.com „neslužbena skripta“

preimenovanjem atributa A1, A2,..Am redom atributima B1, B2,..,Bm u

relaciji r(R) dobivamo relaciju A1, A2,..,Am B1, B2,..,Bm](r) (S) , gdje je

S = (R - {A1, A2,.., Am) È B1, B2,..,Bm};

Slogoviu su slogovi iz r . PRODUKT Neka su zadane relacije r(R) i s(S). Produkt relacija r i s definiramo

ovako: (1) Akoje R S = Æ , ondaje r s = r s

(2) Akoje R S , onda izvršimo preimenovanje atributau R i S tako da postignemo disjunktnost, a zatim primijenimo (1) .

13. Relacijski operatori: projekcija, kvocijent

Projekcija- Za relaciju r(R) i X R , X imamo: X(r) (X) ; X(r) = tX t r U

projekciji nema ponavljanja redova

KVOCIJENT Za relacije r(R) i s(S) takve daje S Ì R , kvocijent relacija r i s je relacija

r ¸ s (T) , gdjeje T = R S ;

r s = PT(r) T(T(r) s) r

Kvocijent relacija r(R) i s(S) predstavlja skup svih slogova t iz T(r) takvih da kad spojimo t sa bilo kojim slogom t1 iz s(S) dobijemo slog iz r .

14. Temeljni skup relacijski operatora

Svaki relacijski izraz može se napisati u ekvivalentnom obliku koji je izgrađen samo od

operatora , , , , , .

Page 4: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

4 foiskripte.com „neslužbena skripta“

15. Katalog(relacijski operatori)

Za bilo koje relacijer(R), s(R) i F primjenjivo na r i s vrijedi:

(1) s[F](r s) = [F](r) [F](s)

(2) s[F](r Ç s) = [F](r) [F](s) [F](r s) = [F](r) [F](s) Za bilo koje relacije r(R), s(R) i X ÍR vrijedi:

(4) P[X](r s) = P[X](r) P[X](s)

(5) P[X](r s) = [X](r) [X](s)

(6) [X](r) [X](s) P[X](r s) Za bilo koje relacije r(R), s(S) vrijedi:

(7) r ¥ s = s ¥ r

(8) P[R](r s) Í r Za bilo koju relaciju r(R) vrijedi

(9) r Í P[X](r) [Y](r) , gdjeje d(R) : X, Y dekompozicija od R , tj. X, Y Í R i XY = R .

(10) r [X](r) = r , gdjeje X Í R . Za bilo koje relacije r(R), s(S) vrijedi:

(11) [F](r s) = [F](r) s , gdjeje F primjenjivo na r .

Za bilo koju relaciju r(R) , X R vrijedi:

(12) P

[X]([F](r)) = [F]([X](r)) , gdje je F primjenjivo na [X](r)

16. Interpretacija relacijskog izraza kao upita

17. Relacijski upitni jezici

SQL : Structured Query Language QUEL : Query Language QBE : Query by Example

18. SQL (osnovne karakteristike)

(A) Relacijski jezik (dio je relacijskog SUBP) (B) Deklarativan (s proceduralnom komponentom) SQL ima dvije komponente: (1) DDL (data definition language) je jezik za definiranje strukture podataka . (2) DML (data manipulation language) je jezik za rukovanje podacima . Kako je struktura BP stalnija od sadržaja BP , DDL se razmjerno rjeđe koristi od DML .

Page 5: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

5 foiskripte.com „neslužbena skripta“

19. Kreiranje baze podataka

Create table dijelovi (Dio# int not null, Dio-od int not null, Naziv varchar(5), primary key

(Dio#))

20. Osnovni upiti

Select * from dijelovi (izlistati tablicu dijelovi)

21. Ponavljanje redova u rezultatu upita, eliminacija ponavljanja

Select distinct Dio# from skladište where S# = ‘S1’ or S# = ‘S3’

22. Operatori uspoređivanja

Jednakost =

Različitost

Strogo manj

Manje ili jednak=

Strogo veće

Veće ili jednako =

23. Logički operatori (trovalentna logika)

Negacija NOT

Disjunkcija OR

Konjunkcija AND

24. Operator between

X between Y and Z znači (X = Y) and (X = Z) not (X<=Y) and (X<Z)

25. Operator in

Select B

From S

Where B in (X, Y, Z) , tj (where B=X, B=Y, B=Z)

- Ova formula vrijedi za bilo koju tablicu (S) koja ima neke elemente i među njima B.

26. Redoslijed redova u rezultatu upita

ascend (asc) - rastući poredak,

descend (desc) - padajući poredak

Page 6: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

6 foiskripte.com „neslužbena skripta“

27. Spajanje tablica (realizacija u SQL-u)

SQL(U): Select Naziv, Kolicina

from skladiste, dijelovi

where skladiste.Dio# = dijelovi.Dio#

and S# = ‘S1’

28. Jednakost (pod)nizova

SQL(U1): Select Ime

frompas

where Ime = ‘Bobi

29. Vanjsko spajanje

SQL(U): SELECT *

FROM r1, r2

WHERE r1.B = r2. B

Lijevo vanjsko spajanje SQL(U1): SELECT * FROM r1, r2 WHERE r1.B *= r2.B Desno vanjsko spajanje SQL(U2): SELECT * FROM r1, r2 WHERE r1.B = * r2.B Potpuno vanjsko spajanje SQL(U3): SELECT * FROM r1, r2 WHERE r1.B *=* r2.B

Page 7: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

7 foiskripte.com „neslužbe skripte“

30. Skupovne operacije

Union

Intersect

Minus -

definirane za kompatibilne relacije (korespondencija između atributa jednakih domena).

31. Zbirni upiti

sum(A) : zbroj vrijednosti u stupcu;

avg(A) : prosjek vrijednosti u stupcu;

min(A) : :minimalna vrijednost u stupcu A,

max(A) : maksimalna vrijednost u stupcu A,

count(A) : broj razlièitih vrijednosti u stupcu A,

count(*) : broj redova

32. Horizontalna podjela tablice

selectA, sum(B) from r group by A;

Grupiranje se može vršiti samo prema stupcima koji pripadaju nekoj od tablica iz klauzule from

Klauzula group by sadrži sve (obične) stupce iz select liste, a select lista sadrži sve stupce iz group by (praktičan zahtjev)

Prilikom group by S , sve null oznake izS smatraju se jednakim

33. Uvjeti: where, having

Where je uvjet na red, having je uvjet na grupu redova.

Having bez group by odnosi se na cijelu tablicu kao grupu.

34. Podupiti

Podupit se navodi u zagradama ( )

Rezultat podupita je tablica (skup)

Podupit ne sadrži order by, a niti uniju select iskaza

Page 8: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

8 foiskripte.com „neslužbe skripte“

35. Vanjska referenca

Page 9: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

9 foiskripte.com „neslužbe skripte“

36. Uvjeti: any, all, in, exists

36. Ažuriranje baze podataka

Ažuriranje baze podataka vršimo pomoću operatora: INSERT - Upisivanje novih redova u tablicu DELETE - Brisanje postojećih redova iz tablice UPDATE - Mijenjanje sadržaja redova iz tablice 37. Pogledi

Page 10: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

10 foiskripte.com „neslužbe skripte“

Pogled (relacija) p1 je virtuelna relacija (nije materijalizirana i ostvaruju se na zahtjev) ; p1 je derivirano, tj. definirano na temelju bazne relacije r. KORIŠTENJE POGLEDA 1. Olakšava interakciju (postavljanje upita) 2. Zaštita BP

38. Ažuriranje pogleda

39. Integritet baze podataka

Definiranje i održavanje formalne ispravnosti sadržaja baze podataka. VRSTE INTEGRITETNIH UVJETA (OGRANIČENJA) I1: Zahtijevanje vrijednosti (zabranjuje se da

Page 11: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

11 foiskripte.com „neslužbe skripte“

stupac (stupci) poprimi null znak) I2: Kontrola valjanosti vrijednosti (definira se skup vrijednosti koje mogu biti upisane u dani stupac) I3: Entitetski integritet (niti jedan od atributa iz primarnog ključa ne smije poprimiti null); I3 je specijalizacija od I1 . I4: Jedinstvenost entiteta (zahtijeva se jedinstve - nost svake vrijednosti u stupcu (stupcima)) I5: Referencijalni integritet (Sprečava se da vanjski ključevi ukazuju na nešto čega nema) I6: Poslovna ograničenja (iskazuju se poslovna pravila čije kršenje može dovesti do poslovnih problema)

40. Referencijalni integritet

41. Referencijalni ciklus

Page 12: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

12 foiskripte.com „neslužbe skripte“

Page 13: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

13 foiskripte.com „neslužbe skripte“

42. Sigurnost baze podataka

Riječ je o postupcima (mjerama) zaštite baze podataka od njena neovlaštenja korištenja. Dvije razine zaštite: (A) Zaštita na razini sustava (B) Zaštita na razini elemenata (objekata) baze podataka Razina (A) realizira se registracijom korisnika (uz potencijalne ovlasti na razini (B)). Razina (B) realizira se dodjeljivanjem ovlasti za određene elemente (objekte) baze podataka.

43. Indeksi

Primarni indeks se kreira automatski (od strane SUBP). Primarni ključ postaje primarni indeks.

Sekundarni indeks kreira korisnik.

Primjer (sekundarni indeks)

Kreirat ćemo sekundarni indeks po atributu Naziv relacije robot.

dijelovi(Dio#, Dio-od, Naziv) PK = PI = Dio#

Create index I1 on dijelovi(Naziv)

I1 je sekundarni indeks. Ako želimo poništiti (eliminirati) sekundarni indeks I1, pisali bismo

Drop index I1.

44. Katalog sustava za upravljanje bazom podataka

DBMS vodi evidenciju o strukturnim svojstvima tablica, pogleda, ovlasti, ostalih entiteta u DB. Navedeno čini sadržaj kataloga sustava (System catalog). Riječ je o relacijskoj bazi podataka.

45. Transakcije

Transakcija je vremenski uređen niz nedjeljivih radnji (radnje čine logičku jedinicu rada). U našem kontekstu radnje su SQL iskazi .

46. Model realizacije transakcija u sustavu za upravljanje bazom podataka

Page 14: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

14 foiskripte.com „neslužbe skripte“

Transakcija T: A1; A2;..; Ak je niz SQL iskaza. Iskazi A1, A2,.., Ak se izvršavaju kao cjelina, tj. svi iskazi se izvršavaju uspješno ili se niti jedan iskaz ne izvršava.

47. Izvršenje skupa transakcija, serijsko izvršenje, valjano (nevaljano) izvršenje

= akcije se ne smiju ispreplitati

Transakcija je valjana (validna) ako transformira valjanu bazu podataka u valjanu bazu podataka.

Dozvoljena su ona izvršenja koja su ekvivalentna nekom serijskom izvršenju (mogu se linearizirati).

Page 15: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

15 foiskripte.com „neslužbe skripte“

48. Zaključavanje (locking), zastoj (deadlock)

Postupkom zaključavanja izbjegavamo nevaljana izvršenja. Usvojit ćemo sljedeće pravilo zaključavanja. Ako se prva radnja transakcije T izvršava na relaciji r , onda se relacija r zaključava, odnosno relacija r je nedostupna za druge transakcije; relacija r se otključava tek onda kada je transakcija T u cijelosti izvršena. Poslije toga, r je dostupna za druge transakcije. Zaključavanje na razini: (A) BP (B) Tablice (C) Stranice (D) Retka Zaključavanje na manjoj jedinici podataka daje ‘veću’ usporednost (paralelizam), ali su algoritmi zaključavanja složeniji. U postupku zaključavanja može doći do zastoja. Zastoj (Deadlock)

Izvršenje ima sljedeći redoslijed (A1, B1, A2, B2) . Radnjom A1 zaključava se relacija r; radnjom B1 zaključava se relacija s ; radnja A2 čeka otključavanje s , a radnja B2 čeka otključavanje r . Prema tome niti jedna od transakcija ne može završiti pa se čekanje nastavlja (‘ad infinitum’). Navedeni zastoj se eliminira intervencijom administratora baze podataka. On će nakon nekog vremena čekanja aktivirati, napr., serijsko izvršenje. Imamo ove tipove brava: (1) Zajednička brava (shared): Koristi se kod transakcija koje samo čitaju danu jedinicu podataka. (2) Isključiva brava (exclusive): Koristi se kod transakcija koje mijenjaju jedinicu podataka.

Page 16: 1 „neslužbena skripta BAZE PODATAKA skripta · PDF fileBaza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta . 2. Relacijski

PITUP

16 foiskripte.com „neslužbe skripte“

49. SQL i programiranje

(a) Ugrađivanje (embedding) SQL naredbi u

(proceduralne) programe

(b) Aplikativno programiranje

(koristise API (Application programming

interface))

50. Sintaksni dijagram