Upload
artur-debogovic
View
62
Download
4
Embed Size (px)
DESCRIPTION
Skripta sa zadacima za kolegij baze podataka 1 za pismeni dio ispita
Citation preview
1 foiskripte.com neslubena skripta
BAZE PODATAKA - skripta
1. Sustav za upravljanje bazom podataka
Baza podataka je kolekcija podataka, ogranienja i operacija koja reprezentira neke aspekte realnog svijeta .
2. Relacijski model podataka
Za relacijski model podataka, RMP, imamo sljedee: S je skup relacija (tablica), UI je skup ogranienja stanja relacija i O je skup relacijskih operatora.
To znai da e podaci u relacijskoj bazi podataka biti prikazani u obliku relacija
(tablica) dok e uvjeti integriteta UI predstavljati ogranienja 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) mrene baze podataka (temeljene na mrenom 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 poopenom
relacijskom modelu podataka) objektno orijentirane baze podataka (temeljene na objektnom
modelu podataka).
4. Pojam relacije
Konaan, 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 konaan skup slogova nad R . Notacija r(R) znai daje r relacija nad R 5. Jednakost relacija
2 foiskripte.com neslubena 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. Auriranje relacije
Izmjene u aplikacijskoj domeni imaju za posljedicu promjenu relacije (odravanje modela odgovarajuim modelom za danu situaciju).
8. Primarni indeks, sekundarni indeks
SUBP automatski kreira primarni indeks na temelju primarnog kljua.
Sekundarni indeks kreira korisnik. Jednoj vrijednosti sekundarnog indeksa mozeodgovarati
grupa s vie 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 jednakou: 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
3 foiskripte.com neslubena 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 izvrimo 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 moe se napisati u ekvivalentnom obliku koji je izgraen samo od
operatora , , , , , .
4 foiskripte.com neslubena 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 sadraja BP , DDL se razmjerno rjee koristi od DML .
5 foiskripte.com neslubena 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 skladite where S# = S1 or S# = S3
22. Operatori usporeivanja
Jednakost =
Razliitost
Strogo manj
Manje ili jednak=
Strogo vee
Vee ili jednako =
23. Logiki operatori (trovalentna logika)
Negacija NOT
Disjunkcija OR
Konjunkcija AND
24. Operator between
X between Y and Z znai (X = Y) and (X = Z) not (X
6 foiskripte.com neslubena 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
PITUP
7 foiskripte.com neslube skripte
30. Skupovne operacije
Union
Intersect
Minus -
definirane za kompatibilne relacije (korespondencija izmeu 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 razliitih vrijednosti u stupcu A,
count(*) : broj redova
32. Horizontalna podjela tablice
selectA, sum(B) from r group by A;
Grupiranje se moe vriti samo prema stupcima koji pripadaju nekoj od tablica iz klauzule from
Klauzula group by sadri sve (obine) stupce iz select liste, a select lista sadri sve stupce iz group by (praktian 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 sadri order by, a niti uniju select iskaza
PITUP
8 foiskripte.com neslube skripte
35. Vanjska referenca
PITUP
9 foiskripte.com neslube skripte
36. Uvjeti: any, all, in, exists
36. Auriranje baze podataka
Auriranje baze podataka vrimo pomou operatora: INSERT - Upisivanje novih redova u tablicu DELETE - Brisanje postojeih redova iz tablice UPDATE - Mijenjanje sadraja redova iz tablice 37. Pogledi
PITUP
10 foiskripte.com neslube skripte
Pogled (relacija) p1 je virtuelna relacija (nije materijalizirana i ostvaruju se na zahtjev) ; p1 je derivirano, tj. definirano na temelju bazne relacije r. KORITENJE POGLEDA 1. Olakava interakciju (postavljanje upita) 2. Zatita BP
38. Auriranje pogleda
39. Integritet baze podataka
Definiranje i odravanje formalne ispravnosti sadraja baze podataka. VRSTE INTEGRITETNIH UVJETA (OGRANIENJA) I1: Zahtijevanje vrijednosti (zabranjuje se da
PITUP
11 foiskripte.com neslube 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 kljua ne smije poprimiti null); I3 je specijalizacija od I1 . I4: Jedinstvenost entiteta (zahtijeva se jedinstve - nost svake vrijednosti u stupcu (stupcima)) I5: Referencijalni integritet (Spreava se da vanjski kljuevi ukazuju na neto ega nema) I6: Poslovna ogranienja (iskazuju se poslovna pravila ije krenje moe dovesti do poslovnih problema)
40. Referencijalni integritet
41. Referencijalni ciklus
PITUP
12 foiskripte.com neslube skripte
PITUP
13 foiskripte.com neslube skripte
42. Sigurnost baze podataka
Rije je o postupcima (mjerama) zatite baze podataka od njena neovlatenja koritenja. Dvije razine zatite: (A) Zatita na razini sustava (B) Zatita 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 odreene 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 ponititi (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 sadraj kataloga sustava (System catalog). Rije je o relacijskoj bazi podataka.
45. Transakcije
Transakcija je vremenski ureen niz nedjeljivih radnji (radnje ine logiku jedinicu rada). U naem kontekstu radnje su SQL iskazi .
46. Model realizacije transakcija u sustavu za upravljanje bazom podataka
PITUP
14 foiskripte.com neslube skripte
Transakcija T: A1; A2;..; Ak je niz SQL iskaza. Iskazi A1, A2,.., Ak se izvravaju kao cjelina, tj. svi iskazi se izvravaju uspjeno ili se niti jedan iskaz ne izvrava.
47. Izvrenje skupa transakcija, serijsko izvrenje, valjano (nevaljano) izvrenje
= akcije se ne smiju ispreplitati
Transakcija je valjana (validna) ako transformira valjanu bazu podataka u valjanu bazu podataka.
Dozvoljena su ona izvrenja koja su ekvivalentna nekom serijskom izvrenju (mogu se linearizirati).
PITUP
15 foiskripte.com neslube skripte
48. Zakljuavanje (locking), zastoj (deadlock)
Postupkom zakljuavanja izbjegavamo nevaljana izvrenja. Usvojit emo sljedee pravilo zakljuavanja. Ako se prva radnja transakcije T izvrava na relaciji r , onda se relacija r zakljuava, odnosno relacija r je nedostupna za druge transakcije; relacija r se otkljuava tek onda kada je transakcija T u cijelosti izvrena. Poslije toga, r je dostupna za druge transakcije. Zakljuavanje na razini: (A) BP (B) Tablice (C) Stranice (D) Retka Zakljuavanje na manjoj jedinici podataka daje veu usporednost (paralelizam), ali su algoritmi zakljuavanja sloeniji. U postupku zakljuavanja moe doi do zastoja. Zastoj (Deadlock)
Izvrenje ima sljedei redoslijed (A1, B1, A2, B2) . Radnjom A1 zakljuava se relacija r; radnjom B1 zakljuava se relacija s ; radnja A2 eka otkljuavanje s , a radnja B2 eka otkljuavanje r . Prema tome niti jedna od transakcija ne moe zavriti pa se ekanje nastavlja (ad infinitum). Navedeni zastoj se eliminira intervencijom administratora baze podataka. On e nakon nekog vremena ekanja aktivirati, napr., serijsko izvrenje. Imamo ove tipove brava: (1) Zajednika brava (shared): Koristi se kod transakcija koje samo itaju danu jedinicu podataka. (2) Iskljuiva brava (exclusive): Koristi se kod transakcija koje mijenjaju jedinicu podataka.
PITUP
16 foiskripte.com neslube skripte
49. SQL i programiranje
(a) Ugraivanje (embedding) SQL naredbi u
(proceduralne) programe
(b) Aplikativno programiranje
(koristise API (Application programming
interface))
50. Sintaksni dijagram