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

Baze Podataka Skripta

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