167
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE Dr. sc. Mirko Maleković redoviti profesor TEORIJA BAZA PODATAKA - skripta - Varaždin, listopad 2008.

Mirko Malekovic - Teorija Baza Podataka Skripta

Embed Size (px)

DESCRIPTION

pomoć studentima

Citation preview

Page 1: Mirko Malekovic - Teorija Baza Podataka Skripta

SVEUČILIŠTE U ZAGREBUFAKULTET ORGANIZACIJE I INFORMATIKE

Dr. sc. Mirko Malekovićredoviti profesor

TEORIJA BAZA PODATAKA

­ skripta ­

Varaždin, listopad 2008.

Page 2: Mirko Malekovic - Teorija Baza Podataka Skripta

SADRŽAJ1. SIMBOLIČKA (MATEMATIČKA) LOGIKA......................................................................................1

1.1. PROPOZICIJSKA LOGIKA..........................................................................................................11.2. LOGIKA PRVOG REDA...............................................................................................................91.3. O LOGIČKOM REZONIRANJU.................................................................................................14

2. RELACIJSKE BAZE PODATAKA.....................................................................................................162.1.  RELACIJSKA ALGEBRA..........................................................................................................182.2. ZAVISNOSTI U RELACIJSKIM BAZAMA PODATAKA........................................................272.3. FORMALNI SUSTAVI................................................................................................................342.4. IMPLIKACIJSKI PROBLEM......................................................................................................402.5. NORMALNE FORME.................................................................................................................50

3. PARCIJALNA INFORMACIJA...........................................................................................................613.1. UVOD...........................................................................................................................................612.2. PARCIJALNA RELACIJA...........................................................................................................623.3. RELACIJSKI OPERATORI ZA PARCIJALNE RELACIJE.......................................................672.4. TIPOVI LOGIČKIH POSLJEDICA............................................................................................70

4. TEMPORALNE BAZE PODATAKA.................................................................................................734.1. UVOD...........................................................................................................................................734.2. TEMPORALNE RELACIJE........................................................................................................734.3. RELACIJSKI OPERATORI ZA TEMPORALNE RELACIJE...................................................75

5. DEDUKTIVNE BAZE PODATAKA..................................................................................................835.1. UVOD...........................................................................................................................................835.2. SINTAKSA I SEMANTIKA DEDUKTIVNE BAZE PODATAKA...........................................855.3. DATALOG....................................................................................................................................914.4. RAČUNANJE PRAVILA.............................................................................................................964.5  PROŠIRENJA DATALOGA......................................................................................................105

6. POOPĆENE RELACIJSKE BAZE PODATAKA  (PORBP)............................................................1236.1. UVOD.........................................................................................................................................1236.2. PARTICIJSKA NORMALNA FORMA (PNF).........................................................................1256.3. RELACIJSKI OPERATORI ZA PONF RELACIJE..................................................................126

7. OBJEKTNO ORIJENTIRANE BAZE PODATAKA.........................................................................1367.1. UVOD..........................................................................................................................................1367.2. ODL............................................................................................................................................1437.3. OQL............................................................................................................................................151

LITERATURA.......................................................................................................................................162

Page 3: Mirko Malekovic - Teorija Baza Podataka Skripta
Page 4: Mirko Malekovic - Teorija Baza Podataka Skripta
Page 5: Mirko Malekovic - Teorija Baza Podataka Skripta

1. SIMBOLIČKA (MATEMATIČKA) LOGIKA

Simboličku logiku koristimo kao formalni alat za simboliziranje rezoniranja u raznim problemskim ili aplikacijskim domenama.

(A)  PROPOZICIJSKA LOGIKA  (PL)(B)  LOGIKA PRVOG REDA (PREDIKATSKA LOGIKA)    (LPR)

1.1. PROPOZICIJSKA LOGIKA

Temeljni element propozicijske logike je propozicija.

Propozicija je deklarativna rečenica koja je istinita ili neistinita (ali ne oboje, tj. propozicija ne može biti istovremeno istinita i neistinita).

Pr.  Zadane su rečeniceR1:  Zagreb je glavni grad Hrvatske.R2:  Split je glavni grad Hrvatske.R3:  X  je glavni grad Hrvatske.

R1  je istinita propozicija;  R2  je neistinita ili lažna propozicija;  R3  nije propozicija, jer bez konkretizacije varijable  X  ne možemo odrediti istinosnu vrijednost od  R3.

Propozicije ćemo označavati slovima  P, Q, R, S  uz moguće indeksiranje.Pomoću propozicija iskazujemo činjenice (svojstva) problemske domene. Zato ćemo propozicije imenovati i drugim simbolima osim prije spomenitih.

FORMULAKoristeći propozicije i logičke veznike: ¬ (negacija),∧ (konjunkcija),  ∨ (disjunkcija),  ⇒ (implikacija)  i⇔ (ekvivalencija)  gradimo izraze koji se nazivaju formule.Formule ćemo označavati slovima  F, G, H  uz moguće indeksiranje.Formule se definiraju rekurzivno kao što slijedi:(a)  Svaka propozicija je formula.(b)  (¬F), (F ∧ G), (F ∨ G), (F ⇒ G), i  (F ⇔ G)  su        formule ako su  F  i  G  formule.(c)  Formule se grade jedino konačnim brojem primjena pravila (a)  i  (b)  .Pr.  Izraz  F:  ((P ∨ Q) ⇒ R)  je formula;         Izraz  G:  P ¬ Q  nije formula.

1

Page 6: Mirko Malekovic - Teorija Baza Podataka Skripta

Konvencija o ispuštanju zagrada:1.  Formulu  (F # G)  pišemo bez (vanjskih) zagrada;     Ovdje je  #  bilo koji logički veznik.2.  Koristimo jačinu vezanja logičkih veznika:      ¬ ,  ∧ ,  ∨ ,  ⇒ ,  ⇔     U navedenom nizu jače veže onaj veznik koji je      više lijevo.

Pr.  F:  (( P ∨ Q) ⇒ R)  možemo pisati u obliku       F:  P ∨ Q ⇒ R ;       G:  ((¬P) ∧ (R ∨ S))  možemo pisati u obliku       G:  ¬P ∧ (R ∨ S)

Prije navedenim pravilima definirali smo sintaksu propozicijske logike, tj. rekli smo kako se grade formule u PL. 

Značenje formula, tj. semantika formula, je postupak odreðivanja istinosne vrijednosti formula. 

Sa  PR[F]  označavamo skup svih propozicija od kojih je izgraðena formula F .

INTERPRETACIJA FORMULEInterpretacija formule  F  je preslikavanjeI:  PR[F]  →  {0, 1}

Pr.  F = P ∧ ¬ RJedna interpretacija od  F  je    I:  P   R                                                     ====                                                      1   0 Iz tablice čitamo:  I(P) = 1 ,  I(R) = 0 .

Kažemo da je  P  u interpretaciji  I  istinito (P u  I  vrijedi), a  R  je u  I  neistinito (R  u  I  ne vrijedi).

U zadavanju interpretacije korist se i simboli  F, T  umjesto  0, 1  respektivno.

Tvrdnja (propozicija)Neka je broj elemenata u skupu  PR[F],  PR[F] ,jednak  k .  Tada formula  F  ima  2k  različitih interpretacija.

SEMANTIČKA PRAVILA

Semantička pravila za negaciju definiramo tablicom:

2

Page 7: Mirko Malekovic - Teorija Baza Podataka Skripta

   F     ¬F   ======                 Ako  je  I(F) = 0, onda je  I(¬F) = 1   0        1                  Ako je  I(F) = 1, onda je  I(¬F) = 0   1        0 

Semantička pravila za  ∨, ∧, ⇒, i ⇔  dana su u tablici:

   F  G     F ∨ G       F ∧ G     F ⇒G     F ⇔ G   0   0         0               0             1              1   0   1         1               0             1              0   1   0         1               0             0              0   1   1         1               1             1              1      

Iz tablice čitamo:F ∨ G  vrijedi u  I  ako barem jedna od formula  F, Gvrijedi u  I;  F ∨ G  ne vrijedi u  I  ako obe formule F, G  ne vrijede u  I .F ∧ G  vrijedi u  I  ako obe formule F, G  vrijede u  I;F ∧ G  ne vrijedi u  I  ako barem jedna od formula  F, G  ne vrijedi u  I .

Implikacija  F ⇒ G  vrijedi u  I  u svim slučajevima osim kada  F  vrijedi u  I   i   G  ne vrijedi u  I .Ekvivalencija  F ⇔ G  vrijedi u  I  samo onda kada  F  i  G  imaju istu istinosnu vrijednost u  I .

Pr.  F = P ∨ Q ⇒ R ,   I:    P  Q  R      I1:  P  R                                         ======      ======                                          1   1   0             1  1Odrediti  I(F),  I1(F).

I(F):  1 ∨ 1 ⇒ 0 = 1 ⇒ 0 = 0  ; prema tome, I(F) = 0, tj., F u interpretaciji  I  ne vrijedi.I1(F)  nije definirano, jer  I1  nije interpretacija za F.

Kada je  I(F) = 1, onda kažemo da je  F  istinito u  I  ili  da  F  vrijedi u  I;Kada je  I(F) = 0, onda kažemo da je  F  neistinito u  I  ili da  F  ne vrijedi u  I.

Istinosna tablica od  F  sadrži vrijednosti formule F  u svakoj njenoj interpretaciji. 

Pr.  F = ¬ P ∧ Q                 P  Q     ¬P      F                                           ============                                            0   0        1      0                                            0   1        1      1                                            1   0        0      0                                            1   1        0      0

3

Page 8: Mirko Malekovic - Teorija Baza Podataka Skripta

TAUTOLOGIJAFormula  F  je tautologija ili validna formula ako  F  vrijedi u svakoj svojoj interpretaciji, tj.I(F) = 1  za svaku interpretaciju  I  od  F.

Pr.  F = P ∨ ¬ P  je tautologija.

KONTRADIKCIJAFormula  F  je kontradikcija ako  F  ne vrijedi u svakoj svojoj interpretaciji, tj.I(F) = 0   za svaku interpretaciju  I  od  F.

Pr.  G = P ∧ ¬ P   je kontradikcija.

Sa  F = ⊤   označavamo da je  F  tautologija;Sa  F = ⊥  označavamo da je  F  kontradikcija.

Interpretacija niza formula  F1, .., Fn  je preslikavanje  I:  PR[F1] ∪ .. ∪ PR[Fn]  → {0, 1}

I(Fi)  računamo tako da u formulu  Fi  uvrstimo vrijednosti propozicija iz  Fi  koje su definirane interpretacijom  I.

Interpretacija  I  formule  F  je model za F  ako  F  vrijedi u  I.Interpretacija  I  niza formula  F1,.., Fn  je model danog niza formula ako svaka od formula F1,.., Fn vrijedi u I.

Za niz formula  F1,.., Fn  kažemo da je konzistentan ako ima model; u protivnome, kažemo da je dani niz kontradiktoran.Pr.  Ispitati konzistentnost formula  F = P ⇒ Q ,       G = ¬ QIspitujemo da li niz  F, G  ima model.

LOGIČKA POSLJEDICAZa formulu  G  kažemo da je posljedica formula  F1,.., Fn  ako za svaku interpretaciju  I  formulaF1,.., Fn, G  vrijedi:Ako je  I  model za  F1,.., Fn ,  onda je  I  model i za G

Notacija:   F1,.., Fn   G

Da  G  nije logička posljedica od  F1,.., Fn  pišemo ovako:   F1,.., Fn    G

Pr.  Ispitati da li vrijedi    ¬(P ∨ Q)    ¬P ∧ ¬Q .

4

Page 9: Mirko Malekovic - Teorija Baza Podataka Skripta

PropozicijaF1,.., Fn     G   ako i samo ako je formula                         H = (F1 ∧ .. ∧ Fn) ⇒ G   tautologija.

(SEMANTIČKA) JEDNAKOST FORMULAFormule  F  i  G  su jednake ako vrijediF   G   i   G  F ;   Pišemo  F = G .

Napomena:  Jednakost  F = G  znači jednakost pripadnih istinosnih tablica.

5

Page 10: Mirko Malekovic - Teorija Baza Podataka Skripta

KATALOG  PLZa bilo koje formule  F, G, H  vrijedi:1.  F = F      refleksija2.  F ∨ G = G ∨ F;   F ∧ G = G ∧ F      komutacija3.  (F $ G) $ H = F $ (G $ H)    asocijacija za                                              $ ∈ {∨, ∧, ⇔}4.  F ∨ (G ∧ H) = (F ∨ G) ∧ (F ∨ H)   distribucija     F ∧ (G ∨ H) = (F ∧ G) ∨ (F ∧ H)  6. ¬(¬F) = F          ¬(F ∨ G) = ¬F ∧ ¬G          ¬(F ∧ G) = ¬F ∨ ¬G         ¬(F ⇒ G = F ∧ ¬G6.  F ⇒ G = ¬F ∨ G                        

     F ⇔ G  = (F ⇒ G) ∧ (G ⇒ F)         

7.  F ⇒ G = ¬G ⇒ ¬F       kontrapozicija

8.    Jednakosti sa  ⊥  i  ⊤   

      ¬⊥ = ⊤      ¬⊤ = ⊥    F ∨ ⊥ = F    F ∨ ⊤  = ⊤

       F ∧ ⊥ = ⊥    F ∧ ⊤  = F              

      F ∨ ¬F = ⊤      F ∧ ¬ F = ⊥

6

Page 11: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1.  F = (P ∨ Q) ∧ P ⇒ R     Napišite interpretaciju  I  za  F , a zatim odredite     I(F).2.  Napišite istinosnu tablicu za  F (iz  1.) .3.  Ispitajte da li je formula F = P ⇒ (¬P)  tautolo­     gija.4.  Da li je  G = ¬(P ∨ Q) ⇒ Q   kontradikcija?5.  Riješite implikacijski problem     P ⇒ R, P ⇒ ¬R       ¬P   6.  Dokažite jednakost   ¬(P ∧ R) = ¬P ∨ ¬R  7.  Dokažite    ¬(F ⇒ G) = F ∧ ¬G8.  Literal je izraz oblika  F  ili  ¬F, gdje je F       propozicijski simbol; Klauzula je disjunkcija     literala. Napišite nekoliko klauzula.9. Dokažite   P ∨ M, ¬P ∨ N   M ∨ N    (rezolucijski   princip)10.  Konjukcija klauzula je konjunktivna normalna       forma. KNF[F]  je konjunktivna normalna forma       od  F. Odredite  KNF[G]  ako je  G = P ∧ Q ⇒ R.11.  Osoba  A  nudi osobi  B  nagrade  n1  i  n2  uz        sljedeći uvjetU:  Osoba  B  treba reći  izjavu  F. Ako  F  vrijedi, onda  B  dobiva  n1  ili  n2; Ako  F  ne vrijedi, onda B  ne dobiva niti jednu nagradu.Koju izjavu  F  treba reći  B  da bi dobio  n1?

Rj.  N1:  Dobit ću  n1;  N2:  Dobit ću  n2.F = ¬N2  ,  tj.  neću dobiti  n2.

12.  Ponuda A:       Reći P;       Ako  P = 1, onda dobivate  100Kn       Ako  P = 0, onda dobivate  S Kn,  S ≠  100

       Ponuda  B:       Reći  P;       Bez obzira na istinitost od  P, dobivate  S Kn,  S >100       Koja je ponuda bolja?

Rj.  Ponuda  A  osigurava proizvoljan dobitak       D Kn.       P = Neću dobiti 100 Kn i neću dobiti  D Kn.

7

Page 12: Mirko Malekovic - Teorija Baza Podataka Skripta

 13.  Svaki stanovnik države  X  je sretan (uvijek govori istinu)  ili nesretan (uvijek govori neistinu),         ali ne oboje. Psiholog  Ps  testira bračni par        (B1, B2)  tako da pita osobu B1 o stanju para.        Osoba  B1  je odgovorila:        Ako sam ja sretan, onda je  B2  sretan.        Ps  je na osnovi odgovora osobe  B1  točno zaklj­        učio o stanju osoba  B1  i  B2. Objasnite rješenje 

 

8

Page 13: Mirko Malekovic - Teorija Baza Podataka Skripta

1.2. LOGIKA PRVOG REDA

Logika prvog reda ili predikatna logika proširuje propozicijsku logiku omogućujući iskaze o svojstvima objekata ili relacijama izmeðu objekata.

SINTAKSAFormule LPR  grade se od sljedćih simbolaKonstante:  a, b, c, a1,...Varijable:  x, y, z, x1,...Funkcije:  f, g, h, f1,...Predikati (relacije):  P, Q, R, P1,...Kvantifikatori:  ∃  ,  ∀

TermKonstante i varijable su termi;f(t1,.., tk)   je term ako su  t1,.., tk  termi i   f  je funkcija od  k  argumenata.

Termi označavaju objekte, a predikati su relacije nad objektima.

Atomska formulaIzraz  P(t1,.., tm)  je atomska formula ako su  t1,.., tmtermi i  P  je predikat od  m  argumenata.Pr.  R(a, g(y), z)   je  atomska formula.

Koristeći atomske formule i logičke veznike  ¬, ∧, ∨, ⇒, ⇔, te kvantifikatore  ∃ , ∀  gradimo formule:1.  Svaka atomska formula je formula.2.  ¬F, F ∧ G, F ∨ G, F ⇒ G, F ⇔ G  su formule ako         F  i  G  formule.3.  ∃x(F) ,  ∀x(F)  su formule ako je  F  formula  i  x        varijabla.Kažemo da je F i sva pojavljivanja varijable x  u  F  pod djelovanjem navedenih kvantifikatora ∃x i ∀x .Zagradama naznačujemo prioritet operacija.

ZATVORENA FORMULAFormula  F  je zatvorena ako su sva pojavljivanja varijabli u  F  pod djelovanjem nekog od kvantifikatora.

Pr.  F = ∀x(P(x, a) ∧ ∃y(R(f(y)))  je zatvorena        G = ∀x(P(x, a)) ∨ R(b, f(x)  nije zatvorena.        G  je otvorena formula.

U daljem pretpostavljamo da je riječ o zatvorenim formulama.

9

Page 14: Mirko Malekovic - Teorija Baza Podataka Skripta

SLOBODNI SIMBOLIKonstante, funkcije i predikate od kojih je  F  izgraðeno zovemo slobodnim simbolima od  F.

INTERPRETACIJA FORMULEInterpretirati formulu znači dati značenje njenih slobodnih simbola na nepraznoj domeni objekata D.

Pr.  F = ∃y(R(a, f(y))I:  D = {3, 5},  a = 5,                        f:D → D             T     3     5                                                                                   =========                                                                                      f(T)   5     5     R:  D ×  D  →  {0, 1}

     (U, V)     (3, 3)   (3, 5)  (5, 3)  (5, 5)     ==========================     R(U, V)      0          1        0         1 

Predikat (relaciju)  kraće pišemo u obliku

R( U   V )========     3    5              Napisali smo u relaciji  R  samo one     5    5              parove  (U, V)  za koje  R  vrijedi.

Procijenimo  F  u  I, tj. izračunajmo  I(F):Formulom  F  se tvrdi da postoji  y  u  D  tako da R(a, f(y))  vrijedi  za dani  a  i  f .y = 3 :  I(F) = R(5, f(3)) = R(5, 5) = 1Kako za  y = 3  R(5, f(y))  vrijedi, imamo  I(F) = 1. Prema tome, F vrijedi u interpretaciji  I .

SEMANTIČKA PRAVILA

Formulu  F  procijenjujemo u njenoj interpretaciji  I  pomoću pravila:(S1)  Neka  F  nema varijabli i kvantifikatora.         I(F)  računamo tako da u F  uvrstimo vrijed­         nosti konstanti, funkcija i predikata zadanih         u  I.(S2)  Ako  je  F = ∀xG,  onda je  I(F) = 1  ako je I(G) = 1  za svaki  x ∈ D;         U protivnome, tj. ako je  I(G) = 0  za neki x ∈ D ,  onda je i  I(F) = 0:

         Ako je  F = ∃xG,  onda je  I(F) = 1 ako je I(G) = 1  za neki  x ∈ D;         U protivnome, tj. ako je  I(G) = 0  za svaki x ∈ D, onda je I(F) = 0.

10

Page 15: Mirko Malekovic - Teorija Baza Podataka Skripta

U oba slučaja, I(G)  za  x = d  računamo tako da svako pojavljivanje  x  u  G  zamjenjujemo sa  d, a konstante, funkcije, i predikate iz  G  zamjenjujemo vrijednostima danim u  I .

Pr.  F = ∃x(P(x, a)) ∧ ∀y(P(b, f(y))I:  D = {2, 3},  a = 2,  b = 3,f: D  →  D          T    2     3                        =========                         f(T)  2     2

P: D ×  D  →  {0, 1}                  P ( U    V )                                                  ========                                                        2     2                                                        3     2Računamo  I(F):Neka je  H = ∃xP(x, a) prva, a  H1 = ∀yP(b, f(y)) druga komponenta konjunkcije  F.  RačunamoI(H)  i  I(H1), te  I(F) = I(H) ∧ I(H1).

Pojmovi:  tautologija, kontradikcija, logička posljedica, jednakost formula  definiraju se na isti način kao u PL.Umjesto  K1(K2(F))  pisat ćemo kraće  K1K2(F), gdje su  K1  i  K2  kvantifikatori.

11

Page 16: Mirko Malekovic - Teorija Baza Podataka Skripta

KATALOG  LPR

Za bilo koje formule  F  i  G  vrijedi:1. ∀x∀y(F) = ∀y∀x(F),   ∃x∃y(F) = ∃y∃x(F)2. ¬(∀x(F)) = ∃x(¬(F)),  ¬(∃x(F)) = ∀x(¬(F))3. ∀x(F ∧ G) = ∀x(F) ∧ ∀x(G)4. ∃x(F ∨ G) = ∃x(F) ∨ ∃x(G)

Postoje formula  F  za koju vrijedi5. ∀x∃y(F) ≠  ∃y∀x(F)

Postoje formule  F  i  G  za koje vrijedi6. ∀x(F ∨ G) ≠  ∀x(F) ∨ ∀x(G)

Postoje formule  F  i  G  za koje vrijedi7. ∃x(F ∧ G) ≠  ∃x(F) ∧ ∃x(G)

KVANTIFIKATORI OGRANIČENOG OPSEGA

(∀x∈D) (F) = ∀x(x ∈ D ⇒ F)

Formula  (∀x∈D) (F)  vrijedi u interpretaciji  I  akoje  I(F) = 1  za svaki  x  iz  D.

(∃x∈D) (F) = ∃x(x ∈ D  ∧ F)

Formula  (∃x∈D)(F)  vrijedi u interpretaciji  I  akoI(F) = 1  za neki  x  iz  D.

Katalog  LPR  ostaje na znazi ako  ∀x  i  ∃x  zamijenimo sa  (∀x∈S)  i  (∃x∈S).

12

Page 17: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI1.  F = ∀x[P(a, x) ∧ R(x, f(x))]     Napišite  I  za  F, a zatim odredite  I(F).2.  Da li vrijedi  ∀x(F)    ∃x(F) ?3.  Da li vrijedi  (∀x∈S)(F)   (∃x∈S)(F) ?4.  Negirajte formulu       F = ∀x∃y(P(y) ∧ R(x) ⇒ P1(x))5.  Napišite formulu LPR koja je tautologija;     Napišite formulu  LPR  koja je kontradikcija.6.  Da li vrijedi  ∃x∀y(F)   ∀y∃x(F) ? 7.  Reèenicu  R1:  Za svaki prirodan broj, osim      jedinice, postoji manji prorodan broj,  izrazite     pomoću formule LPR.8.  Rečenici  R2:  Sve zavisnosti iz skupa  S  su      trivijalne,  izrazite pomoću  LPR­formule.9.  Rečenicu R3:  Postoji zavisnost u skupu  S  koja      nije tranzitivna,  izrazite pomoću  LPR­formule.10.  Koliko interpretacija ima formula F = ∀x(P(x))? 

13

Page 18: Mirko Malekovic - Teorija Baza Podataka Skripta

1.3. O LOGIČKOM REZONIRANJU

1. Monotonost logike

Ako    F1, F2,.., F4   ,  tada        F1, F2,.., Fk, H                    G                                         G

2. Logika nemonotonog rezoniranja

Ne mora vrijediti  monotonost iz  1.

(Uvode se odgovarajuća pravila dedukcije)

Difoltna logika (default logic)  DL

Pravilo:         F :  G               Ako F i ako je konzisten­                                               tno pretpostaviti G, onda                        H                   vrijedi H .     

Pr.F1:   Ptica(Ari)F2:   ∀x[Ptica(x)   ⇒  Leti(x)]

G:  Leti(Ari)

Imamo     F1, F2 : G

                         GProširimo  F1, F2  sa  F3:  Pingvin(Ari)

Shema    F1, F2, F3  : G             nije primjenjiva!

                        G

Prema tome,  G  slijedi iz  F1, F2 ,  a ne slijedi izF1, F2, F3 .

14

Page 19: Mirko Malekovic - Teorija Baza Podataka Skripta

Abdukcija (forma  default rezoniranja)

   F  ⇒  G,  G   :  F

                F

Pr.R1:   Ako je pacijent uplašen, onda je njgov tlak            visok.R2:   Tlak pacijenta je visok.

Zaključak:   Pacijent je uplašen.

Navedeni zaključak može biti pogrešan.

15

Page 20: Mirko Malekovic - Teorija Baza Podataka Skripta

2. RELACIJSKE BAZE PODATAKA

U ovom odjeljku karakteriziramo pojmove baze podataka (Data Base) i sustava za upravljanje bazom podataka (Database Management System). Po potrebi koristit ćemo sljedeće kratice:Baza   podataka   (BP),   Sustav   za  upravljanje   bazom  podataka   (SUBP).   Neformalno,   bazu  podataka možemo karakterizirati na sljedeći način.

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

Modeliranjem aplikacijske domene AD dolazimo do baze podataka BP. Prema tome, BP je model za AD.                         AD                                                                               BP    

Svaka baza podataka temelji se na odgovarajućem modelu podataka. Tako imamo 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)   i   objektno   orijentirane   baze   podataka   (temeljene   na objektnom modelu podataka). U ovom prvom poglavlju opisujemo teoriju relacijskih baza podataka. Dva su razloga za to. Prvo, relacijske baze podataka su najzastupljenije baze podataka u komercijalnom smislu.  Drugo,  one  su  osnova za   izgradnju  naprednijih  baza  podataka   (deduktivne  baze  podataka, temporalne   baze   podataka,   objektno/orijentirane   baze   podataka).   Za   kreiranje   (ostvarenje)   baze podataka koristi se poseban softver tzv. sustav za upravljanje bazom podataka (Access, Oracle, DB2,..). Sustav za upravljanje relacijskom bazom podataka nazivamo, kraće, relacijskim sustavom. Analogno vrijedi za ostale sustave. Dakle, na primjer,  objektno/relacijski sustav je sustav za upravljanje objektno/relacijskom bazom podataka.

16

modeliranje

Page 21: Mirko Malekovic - Teorija Baza Podataka Skripta

MODEL PODATAKA

Svaki model podataka, MP, sastoji se od tri komponente, tj., MP = (S, UI, O), gdje je S  strukturalna komponenta (kaže u kojem obliku su prikazani podaci), UI  je integritetna komponenta (ograničenja na dozvoljena stanja strukture) i   O  je operativna komponenta (operacije nad strukturama). 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. Već smo istakli da se relacijske baze podataka temelje na relacijskom modelu podataka. 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. U daljnjem izlaganju, prvo ćemo opisati  strukturalnu  komponentu   relacijskog modela   (pojam relacije),  zatim ćemo opisati   relacijsku algebra   (relacijske   operatore),   a   onda   ćemo   razmotriti   zavisnosti   u   relacijskim   bazama   podataka (specijalna klasa uvjeta integriteta). Pravila rezoniranja o zavisnostima u relacijskim bazama podataka i primjena zavisnosti u oblikovanju sheme relacijske baze podataka bit će dana u preostalim odjeljcima ovog poglavlja.U području baza podataka postoje terminološke razlike između teorije baza podataka i njene primjene (sustavi za upravljanje bazom podataka). Veza između pojmova je kao što slijedi:

veza (    Teorija                        Primjena  )===============================             relacija                        tablica             slog                             red             atribut                         stupac

Prema tome, umjesto relacija možemo reći tablica, umjesto sloga  red, te umjesto atribut možemo reći stupac. Iako će kasnija razmatranja pokazati da je relaciju moguće prikazati na više tabličnih načina, mi ćemo   relaciju   identificirati   s   tablicom   (zapisom)   kojom   smo   zadali   danu   relaciju.   U   daljnjem razmatranju koristit ćemo, ovisno o kontekstu,  prvi ili drugi tip naziva.

17

Page 22: Mirko Malekovic - Teorija Baza Podataka Skripta

2.1.  RELACIJSKA ALGEBRA

• Relacijska algebra sastoji se od temeljnih relacijskih operatora: unija  ∪  , razlika   − , selekcija  σ  , projekcija   Π  , preimenovanje  δ  , prirodno spoj  ∞    i izvedenih (deriviranih) operatoratora, koji se definiraju primjenom nekih od temeljnih operatora. 

U daljnjem, indekse ćemo pisati u nespuštenom obliku; dakle, primjerice umjesto  Ai   pisat ćemo  Ai.Relacija

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 , gdje je  t(Ai) ∈ Di ,  i = 1,.., k .Relacija nad  R  je konačan skup slogova nad  R .Notacija  r(R)  znači da je  r  relacija nad relacijskom shemom R . Kažemo još da je shema relacije r jednaka  R i pišemo  sh(r) = R.

Neka je zadana relacija  r  nad  R , r = {t1,.., tm} , gdje je slog  ti  zadan tablično

x        A1  A2 .. Ak==============  ,   i = 1,.., k .ti(x)   ai1   ai2 .. aik

Kraći zapisi sloga ti su:       ti        A1  A2 .. Ak                                                       ==============                                                       ai1   ai2 .. aik

ili samo  ti (ai1, ai2,.., aik)  kada je iz konteksta jasno što znači svaka komponenta sloga (za svaku od komponenti sloga zna se atrubut čija vrijednost je dana komponenta).

Relaciju  r  reprezentiramo u obliku tablice

r (A1    A2 . . Ak)============   a11  a12 .. a1k   a21  a22 .. a2k   ......................   am1 am2 .. amk

18

Page 23: Mirko Malekovic - Teorija Baza Podataka Skripta

Ako je  r1  prazna relacija nad  R , onda je pripadna tablica oblika

r1 (A1   A2 .. Ak)=============            ∅

Primjer 2.1Neka je zadana relacija   dozvola = {t1, t2, t3, t4}, gdje su slogovi   t1, t2, t3 i t4   definirani kao što slijedi.

R = {Pilot#, Tip­aviona},  D1 = dom(Pilot#) = varchar(2),  D2 = dom(Tip­aviona) = int,  D = D1 ∪ D2t1: R → D     x       Pilot#   Tip­aviona                     ================                     t1(x)   P1           707          

t2: R → D     x       Pilot#   Tip­aviona                     ================                     t2(x)   P2           707 

t3: R → D     x       Pilot#   Tip­aviona                     ================                     t3(x)   P2           747

t4: R → D     x       Pilot#   Tip­aviona                     ================                     t4(x)   P3           727 

Relaciju dozvola predstavljamo u obliku tablice

dozvola(Pilot#   Tip­aviona)                                ===================                                          P1             707                                                    P2             707                                                     .               P2             747               P3             727 

Prema tome, ime relacije postaje ime tablice, relacijska shema je dana u zaglavlju tablice, a slogovi su predstavljeni   redovima   tablice.   Činjenicu   da   je   red     (P1,   707)   u   tablici   dozvola   pišemo   ovako dozvola(P1, 707). Općenito, ako je red   t = (x1, x2,.., xn)   u tablici   r, onda to naznačujemo zapisom r(x1, x2, .., xn).U daljnjem ćemo relaciju zadavati tablično, a domene atributa ćemo navoditi samo u slučaju kada je razmatranje domenski ovisno. Također, kada semantika relacije nije jasna iz njenog tabličnog prikaza, upotrijebit ćemo dodatni komentar za njenu potpunu karakterizaciju.

19

Page 24: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 2.2Neka je zadana relacija dozvola iz prošlog primjera.

dozvola(Pilot#   Tip­aviona)                                ===================                                          P1             707                                                    P2             707                                                     .               P2             747               P3             727 

Možemo  se  upitati   o   semantici   relacije  dozvola,   tj.,  možemo postaviti   pitanje   koja   je   informacija tabelirana u tablici dozvola. Semantika je sljedeća.

Semantika (relacije dozvola)dozvola(x, y)  znači da pilot x ima dozvolu za tip aviona y.

Prema tome, zadnji red u tablici dozvola nam kaže da vrijedi  dozvola(P3, 727), a to znači da  pilot P3 ima dozvolu za tip aviona 727.

 U daljnjem pisanju koristit ćemo sljedeće oznake.                

• Oznake

Atributi :  A, B, C, D, E, F, A1, B1,...Skupovi atributa :  X, Y, Z, R, S, X1, Y1,..Relacije :  r, s, r1, s1,..Slogovi :  t, u, v, t1, u1,..

Kratice:{A1, A2,.., Ak} = A1, A2,.., Ak = A1 A2..Ak .X ∪ Y = XY .

• Jednakost relacija

Relacije   r(R)  i  s(S)  su jednake ako vrijedi:(1)  R = S, tj. sh(r) = sh(s)

(2) r  i  s   se sastoje od istih slogova .(3)

20

Page 25: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 2.3Neka su zadane relacije

        r(A   B)          r1(A     B)           r2 (B   A)        ======        ========          =======           1    2                 2     2                   2    2           2    2                 1     2                   2    1

Vrijedi:   r =  r1 = r2 , jer je ispunjeno:(1)  sh(r) = sh(r1) = sh(r2)  i(2)  relacije r, r1 i r2 imaju iste slogove .

Iz Primjera 1.3  vidimo da kod tabličnog predstavljanja (zadavanja) relacije poredak atributa u zaglavlju tablice i poredak redova u tablici nisu bitni. Dakle, sve tablice koje imaju isto zaglavlje i iste redove predstavljaju   istu   relaciju.   Također,   budući   je   relacija   skup   (nema   ponavljanja   elemenata   skupa), pripadna tablica ne sadrži ponavljanje redova.

Primjer 2.4

   r(A   B   C)                       s(A   B)        ========                   ======               ∅                                ∅

Za relacije  r  i  s  vrijedi   r ≠  s, jer relacije r  i  s  nemaju iste sheme .

• Restrikcija sloga

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

Primjer 2.5

         r(A   B   C)                                                       =========                                                                           1   0    0                          1   0    1              

Ako sa  t1  označimo prvi slog (red) u  relaciji  r, onda je restrikcija od  t1  na atribute BC dana sa

     x                B     C     ==============    t1[B, C](x)  0     0   

Dalje, za slogove  t1  i  t2  iz relacije  r  vrijedi       t1[A, B] = t2[A, B] .

21

Page 26: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija (jednakost slogova na praznom skupu atributa)

Za bilo koje slogove ti, tj nad relacijskom shemom R vrijedi   ti[∅] = tj[∅] .

• Relacijski operatori :  ∪  , ∩  , −

Slijede definicije relacijskih operatora operatora  ∪  , ∩  , −  .

   Neka su zadane relacije  r(R) , s(R) . 

     r ∪ s (R),  r ∪ s = {t nad R  t ∈ r ili t   ∈ s }

     r ∩ s (R),  r ∩ s = {t  nad R   t ∈ r  i  t ∈ s }

     r − s (R),  r − s = {t  nad R   t ∈ r  i  t ∉ s }

• Projekcija

    Za relaciju  r(R)  i  X ⊆  R , X ≠  ∅  imamo:

    Π [X](r) (X),  Π [X](r) = {t[X]   t ∈ r }

    Umjesto  Π [X](r)  možemo pisati Π X(r).

Prema tome, projekciju relacije r  na skup atributa X, u oznaci Π [X](r), dobijemo tako da odredimo skup koji se sastoji od  restrikcija svih slogova iz  r  na skup atributa X.

Primjer 2.6Neka je zadana relacija

r( A  B  C )========    1   2   3    2   2   3    3   1   2

Tada je   Π [BC](r) ( B  C )               ============                                2   3                                1   2

22

Page 27: Mirko Malekovic - Teorija Baza Podataka Skripta

• Selekcija   Za relaciju  r(R)  i  uvjet (formulu)  F,  selekcija relacije  r  po uvjetu  F  je    relacija nad R  koja se 

sastoji od svih slogova iz  r  koji zadovoljavaju  F.

     σ [F](r) (R),  σ [F](r) = {t ∈ r   F(t) = T};  sa  F(t) = T  naznačili smo da slog  t  zadovoljava   uvjet F, tj., F(t)  vrijedi. Sa  F(t) = ⊥ označavamo da slog  t  ne zadovoljava uvjet F.

   Slično kao kod projekcije, umjesto  σ [F](r)  možemo pisati σ F(r).

     Neka je Atr(F) skup svih atributa od kojih je izgrađena formula F. Kažemo da je F primjenjivo na relaciju  r(R)  ako je Atr(F) ⊆  R .

   U slučaju kada F nije primjenjivo na r(R), onda σ [F](r) nije definirano.

• Formula  je definirana rekurzivno :

(1)   Atom je izraz oblika  At  op  k , k  op  At , At  op  Bt ,  gdje su   At  i  Bt  bilo koji atributi i  op ∈ {= , < , > , ≤  , ≥  , ≠  }  je aritmetički operator .

       Svaki atom je formula .

 (2)   Formula je svaki izraz oblika  ¬F , F ∨ G, F ∧ G ,  F ⇒ G , F ⇔ G,

        gdje su  F  i  G  formule .

Primjer 2.7Neka su zadani relacija dozvola i upit U:

dozvola(Pilot#   Tip­aviona)                                ===================                                          P1             707                                                     t1                                                   P2             707                                                     t2                          P2             747                                                     t3               P3             727                                                     t4

U:  odrediti sve one pilote s pripadnim tipom aviona iz relacije dozvola koji imaju dozvolu za tip aviona 747.

Rješenje je dano relacijom σ [F](dozvola), gdje je F: Tip­aviona = 747.Računamo F(t), gdje t označava slogove (redove) iz relacije (tablice) dozvola.Za izračunavanje  F(t) trebamo vrijednosti atributa u slogu  t  uvrstiti umjesto korespondentni atributa u formuli F. 

23

Page 28: Mirko Malekovic - Teorija Baza Podataka Skripta

Neka su t1, t2, t3 i t4  redovi u tablici dozvola. Imamo:F(t1) = (707 = 747) = ⊥,F(t2) = (707 = 747) = ⊥,F(t3) = (747 = 747) = ⊤,F(t4) = (727 = 747) = ⊥ .

Zato,  σ [Tip­aviona = 747](dozvola) (Pilot#  Tip­aviona)          ===================================                                                               P2          747

Prirodno spajanje

Neka su zadane relacije  r(R) , s(S) .

   r ∞ s (RS),  r ∞ s = { t  nad RS   t[R] ∈ r  i  t[S] ∈ s }

Definicija prirodnog spoja kaze da se prirodni spoj relacija r  i  s  dobije tako da se spoje oni redovi iz relacija  r  i  s  koji se podudaraju na zajedničkim atributima iz relacijskih shema R  i  S.

Primjer 2.8Izračunati  r ∞ s, gdje je   r ( A  B  C )    s ( B  C  D )                                        =========   =========                                            a    b   b          a     a  a                                            b    a   a          b     a  b

Rješenje:   r ∞ s (A  B  C  D)                 =============                           b   a   a   a

• 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, 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};

   Slogovi u  δ    su slogovi iz  r .

24

Page 29: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 2.9Ako  je  r (A  B)  , tada je δ [ A ↵ r.A](r) (r.A  B)             ======              ================                 a   a                                         a     a                 b   c                                         b    c 

• Produkt

Neka su zadane relacije  r(R)  i  s(S). Produkt relacija  r  i  s  definiramo ovako:

(1)  Ako je  R ∩ S = ∅ , onda je  r ⊗ s = r ∞ s .

(2) Ako je  R ∩ S ≠  ∅ , onda izvršimo preimenovanje atributa u  R  i  S  tako   da postignemo disjunktnost, a zatim primjenimo  (1) .

• Aktivni komplement

Neka je zadana relacija  r(A1,.., An) . Aktivni komplement od  r  je relacija  AC(r) definirana jednakošću:

   AC(r) = [ΠA1(r) ∞ .. ∞ Π An(r)] − r

• Kvocijent

Za relacije  r(R)  i  s(S)  takve da je  S ⊂  R , kvocijent relacija  r  i  s  je relacija

    r ÷  s (T) , gdje je  T = R − S ;

    r ÷  s = Π T(r) − Π T[(Π T(r) ∞ s) − r ]

Propozicija (temeljni operatori)

Svaki relacijski izraz može se napisati u ekvivalentnom obliku koji je izgrađen samo od operatora  ∪, − , Π , σ  , ∞ , δ  .

25

Page 30: Mirko Malekovic - Teorija Baza Podataka Skripta

KATALOG RO

Za bilo koje relacije r(R), s(R)  i  F  primjenjivo na  r  i  s  vrijedi:(1)   σ F(r ∪ s) = σ F(r) ∪ σ F(s)(2)   σ F(r ∩ s) = σ F(r) ∩ σ F(s)(3)   σ F(r − s) =  σ F(r) − σ F(s)

Za bilo koje relacije r(R), s(R)  i  X ⊆  R  vrijedi:(4)  Π X(r ∪ s) = Π X(r) ∪ Π X(s)(5)  Π X(r ∩ s) = Π X(r) ∩ Π X(s)(6)  Π X(r) − Π X(s) ⊆  Π X(r − s)Za bilo koje relacije  r(R), s(S)  vrijedi:(7)    r ∞ s = s ∞ r(8)    Π R(r ∞ s) ⊆  r

Za bilo koju relaciju  r(R)  vrijedi(9)   r ⊆  Π X(r) ∞ Π Y(r) , gdje je  d(R) : X, Y   dekompozicija od R .(10)  r ∞ Π X(r) = r , gdje je  X ⊆  R .

Za bilo koje relacije  r(R), s(S)  vrijedi:(11)   σ F(r ∞ s) = σ F(r) ∞ s ,  gdje je  F  primjenjivo na  r .

Za bilo koju relaciju  r(R) , X ⊆  R   vrijedi:(12)   Π X(σ F(r)) = σ F(Π X(r)) ,  gdje je  F  primjenjivo na  Π X(r) .

26

Page 31: Mirko Malekovic - Teorija Baza Podataka Skripta

2.2. ZAVISNOSTI U RELACIJSKIM BAZAMA PODATAKAFUNKCIJSKE ZAVISNOSTI• Neka je  R  relacijska shema,  X, Y ⊆  R . Izraz  X → Y  je funkcijska zavisnost nad  R .     FZ(R) = {X → Y   X, Y ⊆  R} je skup svih funkcijskih zavisnosti nad  R .

• Kažemo da  X → Y  ∈ FZ(R)  vrijedi u relaciji  r(R)  ako     ∀t1,t2 ∈ r (t1[X] = t2[X] ⇒ t1[Y] = t2[Y])

Primjer 2.10Ispitajmo da li zavisnost  AC → B  vrijedi u relaciji

r( A  B  C  D )==========   1    2   2  3   2    2   2  2   1    3   2  3

Kako za slogove  u1( A  B  C  D )     i    u2( A  B  C  D)    iz relacije  r                           ============        ===========                                 1   2   2   3                  1   3   2   3

vrijedi  u1[AC] = u2[AC]  i  u1[B] ≠  u2[B] ,  zaključujemo da funkcijska zavisnost  AC → B  ne vrijedi u relaciji  r .

U istoj relaciji r ispitajmo da li vrijedi funkcijska zavisnost  A → D .Budući da za bilo koja dva sloga t1, t2 iz relacije  r  vrijedi: ako se t1 i  t2  podudaraju na A, onda se t1 i t2 podudaraju i na D, možemo zaključiti daA → D vrijedi u  r .

VIŠEZNAČNE ZAVISNOSTI• Neka je  X, Y ⊆  R . Višeznačna zavisnost nad  R  je izraz oblika      X →→ Y .

• Kažemo da  X →→ Y  vrijedi u  r(R) ako     ∀t1,t2 ∈r {t1[X] = t2[X] ⇒  ∃ t3 ∈r (t3[XY] = t1[XY] ∧                                                     t3[R −XY] = t2[R − XY])}

     Sa  VZ(R)  označavamo skup svih višeznačnih zavisnosti nad  R .

27

Page 32: Mirko Malekovic - Teorija Baza Podataka Skripta

Kako su višeznačne zavisnosti  posebne zavisnosti  spoja (što će se vidjeti  kasnije),   ispitivanje da li višeznačna   zavisnost   vrijedi   u   relaciji   bit   izvršeno   tako   da   se   višeznačna   zavisnost   pretvori   u odgovarajuću zavisnost spoja, a zatim se ispituje dobivena zavisnost spoja u danoj relaciji.

ZAVISNOST SPOJA• Neka su   R1,.., Rn  ⊆   R   neprazni skupovi takvi da je R1  ∪..∪  Rn = R .   Izraz     ∞(R1,.., Rn) 

zovemo zavisnost spoja nad  R .     Skup svih zavisnosti spoja nad  R  označavamo sa  ZS(R) .

• Kažemo da zavisnost spoja  ∞(R1,.., Rn) ∈ZS(R)  vrijedi u  r(R) ako je       r = Π R1(r) ∞ .. ∞ Π Rn(r) .

Primjer 2.11Ispitajmo zavisnost spoja ∞(ABC, CD) u relaciji

r( A  B  C  D )==========   1    2   2  3   2    2   2  2   1    3   2  3

Rješenje

Π [ABC](r)( A  B  C )    Π [CD](r)( C  D )================   ==============                    1   2   2                        2   3                    2   2   2                        2   2                    1   3   2       

Π [ABS](r) ∞  Π [CD](r) ( A  B  C D )===========================                                         1   2   2  3                                         1   2   2  2                                         2   2   2  3                                         2   2   2  2                                         1   3   2  3                                         1   3   2  2

Kako je  Π [ABS](r) ∞  Π [CD](r) ≠   r , zaključujemo da zavisnost spoja∞(ABC, CD) ne vrijedi u relaciji r .    

28

Page 33: Mirko Malekovic - Teorija Baza Podataka Skripta

  • Neka je  FVS(R) = FZ(R) ∪ VZ(R) ∪ ZS(R) .     Za skup zavisnosti   F ⊆  FVS(R)   kažemo da vrijedi u relaciji   r(R)   ako    svaka zavisnost iz  F 

vrijedi u  r(R) .

• Ako  F  vrijedi u  r, onda se  r  naziva modelom za  F .

• Neka je  R  skup atributa i  F  skup zavisnosti nad  R .     Par  (R, F)  naziva se relacijska shema .

F     KAO SEMANTIČKO OGRANIČENJE (UVJET INTEGRITETA)

Specificirajući     (R, F)     iskazujemo da će se valjanim (validnim) relacija nad   R   smatrati samo one relacije nad  R  koje su modeli za  F .

                                                                                                                          r(A1 A2 ..  An)

 r(A1, A2,.., An)                                 F                                                                                                                                                                                                    model za  F

Relacija r   se mijenja tijekom vremena kao posljedica ažuriranja. Dozvoljena su samo ona ažuriranja koja čuvaju valjanost relacije r, tj. ažuriranja trebaju biti u skladu sa zadinim uvjetima integriteta  F .

Centralni   pojam   teorije   baza   podataka   je   pojam   logičke   posljedice.   Njegova   važnost   proizlazi   iz činjenice da u osnovi gotovo svih temeljnih pojmova (njihovoj karakterizaciji) koristimo pojam logičke posljedice.

LOGIČKA POSLJEDICA

• Neka je  F ⊆  FVS(R)  i  f ∈ FVS(R) .     f   je logička posljedica od  F  ako za svaku relaciju  r  nad  R  vrijedi:     Ako je r model za  F, onda je r model i za f. 

     Oznaka:          F ⊨f   

                                 

29

Page 34: Mirko Malekovic - Teorija Baza Podataka Skripta

KATALOG  FZ

Neka su  X, Y, Z, Y1 ⊆  R .  Tada vrijedi:

1.  X → Y  ⊨XZ → YZ    (proširenje)2.  X → Y, Y → Z  ⊨ X → Z     (tranzitivnost)3.  X → Y, X → Y1 ⊨X → YY1     (unija)4.  X → Y ⊨X → Z , ako je  Z ⊆  Y   (projekcija)5.   F ⊨X → Y ,  gdje je  F  bilo koji skup funkcijskih zavisnosti i  Y ⊆  X                                                                                                    (trivijalnost)

DokazKao primjer, dokazat ćemo 1. iz kataloga.Neka je  r  bilo koja relacija nad R. Pretpostavimo da X → Y  vrijedi u r.Trebamo dokazati da XZ → YZ vrijedi u r.Neka su  t1, t2 bilo koja dva sloga iz r  takva da je t1[XZ] = t2[XZ]. Sada trebamo dokazati t1[YZ] = t2[YZ].Iz  t1[XZ] = t2[XZ]  slijedi  t1[X] = t2[X]  i  t1[Z] = t2[Z];Iz t1[X] = t2[X]  i pretpostavke da  X → Y vrijedi u r  zaključujemo da vrijedi t1[Y] = t2[Y]. Konačno, iz  t1[Y] = t2[Y]  i  t1[Z] = t2[Z] dobivamot1[YZ] = t2[YZ].Ostale točke iz kataloga dokazuju se analogno.

30

Page 35: Mirko Malekovic - Teorija Baza Podataka Skripta

KATALOG  VZ

Neka su   X, Z, Z  ⊆   R . Tada vrijedi:

1.   X →→ Y  ⊨ X →→ (R − XY)       (komplementiranje)

2.   X →→ Y ⊨XW →→ YV ,  gdje je V ⊆  W ⊆  R    (proširenje)

3.   X →→ Y, Y →→ Z ⊨X →→ (Z − Y)     (tranzitivnost)

4.   X →→ Y, X →→ Z ⊨X →→ YZ     (unija)

5.   X →→ Y, X →→ Z ⊨X →→ (Y ∩ Z)

      X →→ Y, X →→ Z  ⊨X →→ (Y − Z)

      X →→ Y, X →→ Z ⊨X →→ (Z − Y)     (projekcija)

31

Page 36: Mirko Malekovic - Teorija Baza Podataka Skripta

KATALOG  FVS

Neka su  X, Y ⊆  R .  Tada vrijedi:

1.   X → Y ⊨  X →→ Y      (obrat ne vrijedi)

2.   X → Y ⊨∞(XY, X ∪ (R − XY))

3.   X →→ Y  ⊨∞(XY, X ∪ (R − XY))    4.   ∞(XY, X ∪ (R − XY))  ⊨X →→ Y

Točke 3. i 4. u katalogu FVS kažu da je višeznačna zavisnost X →→ Y ekvivalentna zavisnosti spoja ∞(XY, X ∪ (R − XY)) . 

Definiramo•   F  ⊨G    ako   F ⊨g     za svaku zavisnost  g iz G;       •   F ≡  G   ako   F ⊨G   i   G ⊨F  .

32

Page 37: Mirko Malekovic - Teorija Baza Podataka Skripta

PROPOZICIJA (⊨)Neka su  F, G, H ⊆  FVS(R)   skupovi zavisnosti.  Tada1.   F ⊨G , ako je  G ⊆  F  .2.   F ⊨G   i   G ⊨H    povlači   F ⊨H .

DokazDokazat ćemo 2.  Neka je  r  bilo koja relacija nad R  takva da u njoj vrijedi F. Prepostavka znači da je r  model za F. Iz pretpostavke F ⊨G slijedi da je r model za G. Konačno, iz pretpostavke G ⊨H slijedi da je r model za H.

Primjer 2.12R = ABCD,   F: A → B, B → C ;    G:  A → B, B → C, A → C .Ispitati   F ≡  G .RješenjeKako je  F ⊆  G, zaključujemo, temeljem 1. iz prethodne propozicije(⊨),  da vrijedi G ⊨F . Preostaje ispitati da li vrijedi  F  ⊨G .Za svaku zavisnost g iz G koja se nalazi i u F znamo da vrijedi F ⊨g  . Preostaje ispitati  F ⊨A → C . Primjenom pravila tranzitivnosti dobivamo da F ⊨A → C vrijedi. Možemo zaključiti da vrijedi  G ⊨F i F ⊨G , što i znači da vrijedi F ≡  G .   

PROPOZICIJA(≡ )1.   X →→ Y  ≡  ∞(XY, X ∪ (R − XY))2.   ∞(R1,.., Rk) ≡  ∞(R1,.., Rk, S), gdje je  S ⊆  Ri   za neki  i .

Sa   V(R, F)   označavamo skup svih valjanih relacija nad shemom  (R, F).

Propozicija (isto semantičko ograničenje)Neka vrijedi  F ≡  G . Tada vrijedi   V(R, F) = V(R, G) .

33

Page 38: Mirko Malekovic - Teorija Baza Podataka Skripta

2.3. FORMALNI SUSTAVI

Formalni sustav za zavisnosti sastoji se od pravila koja omogućuju rezoniranje o zavisnostima.

• Pravilo zaključivanja (dedukcije) za zavisnosti FVS(R)  je izraz oblika    f1,.., fk ⊦g  , gdje su  f1,.., g ∈ FVS(R) .

Pravilo   ∅ ⊦g     pišemo u obliku     ⊦g      i nazivamo aksiom.

Formalni sustav za funkcijske zavisnosti

• Formalni sustav za funkcijske zavisnosti je konačan skup pravila oblika      f1,.., fk ⊦g  , gdje su   f1,.., fk, g ∈ FZ(R) .

• Korektnost formalnog sustava     Formalni sustav  FS:  P1,.., Pm   je korektan ako je svako pravilo  Pi  iz  FS    korektno.      Pravilo   Pi:  f1,.., fk  ⊦g    je korektno ako vrijedi     f1,.., fk ⊨ g .Napomena: u definicijama koristimo veznik ako iako mislimo na veznik ako i samo ako. To primjerice znači da ako nije f1,.., fk ⊨g, onda pravilo f1,.., fk ⊦ g  nije korektno.

Primjer 2.13Ispitajmo korektnost sljedećih pravila:(a)  lp:  X → Y  ⊦XZ → Y        (b)  dp: X → Y  ⊦X → YZ

Rješenje

(a)  Pravilo lp je korektno ako vrijedi X → Y ⊨XZ → Y. Rezoniranje, temeljem kataloga FZ iz prošlog poglavlja, je kao što slijedi.1.  X → Y     zadano2.  XZ → YZ   iz 1. uz proširenje sa Z3.  YZ → Y     trivijalnost4.  XZ → Y     iz 2. i 3. primjenom tranzitivnostiPrema tome, vrijedi X → Y ⊨XZ → Y, tj. pravilo  lp  je korektno.

(b)  Pravilo dp je korektno ako X → Y ⊨X → YZ .Neka je R = ABC, X = A, Y = B, Z = C  i  r(A B C)                                                                   =======                                                                      1  2  3                                                                      1  2  2

34

Page 39: Mirko Malekovic - Teorija Baza Podataka Skripta

Lako provjerimo da A → B  vrijedi u  r , a  A → BC  ne vrijedi u r. Prema tome,A → B ⊭A → BC, tj. X → Y ⊭X → YZ. Dobiveni rezultat nam kaže da pravilo  dp  nije korektno.   Notacija   [FS]  f1,.., fk ⊦g    indicira da je zavisnost  g   derivabilna iz zavisnosti  f1,.., fk   primjenom formalnog sustava  FS .  Navedeno znači:Postoji niz zavisnosti   g1,.., gm  sa svojstvima:(a)   gm = g(b)   Svaki  gi  je jednak nekom članu u nizu  f1,.., fk   ili je dobiven iz    prethodnih  g­ova u nizu  g1,.., 

gm  primjenom nekog pravila iz  FS .

• Potpunost formalnog sustava     Formalni sustav  FS  je potpun za funkcijske zavisnosti ako

     (∀F ⊆  FZ(R))(∀g ∈FZ(R)[F ⊨g  ⇒  [FS] F ⊦g ]

Armstrongov formalni sustav  AFS

AFS  je formalni sustav za funkcijske zavisnosti, a sastoji  se od sljedećih pravila:

A1:   ⊦X → Y , ako je  Y ⊆  X    (trivijalnost)A2:     X  → Y  ⊦XZ → YZ      (proširenje)A3:     X → Y, Y → Z  ⊦X → Z       (tranzitivnost)

Propozicija(korektnost i potpunost AFS)Armstrongov formalni sustav  AFS  je korektan i potpun za funkcijske zavisnosti .

dokazZa  dokaz  korektnosti  AFS  trebamo dokazati  da   je   svako od  pravila   iz  AFS korektno,   tj.   trebamo dokazati da vrijede sljedeće logičke posljedice:A1k:   ⊨X → Y , ako je  Y ⊆  X          (trivijalnost)A2k:     X  → Y ⊨XZ → YZ              (proširenje)A3k:     X → Y, Y → Z ⊨X → Z       (tranzitivnost) 

Vidimo da smo logičke posljedice A1k. A2k i A3k dobili redom iz A1, A2 i A3 zamjenom znaka ⊦sa znakom ⊨.

Dokaz da dobivene logičke posljedice vrijede analogan je dokazu koji smo dali u razmatranju kataloga FZ u prošlom poglavlju 2 .

35

Page 40: Mirko Malekovic - Teorija Baza Podataka Skripta

Za dokaz potpunosti potreban nam je pojam zatvarača skupa atributa.

• Zatvarač skupa atributa

    Neka je  F ⊆  FZ(R)  i  X ⊆  R . Zatvarač skupa atributa  X  s obzirom na skup   funkcijskih zavisnosti F , u oznaci  XF

+ , definiramo ovako:     XF

+  = {A ∈ R  [AFS] F ⊦X → A}

Propozicija (logička posljedica pomoću zatvarača)[AFS] F ⊦X → Y   ako i samo ako   Y ⊆  XF

Algoritam za računanje   XF+ koristi pojam zatvarač­ primjenjivosti ili z­primjenjivosti.

• Zavisnost  X1 → Y1  je z­primjenjiva na  X  ako je     X1 ⊆  X  i nije  Y1 ⊆  X .

Algoritam za računanje   XF+

Ulaz:   F ⊆  FZ(R),  X ⊆  RIzlaz:      XF+Postupak:1.   Staviti   X0 = X2.   Odrediti zavisnost iz  F  koja je z­primjenjiva  na X0.      Ako takva zavisnost ne postoji, onda XF+ = X0 .

      Ako je  V → W  izabrana zavisnost iz  F , koja je z­promjenjiva na X0,  onda  izračunati  X1 = X0 ∪ W

3.   Primijeniti korak  2.  na  X1 .             Navedeni postupak treba ponavljati sve dotle  dok ne dobijemo takav skup  atributa  Xi  za koji ne 

postoji niti jedna zavisnost u  F  koja je    z­primjenjiva na  Xi . Dobiveni  Xi  je  XF

+ .

Prvi dio koraka 2. u navedenom algoritmu prikazujemo grafički u sljedećem obliku:

X0            

XF+ = X0 

36

Page 41: Mirko Malekovic - Teorija Baza Podataka Skripta

Graf nam kaže da temeljem X0 i činjenice da u F nema z­primjenjivih zavisnosti na X0 dobivamo XF+ = X0.

Drugi dio koraka 2. ima sljedeći grafički prikaz:

X0                   V → W

X1 = X0 ∪ WIz grafa čitamo da temeljem X0  i zavisnosti V → W iz F koja je z­primjenjiva na X0 dobivamo X1 = 

X0 ∪ W .

Primjer 2.14R = ABCD,  F:  A → B, BC → D, D → AIzračunajmo (a)  A F

+   (b) B F+

Rješenje(a)  Računamo  A F

+   

X0 = A                          A → B

X1 = A ∪ B = AB           

A F+ = AB

(b)  računamo  B F+

X0 = B                

 B F

+ = B

37

Page 42: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija (korektnost XF+)

Algoritam za računanje XF+  je korektan  .

Dokaz:Treba dokazati   Xi = XF

+  

Xi ⊆  XF+    

Pokazujemo indukcijom po  j  da ako je  A  stavljen u  Xj, onda je  A ∈ XF+    .  

j = 0  :   A ∈ X0 = X . Zato  X → A (po A1), te  A ∈ XF+    .

Pretpostavimo, kada je  A ∈Xk , onda je A ∈ XF+  

Neka je sada  A ∈ Xk+1 . Lako se dokaže da je tada  A ∈ XF+ .

 XF+  ⊆  Xi 

Dokazujemo da   [FS] F ⊦ X → Y  povlači  Y ⊆  Xj , gdje je  j ≤  i .Dokaz ‘ide’ indukcijom po dužini dokaza  X → Y  iz  F .d = 1 :   gm = g1 = X → Y .  Tada  X → Y ∈ F  ili  X → Y  slijedi iz  F  po  A1.  U prvom slučaju imamo Y ⊆  X1, a u drugom slučaju je Y ⊆  X = X0 .

Neka tvrdnja vrijedi za sve dokaze , gdje je  d ≤  k .Dokazat ćemo da tvrdnja vrijedi i za  sve dokaze , gdje je  d = k+1 .

Neka je dokaz oblika   f1,.., fk, X → Y .Ako   X → Y   ∈ F   ili   X  → Y   slijedi iz   F   po trivijalnosti (A1), onda zaključak slijedi kao u bazi indukcije.

Neka je  X → Y  dobiveno po tranzitivnosti izfi: X → Z ,  fj: Z → Y , gdje je  i < j ≤  k .fi  i  fj  imaju dokaze čija je dužina  d ≤  k .  Zato   Z ⊆  Xj .  Uzimajući   Z = X   u algoritmu, zbog   Z → Y, imamo   Y ⊆  Zm.   Dalje,   iz   Z  ⊆  Xj   slijedi   Zm ⊆ Xj+m .  Prema tome,  Y ⊆  Xj+m .Neka, na kraju,  X → Y  slijedi  iz  fj :  V → W  proširenjem sa skupom  Z , tj.  X = VZ  i  Y = WZ .Imamo,   W ⊆  Vk ⊆  Xk   i   Z ⊆  X ⊆  Xk . Zato, Y = WZ ⊆  Xk .

Propozicija (potpunost AS)Formalni sustav AS je potpun za funkcijske zavisnosti.

Dokaz:Treba dokazati da F ⊨X → Y  povlači  [AFS] F ⊦X → Y . Navedeno je ekvivalentno, po kontrapoziciji, [AFS] F ⊬X → Y  povlači F ⊭X → Y .

38

Page 43: Mirko Malekovic - Teorija Baza Podataka Skripta

Neka je relacija r(R) definirana ovako:

r (   XF+      R ­ XF

+   )===============     0 .. 0    0   .. 0      0    0    1  ..  1

Relacija r ima dva reda: prvi red sadrži sve nule, a drugi red ima nule na XF+    i jedinice na preostalim 

atributima.Sada nije teško pokazati, koristeći pretpostavku [AFS] F ⊬X → Y i činjenicu [AFS] F ⊦X → Y   ako i samo ako   Y ⊆  XF

+  (Propozicija(logička posljedica pomoću zatvarača)), da F vrijedi u r, a  X → Y  ne vrijedi u r. Prema tome, vrijedi  F ⊭X → Y . 

Formalni sustav za funkcijske i višeznačne zavisnosti

Formalni sustav za funkcijske i višeznačne zavisnosti, FS, sastoji se od sljedećih pravila:

FS:1.   A12.   A23.   A34.   X →→ Y  ⊦X →→ (R − XY)5.   X →→ Y  ⊦XW →→ YV , gdje je  V ⊆  W6.   X →→ Y, Y →→ Z  ⊦X →→ (Z − Y)7.   X → Y  ⊦X →→ Y8.   X →→ Y, W → Z  ⊦X → Z ,  gdje je  Z ⊆  Y  i W ∩ Y = ∅ .                                                            

PropozicijaFS  je korektan i potpun za funkcijske i višeznačne zavisnosti.

Korektnost znači zamjenu znaka  ⊦sa  ⊨, a potpunost znači zamjenu  ⊨sa  ⊦.        

39

Page 44: Mirko Malekovic - Teorija Baza Podataka Skripta

2.4. IMPLIKACIJSKI PROBLEM

Centralni problem teorije baza podataka je Implikacijski problem ( I­problem):

    Ispitati da li vrijedi    F ⊨f  , gdje  je  F ⊆  FVS(R)  i  f ∈ FVS(R) .

Postupci rješavanja  I­problema:

(Se)   Semantički  ( ⊨ ‘igra’)(Si)   Sintaksni    ( ⊦‘igra’ )(Al)   Algoritamski  (Algoritmi koji koriste  XF

+ ,  Bazu  zavisnosti,  Chase­ postupak).

Rješavanje  I­problema za funkcijske zavisnosti      

Algoritam (A)Algoritam testira   F ⊨f , gdje je  F ⊆  FZ(R)  i  f ∈ FZ(R)Ulaz:  F ⊆  FZ(R),   f: X → Y ∈ FZ(R)Izlaz:  DA  ako   F ⊨f           NE  ako   F ⊭f

Postupak:

1.    Izračunati     XF+  .

2.     Ako    Y  ⊆  XF+  , onda  F ⊨f .

        Ako   nije  Y ⊆  XF+  , onda  F ⊭f  

Primjer 2.15R = ABCD, F: A → B, A → CD, B → ARiješimo I­problem  F ⊨ B → AD .Računamo  BF

+

40

Page 45: Mirko Malekovic - Teorija Baza Podataka Skripta

X0 = B                                  B → A

X1 = BA                               A → CD

X2 = BACD                          

BF+ = BACD

Budući je  AD ⊆  BF+ , zaključujemo da vrijedi F ⊨B → AD .

Rješavanje  I­problem za funkcijske i višeznačne zavisnosti

Koristi se Baza zavisnosti .

Neka je  F ⊆  FVZ(R) ,  X ⊆  R .  Neka je  V  skup višeznačnih zavisnosti definiran ovako:(a)  Svaka višeznačna zavisnost iz  F  je u  V .(b)  Za svaku funkcijsku zavisnost  X → A1..Ak  iz F , u  V  staviti  višeznačne zavisnosti  X →→ A1,.., 

X →→Ak .

• Baza zavisnosti od  X  s obzirom na  V ,  BZ(X, V) ,  je particija  od  R − X , dobivena sljedećim algoritmom.

Algoritam (baza zavisnosti)

Ulaz:   X ⊆  R ,  V ⊆  VZ(R) .Izlaz:   BZ(X, V)

Postupak:1.   X0 = R − X2.   Izabrati zavisnost  V →→ W ∈ V   tako da  bude V ∩ X0 = ∅   i         W   ∩ X0 ≠  ∅..  Ako takva zavisnost ne postoji, onda je BZ(X, V) = X0,  inače3.    X1 = X0 ∩ W ,  X2 = X0 − W  .4.    Primijeniti   2.   na  X1  i  X2 .5.     Navedeni postupak ponavljati dok ne dođemo  do skupova   atributa       T1,.., Tm     koje više 

nije  moguće dekomponirati.6.     BZ(X, V) = {T1,.., Tm}

41

Page 46: Mirko Malekovic - Teorija Baza Podataka Skripta

Algoritam (B)Algoritam testira   F ⊨f  , gdje je  F ⊆  FVZ(R),  f ∈ FVZ(R) .

Ulaz:  F ⊆  FVZ(R),  f: X → Y   ili   f: X →→ Y ,  gdje su  X, Y ⊆  R,            X ∩ Y = ∅ .Izlaz:   DA   ako  F ⊨f             NE   ako  F ⊭fPostupak:

1.    Transformirati  F  u   V  .2.     Izračunati   BZ(X, V)  .3.     F  ⊨X →→ Y   ako i samo ako  Y  je unija nekih članova iz         BZ(X, V) .

        F ⊨X → A   ako i samo ako        (a)   A ∈ BZ(X, V)  i       (b)  Postoji  Xi → Yi  u  F  takva da  A ∩ Xi = ∅   i   A ∈ Yi  .

Napomena:    X → A1...Ak ≡  X→ A1,.., X → Ak 

Primjer 2.16 R = ABCD   F: A →B, BC → D, B →→ CRiješimo I­probleme(a)  F ⊨A → C           (b)  F ⊨A →→ C

Rješavamo (a)Računamo BZ(A, V), gdje je V:  A →→ B, BC →→ D, B →→ CParticioniramo  R ­ A = BCD

                                   BCD           A →→ B

                                       BCD ∩ B = B              BCD − B = CD

Dalje, dekomponiramo komponentu  CD 

                              CD        B →→ C

                                CD ∩ C = C               CD − C = D

42

Page 47: Mirko Malekovic - Teorija Baza Podataka Skripta

Prema tome,                           BZ(A, V) :  B, C, D

Za  F ⊨A → C  trebaju biti ispunjena dva uvjeta(a)   C ∈ BZ(A, V)  i(b)   Postoji funkcijska zavisnost  X → Y  u  F  tako        da bude  C ∩ X = ∅  i  C ∈ Y.Vidimo da je uvjet (a) ispunjen, ali uvjet (b) nije.Zaključujemo  F  ⊭A → C  .

Rješavamo  F ⊨A →→ C .BZ(A, V) :  B, C, D     (izračunato u postupku (a)).Kako je C unija nekih članova baze, jer je C član baze, slijedi  F ⊨A →→ C .

Napomena   Rješavajući prošli primjer, koristili smo kratice  {A, B, C} = ABC,  {A} = A;BZ(A,V) = {{B}, {C}, {D}} pisali smo u oblikuBZ(A, V) :  B, C, D .Dalje, kada pišemo  B ∈ X, onda je  B  pojedinačan atribut; kada pišemo  B ∩ X = Y, onda  B  treba shvatiti kao  {B}.  Eto, to je primjer polimorfne upotrebe zapisa  B (može bit ii zbunjujuće, zar ne?)

Algoritam (C)

Algoritam je najopćenitiji; testira  F ⊨f  ,  gdje je  F ⊆  FVS(R)  i  f ∈ FVS(R) .  Koristi se  Chase­postupak.

• Neka je zadano:(F, R),  R = A1,.., Am ,  d(R):  R1,.., Rn Definiramo početnu tablicu T0 ovako    

T0   (A1  A2...Am)==============R1                                                                                 aj   ako  Aj ∈ Ri.               Tij                                              Tij =                         Rn                                                                                 bij   ako  Aj ∉ Ri

Prema tome, tablica T0  sastoji se od odgovarajućih simbola  aj  i  bij .  Simbole  aj  zovemo istaknuti simboli.Red koji se sastoji samo od istaknutih simbola zovemo ciljni red, tj. red

cr:  a1a2...am   je ciljni red                        

43

Page 48: Mirko Malekovic - Teorija Baza Podataka Skripta

FZ, VZ, ZS   transformacije (modifikacije)

• (A)  Transformacija temeljem funkcijske zavisnosti      Neka je  f: X → Y;       Zapis   Ti       f       Ti+1  znači da je tablica            Ti+1  dobivena iz  Ti  transformacijom  temeljenoj na funkcijskoj   zavisti   f . Transformacija 

se sprovodi ovako:

Za bilo koja dva reda  t1, t2 ∈ Ti  takva da je t1[X] = t2[X]  izjednačite  t1[Y]  sa  t2[Y] koristeći pravilo (FZ) koje ‘radi’ na sljedeći način:neka je  t1[Y]:  a3   b57   b59              t2[Y]:  b13  b17   a9

Novi  t1[Y]  i  t2[Y]  poprimaju oblik

              t1[Y]:  a3    b17   a9              t2[Y]:  a3    b17   a9Dakle, pravilo  (FZ)  ne mijenja simbol  aj, a simbol bij  se zamjenjuje sa  aj  ili  sa  bkj, gdje je  k < i .

• (B)  Transformacija temeljem zavisnosti spoja        Neka je  f:  ∞(R1, R2,.., Rm)        Zapis   Ti       f       Ti+1  znači da je tablica            Ti+1  dobivena iz  Ti  transformacijom  temeljenoj na zavisti spoja  f .

Transformaciju sprovodimo koristeći pravilo (ZS):Ti+1 = Π[R1](Ti) ∞ Π[R2](Ti) ∞.. ∞ Π[Rm](Ti)

(C)  Transformacija temeljem višeznačne  zavisnosti       Neka je  f:  X →→ Y.             Kako je   f  ≡  ∞(XY, X(R −XY)), transformaciju temeljem  f   sprovodimo primjenom zavisnosti 

spoja   ∞(XY, X(R −XY)).  

  F­transformacija   T0   daje tablicu   Tf , koja se dobije iz   T0   serijskom primjenom svih mogućih transformacija koristeći zavisnosti iz  F .(  Tf   je model za   F ) .

44

Page 49: Mirko Malekovic - Teorija Baza Podataka Skripta

Algoritam(C)Testiramo   F ⊨ ∞(R1,.., Rm)         (C1) 

Postupak:

1.   Napisati  T0  za zadani  R  i   d(R) = R1,.., Rm .2.   Izračunati  Tf .3.   F  ⊨∞(R1,.., Rm)   ako i samo ako   cr ∈ Tf .    

 Testiramo   F  ⊨ X →→ Y       (C2)

Postupak:1.  Napisati  T0  za zadani  R  i   d(R) = XY, X ∪ (R − XY)                2.   Izračunati  Tf3.    F ⊨ X →→ Y  ako i samo ako   cr ∈ Tf .

  Testiramo   F ⊨X → Y                   (C3)

Postupak:1.   Napisati   T0   za zadani   R   i   d(R) =  X, R   .2.   Računati   Tf  .

3.   F ⊨ X → Y   ako i samo ako su svi  Y­stupci  ciljni,   tj.  sastoje se samo od odgovarajućih simbola aj .

45

Page 50: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1.  Neka je R = ABCD,    F:  A → C, C →→ B, ∞(AB, C, BD).

Riješite I­probleme:(a)  F ⊨A → B         (b)  F ⊨ B →→ A      (c)  F ⊨∞(ABC, BD).

2. Neka sl(Al) znači složenost algoritma Al.Usporedite složenost algoritama (A), (B) i (C).

3.  Temeljem rezultata u zadatku 2., definirajte optimalnu kombinaciju predloženih algoritama za rješavanje I­problema. 

46

Page 51: Mirko Malekovic - Teorija Baza Podataka Skripta

Svojstva zavisnosti                                                                 

• X → Y   je trivijalna ako   Y ⊆  X .

• X →→ Y  je trivijalna nad  R  ako  Y ⊆  X   ili   XY = R  .

• R ,   d(R) :  R1,.., RkZavisnost spoja  ∞(R1,.., Rk)   je trivijalna ako    Ri = R   za neki 

     i = 1,.., k

• Neka je zadana je shema   (R, F) ,   F ⊆  FVS(R).

    X → Y ∈ FVS(R)   je parcijalna s obzirom na  F  ako     ∃Z ⊂  X :   F   Z → Y

    X → Y ∈ FVS(R)   je tranzitivna s obzirom na  R  ako    ∃Z ⊆  R :   F ⊨X → Z ,   F ⊨ Z → Y , gdje je  Z → Y  netrivijalna  zavisnost,  F ⊭Z → X . 

Činjenica da je   X  →  Y   tranzitivna zavisnost znači  mogućnost konstrukcije sljedećeg tranzitivnog dijagrama:                                                        n.z.          X                                      Z                                  Y                        

• Ključ

K ⊆  R   je ključ za  (R, F)  ako

(k1)     F ⊨K → R         (jedinstvena identifikacija)

(k2)     Ne postoji  K1 ⊂  K :   F  ⊨K1 → R    (minimalnost)

Atribut  A ∈ R  je ključni atribut ako je član nekog ključa sheme  (R, F);  atribut  A ∈ R  je neključni atribut ako nije član niti jednog ključa sheme  (R, F) .

47

Page 52: Mirko Malekovic - Teorija Baza Podataka Skripta

ZadatakZadana je relacijska shema  (R, F), gdje je  R = ABCDE,   F:  AB → D, C → AD,B → D.• Odredite sve ključeve za  (R, F);• Je li zavisnost  AB → D  parcijalna s obzirom na  F ?• Je li zavisnost  C → D  tranzitivna s obzirom na  F ?• Postoji li parcijalna zavisnost neključnog atributa od ključa ?• Postoji li tranzitivna zavisnost neključnog atributa od ključa ?

Čuvanje informacije

     (R, F) ,  d(R1,.., Rk)     Dekompozicija   d   čuva informaciju ako  F ⊨ ∞(R1,.., Rk)

Zadatak R = ABCD,    F:  A → BC, B →→ AD  d(R):  AC, CD, AB .Ispitati da li dekompozicija  d(R)  čuva informaciju.

Čuvanje zavisnosti

• (R, F) ,   d(R):  R1,.., Rk

     Dekompozicija   d   čuva zavisnosti  F  ako za svaku relaciju   r   nad  R    vrijedi:  Ako  je   Π R1(r) model za  Π R1(F)  i  ...Π Rk(r) model za  Π Rk(F) , onda je  r   model za   F  .

Računanje projekcije skupa zavisnosti

1.   Projekcija skupa funkcijskih zavisnosti  F

      Π Ri(F) = {X → Y   F ⊨ X → Y   i   XY ⊆  Ri} 

2.   Projekcija skupa višeznačnih zavisnosti

      Π Ri(F) = {X →→ Y   ∃Z ⊆  R:  F ⊨X →→ Z , Y = Z ∩ Ri),                       XY ⊆   Ri}

ZadatakR = ABCDE ,  R1 = ACD ,   F :  A → BC ,  B → DE ,  B →→ C ,                                                      AC →→ DE

48

Page 53: Mirko Malekovic - Teorija Baza Podataka Skripta

Ispitati koje od zavisnosti:  A → BC ,  A → DE ,  AC →→ DE ,  AC →→ D , C →→ D  pripadaju projekciji Π R1(F) .    

Propozicija (čuvanje funkcijskih zavisnosti)Neka je zadana shema  (R, F) , gdje je  F ⊆  FZ(R) .Dekompozicija  d(R): R1,.., Rk   čuva zavisnosti  F  ako i samo ako                     Π R1(F) ∪ .. ∪ Π Rk(F) ⊨ F              

Algoritam za testiranje čuvanja funkcijskih zavisnosti

•  Ri­operacija  na skupu atributa  X

      Ri(X, F) = X ∪ [(X ∩ Ri)F+   ∩  Ri ]

ZadatakR = ABCD ,  X = AC ,  R1 = AB ,  F :  A → B ,  B → CIzračunati  R1(X, F)

Algoritam (čuvanje zavisnosti)

Testiramo  G ⊨F ,  gdje je  G =   Π R1(F) ∪ .. ∪ Π Rk(F) .G se neće eksplicite računati !! 

Ulaz:  (R, F) ,  F ⊆  FZ(R) ,  d(R): R1,.., RkIzlaz:  Da  ako   d   čuva  F          Ne   ako   d   ne čuva  F 

Postupak:1.  Izabrati zavisnost  f: X → Y  iz  F   te ispitati da li   d  čuva  f;  Ispitivanje koristi postupakP:       (1)  X0 = X       (2)  Xi+1 = Rj(Xi, F)   za neki   Rj ∈ d(R)       (3)  Prvi   Xk  za koji vrijedi Rt(Xk, F) = Xk ,   za svaki  Rt ∈ d(R) ,             je  XG

+

       (4)   G  ⊨ X → Y , tj.  d  čuva  X → Y  ako i samo ako Y ⊆  XG+.

2.   d   čuva  F  ako i samo ako   d   čuva svaku zavisnost iz F.       ZadatakR = ABCD ,  d(R) :  AB ,  BC ,  CD;   F:  A → B ,  B → C ,  C → D , D → AIspitati da li dekompozicija   d   čuva  F .

49

Page 54: Mirko Malekovic - Teorija Baza Podataka Skripta

2.5. NORMALNE FORME

Primjer 2.17 (uvodni)

Neka je zadana relacijska shema  (R, F), gdje je  R = Artikl#, Dobavljač#, Grad;   F: Dobavljač# → Grad .

Neka  relacija  do  (dobavljač)  nad  R  u nekom trenutku vremena ima  sljedeći oblik

   do (Artikl#   Dobavljač#   Grad)    ======================          a1              d1            Zagreb          a2              d1            Zagreb          a3              d1            Zagreb          a2              d3            Sisak          a4              d2            Rijeka

Semantika  do(a, d, g)   znači da dobavljač  d  lociran u gradu  g   dobavlja artikl  a .Relacija     do     nema   ‘dobru’   strukturu   (shemu)   za   predstavljanje   navedenih   podataka,   jer   sadrži redundantno ponavljanje grada dobavljača za svaki artikl.

Karakterizacija redundancije

Zamislimo da, poslije upisivanja reda  (a1, d1, Zagreb)  u relaciju  do , želimo u  do  upisati (parcijalni) red  (a2, d1, ? ). Navedena situacija je prikazana u tablici

 do(Artikl#   Dobavljač#   Grad)=========================             a1            d1              Zagreb         a2            d1                   ?   

Postavimo sljedeće pitanje:   je   li  moguće odrediti   (deducirati)  vrijednost  atributa   Grad   u drugom (parcijalnom) redu na temelju danih podataka u  do  i svojstava relacijske sheme  (R, F). Nije teško zaključiti da treba biti   ? = Zagreb, jer u relaciji   do   mora vrijediti funkcijska zavisnost Dobavljač# → Grad (semantičko ograničenje).Prema tome, upisivanje  Grad = Zagreb  u drugom redu je suvišno (redundantno), jer ta činjenica slijedi iz  danih  podataka  u    do     i  propisanog semantičkog ograničenja    F.  No,  propisana  shema od   do zahtijeva ponavljanje lokacije dobavljača za svaki artikl, što samo znači da relacijska dana relacijska shema  (R, F)  nije dobra. Zaključimo da se redundancija manifestira ponavljanjem podataka (koji inače slijede iz danih podataka), ali da nije svako ponavljanje podataka ujedno i redundantno ponavljanje. 

50

Page 55: Mirko Malekovic - Teorija Baza Podataka Skripta

Naime, ukoliko pojavljivanje nekog podatka ne slijedi iz danih podataka, tada njegovo ponavljanje nije redundantno (poslije ćemo vidjeti upravo takvu situaciju).Kao posljedicu redundancije imamo poteškoće u ažuriranju baze podataka, što je poznato pod nazivom anomalije ažuriranja, koje ćemo pojasniti na primjeru zadane relacije  do . 

Anomalije

(AB)  Anomalija brisanja:Brisanjem redova za artikle   a1, a2, a3 (kada   d1   prestane dobavljati artikle), gubimo informaciju o dobavljaču i pripadnom gradu (nepoželjan efekt)

(AU)  Anomalija upisivanja:Nemogućnost upisivanja dobavljača i pripadnog grada ako dani dobavljač trenutno ne dobavlja neki artikl.

(AM)  Anomalija modifikacije:Nemogućnost nezavisnog ažuriranja vrijednosti atributa Grad .Napomena:  (AB) i (AU)  ne možemo riješiti pomoću NULL znaka.

ZadatakObjasnite navedenu napomenu.

Uzrok promlema

Postoji parcijalna zavisnost neključnog atributa Grad o ključuK = Artikl#, Dobavljač#. Navedeno znači da  (R, F)  nije u  2NF. Karakterizacije normalnih formi dat ćemo u preostalom dijelu ovog poglavlja, nakon što opišemo problem   oblikovanja sheme relacijske baze podataka.

Nastavimo razmatranje našeg primjera.  Problem redundancije,  a  samim tim i  anomalija  ažuriranja, možemo riješiti eliminacijom parcijalne zavisnosti neključnog atributa   Grad   o ključu   K = Artikl#, Dobavljač  tako da izvršimo  2NF dekompoziciju relacijske sheme  (R, F).Dekomponirajući  R, koristeći funkcijsku zavisnost  Dobavljač# → Grad, dobivamod(R):  R1 = Dobavljač#, Grad   R2 = Dobavljač#, Atrikl.Shema relacijske baze podataka poprima oblikSRBP:  (R1, Π R1(F)) ,  (R2, Π  R2(F) ) .  SRBP  je u  2NF, tj., svaka relacijska shema iz  SRBP  je u  2NF.

Umjesto relacije  do ,  baza podataka  BP , nad relacijskom shemom  SRBP, sastoji se od projekcija  do na  R1  i  R2. Tako dobivamoBP:  do1, do2, gdje je do1 = Π Dobavljač# Grad (do) i do2 = Π Dobavljač# Artikl# (do).

51

Page 56: Mirko Malekovic - Teorija Baza Podataka Skripta

Relacije  do1  i  do2  izgledaju ovako:

do1 (Dobavljač#   Grad)       do2 (Dobavljač#  Artikl#)

            d1            Zagreb                   d1              a1            d3            Sisak                      d1              a2             d2            Rijeka                    d1              a3                                                          d3              a2                                                          d2              a4

Uočite da u dobivenoj bazi podataka   BP =   do1, do2   nemamo prije opisane anomalije ažuriranja. Također, primijetite da ponavljanje dobavljača   d1 za svaki od artikala koje   d1   dobavlja (u relaciji do2) nije redundantno, jer inače ne bismo znali što nam sve dobavlja  d1.

Dekompozicija  d(R):  R1, R2  ima sljedeća svojstva:  

(A)    d(R)   je 2NF  dekompozicija(B)    d(R)    čuva informaciju   (do = do1 ∞ do2)(C)    d(R)    čuva skup zavisnosti  F  , tj.,                     Π R1(F) ∪ Π R2(F)   F  .

Problem logičkog oblikovanja sheme relacijske baze podataka

Za danu relacijsku shemu  (R, F)  treba odrediti dekompozicijud(R):  R1, .., Rm , tj., shemu relacijske baze podatakaSRBP:  (R1, Π R1(F)), .., (Rm, Π Rm(F)), tako da bude ispunjeno:• SRBP  je u željenoj normalnoj formi,• d(R)  čuva informaciju,• d(R)  čuva zavisnosti  F.

Vrijedi istaknuti da se u, ne baš najboljoj, praksi problem oblikovanja reducira na sintezu  3NF. Naime, neki kažu da se više normalne forme (> 3) rijetko koriste u praksi. Moglo bi se reći: to gore po tu i takvu   praksu.   Dalje,   neki   kažu  da   su   više   normalne   forme   ‘teške’   za   razumijevanje   i   postizanje. Navedeno govori više o onima, nadam se neinformatičarima, koji, po svemu sudeći, ne znaju ono što rade. Na kraju, ima i onih, nije rijetkost niti među profesionalnim informatičarima, koji kažu: što će nam normalizacija, kada i tako moramo denormalizirati za potrebe skladišta podataka i td.. I u ovom slučaju, može se reći što je već prije kazano, tj. riječ je o neznanju.Prije svega, koristi se pojam denormalizacije, a da o denormalizaciji uopće nije riječ. Drugo, miješaju se dvije razine, tj.,  dva različita konteksta: riječ  je o operativnim bazama podataka (OLTP) i skladištu podataka (DW), koji, naprosto, imaju različite ciljeve u oblikovanju. Zaključimo, da ukoliko je riječ o (operativnim) bazama podataka, treba postići najvišu moguću normalnu formu. Svakako, to zahtijeva suptilno poznavanje principa oblikovanja baze podataka.

52

Page 57: Mirko Malekovic - Teorija Baza Podataka Skripta

Normalne forme

Neka je  A = {a, b, c,..}  skup atomskih objekata .Koristeći konstrukte za skupove, liste i relacije,  dobivamo skupove neatomskih (složenih) objekata

Primjer 2.18A = Alf ∪ I ∪ R ∪ Dat ∪ Novac ∪ Graf ;S = {{a, b}, ∅,..};  L = {<a, b, a, c>, <>, ..};R = {r1, r2,..};  K = {<r1, S1, {a}>,..}

A je skup atomskih objekata (sadrži alfanumerički tip, cjelobrojni tip, realne brojeve, datum i td.)S, L, R, i  K se sastoje od složenih objekata: S je skup čiji elementi su skupovi, L je skup čiji elementi su liste, R je skup koji se sastoji od relacija, a K je skup koji se sastoji od elemenata koji su izgrađeni kombinacijom elemenata iz skupova S, L i R . 

• Atribut   A   je atomski (jednostavan) atribut ako se   Dom(A) sastoji samo od atomskih objekata; u protivnome,  A  je složen atribut.

•  (R, F)  je u  1NF  ako su svi atributi iz  R  atomski atributi.     (R, F)  je  u poopćenoj NF ako je svaki atribut iz  R  jednostavan ili   složen. 

U daljem pretpostavljamo da je  (R, F)  je u  1NF , gdje  je  F ⊆  FVS(R).

•  2NF :     (R, F)  je u  2NF  ako s obzirom na  F ne postoji  parcijalna zavisnost  neključnog atributa od ključa.

•   3NF :      (R, F)  je u  3NF  ako s obzirom na  F  ne postoji       tranzitivna zavisnost neključnog atributa od ključa .

•  Zatvarač skupa zavisnosti  F :       F+  =  {f ∈ FVS(R)   F   f }

•   BCNF :      (R, F)  je u  BCNF  ako za svaku netrivijalnu funkcijsku  zavisnost 

    X → Y ∈ F+  vrijedi:  Lijeva strana  X  sadrži ključ od  (R, F) .

•  4NF :      (R, F)  je u   4NF ako za svaku netrivijalnu višeznačnu zavisnost       X →→ Y ∈ F+  vrijedi: Lijeva strana  X sadrži ključ od  (R, F) .

53

Page 58: Mirko Malekovic - Teorija Baza Podataka Skripta

• 5NF :     (R, F)  je u  5NF  ako za svaku netrivijalnu zavisnost spoja      ∞(R1,.., Rk) ∈ F+   vrijedi: svaka komponenta Ri  sadrži neki ključ od      (R, F) .

Propozicija(odnos normalnih formi)Svaka viša normalna forma povlači nižu normalnu formu.Formalno,  Ako je  (R, F)  u   XNF , onda je  (R, F)  u  YNF,  gdje je  Y < X . (Pretpostavljamo uređaj: 1 < 2 < 3 < BCNF < 4 < 5) 

dokazdokazat ćemo dio propozicijeP23: Ako je (R, F) u 3NF, onda je (R, F) u 2NF.Dokaz ‘ide’ po kontrapoziciji: Prepostavimo da (R, F) nije u 2NF. To znači da postoji parcijalna zavisnost neključnog atrubuta od ključa. Neka je ta parcijalna zavisnost oblikaK → A, gdje je K ključ za (R, F) i A je neključni atribut. Iz parcijalnosti zavisnosti  K → A možemo zaključiti da postoji Y ⊂  K takav da vrijediF  Y → A. Prema tome, imamo sljedeće činjenice:(1)  F  K → Y(2)  F  Y → A      (Y → A je netrivijalna zavisnost)(3)  F  Y → KIz (1), (2) i (3) vidimo da je neključni atribut A tranzitivno zavisan od ključa K. Znači da (R, F) nije u 3NF.Ostali odnosi dokazuju se analogno.                             PropozicijaZa svaku shemu  (R, F), gdje je  F ⊆  FZ(R), postoji3NF dekompozicija koja čuva informaciju i zavisnosti.Dokaz: (algoritam sinteze 3NF preko kanonskog pokrivača).• Kanonski pokrivač  od   F ,   kp(F), dobije se iz   F   primjenom sljedeća tri koraka u navedenom 

redoslijedu:     (1)    Desna dekompozicija     (2)    Lijeva redukcija• Izbacivanje redundantnih (suvišnih) zavisnosti

       F              (1)     (2)     (3)                kp(F)                                          

Računanje   kanonskog   pokrivača   i   algoritam   sinteze     3NF     možete   naći   u   popisu   literature   ili   u predavanjima M. Maleković: Baze podataka. 

54

Page 59: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija (BCNF)Postoji shema  (R, F)  za koju ne postoji  BCNF dekompozicija koja čuva informaciju i zavisnosti.dokazZa dokaz propozicije razmotrite shemu (R, F), gdje je  R = ABC  iF: AB → C ,  C → A . Pokažite prvo da  (R, F)  nije u  BCNF, a zatim zaključite da se (R, F) ne može BCNF  dekomponirati ukoliko želimo da BCNF dekompozicija čuva informaciju i zavisnosti.

55

Page 60: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

Zadataci[relacijska algebra]

1. Zadane su relacije i formula  F :r (A  B  C  D)     s (B  C  E)                      1   1   0   2          0   1   2   0   0   0   1         0   2   0    2   1   1   0          1   0   2    2   2   1   1          2   0   1

F: [(A < B) ∧ (D = C)] ⇒ [(B ≠  E) ⇔ (A = B)].Izračunajte  AC[Π ABD(σ ¬ F(s ∞  r ))].

2. Zadane su relacijer1(A B C D)    r2(B C D E)   r3(C D)     1 2  2  1          2  2  1  1         2  1     1 1  1  1          1  1  0  0         1  1     1 2  3  3          3  1  2  0

i  formula  G = (B > E) ⇒ (C ≠  1) .Izračunajte   s = σ G{ΠBCE[(r1 ÷  Π D(r3)) ∞ r2]}.

3.  Dokažite jednakosti (1), (5), (10), (11) i (12) iz kataloga RO.

4.  Dokažite relacije (6), (8) i (9)  iz kataloga RO.     Napomena: kažemo da je  r(R) ⊆  s(S)  ako je  R = S  i svaki slog koji je u relaciji  r  jeste i u relaciji 

s .

5.  Dokažite propoziciju(jednakost slogova na praznom skupu atributa) i propoziciju(temeljni operatori)

56

Page 61: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI [zavisnosti u relacijskim bazama podataka]

1.  Ispitajte svaku od zavisnosti iz skupa  F:  AB → D, B →→ AC, ∞ (AB, CD),∞ (A, BCD)  u relaciji

r ( A  B  C  D)===========     1   2   2   1     2   1   1   1     1   2   0   0

2.  Je li vrijedi  X → Y  XZ → Y (lijevo proširenje) ?

3.  Vrijedi li X → Y  X → YZ (desno proširenje) ?

4.  Dokažite 3. iz kataloga FZ .

5.  Dokažite 1. iz kataloga FVS .

6.  Dokažite propoziciju(isto semantičko ograničenje)

57

Page 62: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI [formalni sustavi]

1.  R = ABCDE, F: AB →BC, CE → D, D → ABOdredite B F

+   ,  AD F+

2.  Je li vrijedi[AFS] A → B, A → C    A → BC ?Napomena: u zadatku trebate iz A  → B i A  → C deducirati A  → BC   primjenom pravila formalnog sustava AFS .

3.  Je li vrijedi [AFS] A → B   A → BC ?

4. Dokažite potpunost formalnog sustava AFS. 

58

Page 63: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI [implikacijski problem]

1. Zadana je relacijska shema  (R, F), gdje je  R = ABCDE,   F:  AB → D, C → AD, B → E. Odredite sve ključeve za  (R, F).

2.  R = ABCDE,   F:  AC → D, C → BD, B → E, E → D(a)  Je li zavisnost  AB → D  parcijalna s obzirom na  F ?(b)  Je li zavisnost  C → E  tranzitivna s obzirom na  F ?

3.  R = ABCD,   F:  AC → D, C → BD, B → A, A → D(a)  Postoji li parcijalna zavisnost neključnog atributa od ključa ?(b)  Postoji li tranzitivna zavisnost neključnog atributa od ključa ?

4.  R = ABCDE ,  R1 = ABD ,   F :  A → BC ,  B → D ,  B →→ A ,                                                         AC →→ DE

Ispitati koje od zavisnosti:  A → B ,  A → DE ,  AB →→ D ,  AC →→ D , B →→ D  pripadaju projekciji Π R1(F) .

5.  R = ABCDE ,  d(R) :  AB ,  BCE ,  CD;F:  A → B ,  B → C ,  C → DE ,  D → AIspitati da li dekompozicija   d   čuva  F .

6.  Dokazati korektnost algoritma za testiranje čuvanja zavisnosti.

59

Page 64: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI [normalne forme]

1.  R = ABCDE,  F:  AB → C, CD → A, B → CJe li  (R, F) u  2NF?Je li  (R, F) u  3NF?

2.  R = ABCD,  F: A → BC, C → AJe li  (R, F) u BCNF?

3. R = ABCD,  F:  A → C, B →→ AJe li  (R, F) u 4NF?

4.  R = ABCD, F: A → B, B →→ C, ∞(AB, BCD)Je li  (R, F) u 5NF?

5.  R = ABCDE,  F: AB → C, B → CD, DE → BPrimijenite algoritam sinteze 3NF.

 

60

Page 65: Mirko Malekovic - Teorija Baza Podataka Skripta

3. PARCIJALNA INFORMACIJA

3.1. UVOD

Reprezentacija objekta (pomoću sloga relacije) može biti nepotpuna tj. parcijalna. To je posljedica:(A)   Nepoznavanja vrijednosti sloga na nekom od atributa (u trenutku ažuriranja baze podataka),(B)   Nedefiniranosti sloga na nekom od atributa (u trenutku   ažuriranja baze podataka) .

Primjer 3.1 (A) :Neka je zadana relacija         nastavnik (N#   Prezime   Zvanje   Predmet). Neka je, također, za danog nastavnika  N1  trenutno nepoznatato njegovo zvanje.Atribut  Zvanje  je definiran (primjenjiv) za  N1, ali je njegova vrijednost nepoznata.

Primjer 3.2 (B) :U istoj relaciji, nastavnik(N#  Prezime  Zvanje   Predmet), za danog nastavnika   N2  atribut   Predmet nije definiran (natavnik  N2  trenutno ne predaje niti jedan predmet) .

Navedenu situaciju iz primjera 2.1(A) i 2.2(B) prikazujemo u relaciji   nastavnik ovako:

nastavnik(N#  Prezime  Zvanje  Predmet)==============================                N1  Singer         ?          Fizika I                N2   Radić      Docent        !                 ­          ­                ­              ­

Znak   ?   znači definiranu, ali nepoznatu vrijednost sloga ( u SQL­u to je null) ;Znak   !    znači nedefiniranu vrijednost sloga .

U nastavku razmatrat ćemo samo parcijalne relacije tipa ?.

61

Page 66: Mirko Malekovic - Teorija Baza Podataka Skripta

2.2. PARCIJALNA RELACIJA

• Parcijalna relacija tipa   ?   

R = A1,.., Am ;   Dom(Ai) = Di ,  i = 1,.., m ;  D = D1 ∪ .. ∪ Dm .     D? = D ∪ {?} .Parcijalani slog nad  R  je funkcija   t: R → D?   takva da vrijedi:

(1)   (∀Aj ∈ R)[t(Aj) ∈ Dj   ili   t(Aj) = ?]   i(2)   (∃Ak ∈ R)[t(Ak) ∈ Dk] .

Slog   t   je potpun ako je ∀Ai ∈ R :   t(Ai) ∈ Di  .Vidimo da je potpun slog specijalizacija (parcijalnog) sloga. Također, funkcijaf: R → D?  takva da je (∀Aj ∈ R)[f(Aj) = ?] nije (parcijalni) slog

      Potpunost                                               Parcijalnost

   Nema pojavljivanja                                 Može postojati         znaka   ?                                      pojavljivanje znaka  ?

Parcijalna relacija nad  R  je konačan skup parcijalnih slogova nad  R .Relacija   r(R)   je potpuna ako se  r  sastoji samo od potpunih slogova.

Vidimo da je parcijalna relacija pooćenje potpune (uobičajene) relacije.

Primjer 3.3Neka je zadana relacija

radnik(Radnik#  Prezime  Odjel#  Plaća)==============================             R1          Benc         O1       1000             R2          Marić        ?          1200             R3          Mihalić     O2          ?

Semantika:  Radnik  Marić  radi u nepoznatom odjelu, ima šifru  R2  i plaću  1200 ;  Radnik  Mihalić, šifra  R3, radi u odjelu  O2, a njegova plaća je nepoznata.

62

Page 67: Mirko Malekovic - Teorija Baza Podataka Skripta

Napomena:Različita pojavljivanja znaka  ?  u danom trenutku vremena mogu poprimiti različite vrijednosti.

• Upotpunjenje parcijalne relacije

Upotpunjenje parcijalne relacije  r  je potpuna relacija koja se dobije zamjenom svih pojavljivanja znaka ?  u r vrijednostima iz D;  oznaka  r*.

Primjer 3.4Napišimo jedno upotpunjenje relacije radnik iz prošlog primjera.

radnik* (Radnik#  Prezime  Odjel#  Plaća)==============================             R1          Benc         O1       1000             R2          Marić        O3       1200             R3          Mihalić     O2       1300   

Koliko upotpunjenja ima relacija radnik?

Logički operatori (trovalentna logika)

Propozicija p je deklarativna rečenica koja ima jednu od sljedećih istinosnih vrijednosti:v(p) = T   (p je istinito)v(p) = F   (p je neistinito)v(p) = N  (istinitost od p je nepoznata) 

Logički operatori negacija (¬), disjunkcija (∨) i konjunkcija (∧) u trovalentnoj logici definirani su u sljedećoj tablici

P   Q        ¬P      P ∨ Q     P  ∧ Q========================F  F   T     F     FF  N   T     N     FF  T   T     T     FN  F   N     N     FN  N   N     N     NN  T   N     T     NT  F   F     T     FT  N   F     T     NT  T   F     T     T

Implikacija (⇒) i ekvivalencija (⇔) su definirane jednakostima:

63

Page 68: Mirko Malekovic - Teorija Baza Podataka Skripta

P ⇒ Q = ¬P ∨ Q          P ⇔ Q = (P ⇒ Q) ∧ (Q ⇒ P)

•  Aritmetički operatori uspoređivanja i aritmetičke operacije

Neka je op bilo koji operator iz skupa aritmetičkih operatora uspoređivanja{<,  >,  ≤ ,  ≥ ,  =,  ≠} . Tada je  X op Y = N  ako je X = ? ili Y = ?.

Dakle, rezultat uspoređivanja je nepoznat (vrijednost N) čim  jedan od operanada poprima znak ? 

Neka je Θ  bilo koja od aritmetičkih operacija iz skupa {+,  −, × ,  /}. Tada jexΘ  y = ? ako je x = ? ili y = ? (pretpostavljamo da nije riječ o dijeljenju sa 0). 

Primjer 2.5Odredimo istinosnu vrijednost sljedećih propozicija:(a)  0 < 0(b)  ? ≤  0(c)  1 + ? = 1(d)  ? = ?

Rješenje(a)  F      (b)  N     (c) N    (d) N

• Jednakost parcijalnih slogova

Postoji nekoliko definicija jednakosti parcijalnih slogova. Svaka od definicija je poopćenje jednakosti potpunih slogova,  a  izbor  svake od njih  vodi  na različitu  relacijsku algebru.  Navodimo sljedeće tri definicije jednakosti parcijalnih slogova.

(J1)  Za parcijalne slogove t1, t2 : R → Dα  kažemo da su jednaki ako(A  R)[t1(A) = t2(A)].Dakle, jednakost (J1) zahtijeva jednakost na svakom atributu iz R.

(J2)  Za parcijalne slogove t1, t2 : R → Dα  kažemo da su jednaki ako(A  R)[t1(A) i t2(A) su isti simbol].Jednakost (J2) zahtijeva pojavljivanje istog simbola za svaki atribut iz R (simbolička jednakost).

(J3)  Za parcijalne slogove t1, t2 : R → Dα  kažemo da su jednaki ako(A  R)[(t1(A) = t2(A) ako je t1(A), t2(A) ∈ D) ili (t1(Ai) je ?  ili  t2(Ai) je ?)] i(B  R)[ t1(B) = t2(B) i t1(B), t2(B) ∈ D]

64

Page 69: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 3.6Neka je zadana relacijaradnik(Radnik#  Prezime  Odjel#  Plaća)==============================            R1          Benc         O1      1000            R2          Marić        ?         1200            R3          Mihalić     O2          ?            R4          Marić        ?             ?            R5          Mihalić     ?         1100            R6              ?          O3       1000            R7              ?           ?           900 

Odredimo  Π Prezime, Odjel# (radnik) primjenom(a)  jednakosti (J1)(b)  jednakosti (J2)

(c) jednakosti (J3)(ci)

Rješenje(a)  Dobivenu projekciju ćemo označiti sa Π (J1).Prije eliminacije ponavljanja redova i neslogova (sastoje se samo od znakova ?) dobivamo tablicu

r1(Prezime     Odjel#)===============      Benc           O1      Marić           ?      Marić           ?      Mihalić       O2      Mihalić         ?         ?              O3         ?                ?Konačno,  nakon eliminacije  zadnjeg   reda   i  budući  da  nema,   temeljem (J1),   jednakih   redova u   r1, dobivamo

Π (J1) Prezime, Odjel# (radnik)(Prezime     Odjel#)================================                                           Benc           O1                                           Marić           ?                                           Marić           ?                                           Mihalić       O2                                           Mihalić         ?                                             ?              O3

65

Page 70: Mirko Malekovic - Teorija Baza Podataka Skripta

(b)  U prvom koraku dobivamo r1 iz dijela (a). Sada izbacujemo neslogove i ponavljanja, temeljem (J2), jednakih slogova. Rezultat je

Π (J2) Prezime, Odjel# (radnik) (Prezime     Odjel#)================================                                            Benc           O1                                            Marić           ?                                            Mihalić       O2                                            Mihalić         ?                                               ?              O3

(c)  Nakon eliminacije neslogova i ponavljanja temeljem (J3), dobivamo

  Π (J3) Prezime, Odjel# (radnik)(Prezime     Odjel#)=================================                                             Benc           O1                                             Marić           ?                                             Mihalić       O2                                                ?              O3

Kod eliminacije ponavljanja temeljem (J3), iz r1 smo izbacili manje  informativan slog (slog s više znakova ?). To je ujedno opće pravilo eliminacije temeljem (J3).Dalje,  nije   teško vidjeti   da   su   skupovi  upotpunjenja   relacija  Π (J1),  Π (J1)   i  Π (J3)   različiti.  Zato kažemo da su i operatori projiciranja Π (J1), Π (J2) i Π (J3) različiti. To također znači da su relacijske algebra RA(J1), RA(J2) i RA(J3) različite. 

66

Page 71: Mirko Malekovic - Teorija Baza Podataka Skripta

3.3. RELACIJSKI OPERATORI ZA PARCIJALNE RELACIJE

U daljnjem razmatranju pretpostavljamo da su relacijski  operatori  definirani  primjenom simboličke jednakosti (J2). Naznaku (J2) u nazivu operatora ispuštamo zbog jednostavnosti.    

Uvodimo dva operatora selekcije:

• σ  F(r) = {t ∈ r   F(t) = T},   σ NF(r) = {t ∈ r   F(t) = N}

Dakle, u  σ  F(r)   su oni slogovi iz  r   koji zadovoljavaju  F ;

U   σ NF(r)   su oni slogovi iz   r   za koje ne znamo da li zadovoljavaju uvjet  F .

Primjer 2.7Zadane su relacije

r1(A  B  C)        r2(A  B  C)     r3(C   D)

========        ========      =======

     2   2   1              2   2   1            1    1

     3   ?   1               1   ?   1            ?    2

Izračunati:  r1 ∪ r2 ,   r1 ∩ r2 ,   Π BC(r2) , σ A≤ B (r1) ,  σ N A≤  B (r1),  r2 ∞ r3 .

Rješenjer1 ∪ r2 (A  B  C)         r1 ∩ r2 (A  B  C)=============        =============               2   2   1                       2   2   1               3   ?   1                    1   ?   1

Π BC(r2) (B   C)        σ A ≤  B (r1)(A   B   C)===========         ===============                2   1                           2    2    1                ?   1

67

Page 72: Mirko Malekovic - Teorija Baza Podataka Skripta

σ N A ≤  B (r1)(A   B   C)               r2 ∞ r3 (A  B  C  D) ================               ===============                      3    ?    1                             2   2   1   1                                                                   1   ?  1   1

Uređenje   redova   relacije   SURBP   (sustav   za   upravljanje   relacijskom   bazom   podataka)   ostvaruje koristeći:

Simbolička jednakost:     X = X

Simboličko uređenje:    x < ?  ,  gdje je   x ∈ D  .

Tautologije

Formula F je tautologija ako u svakoj svojoj interpretaciji ima vrijednost T. Navedeno znači da je σ  F(r) = r   za bilo koju relaciju  r   na koju je F primjenjivo. Prema tome, nema smisla računati selekciju po formuli koja je tautologija.Glede tautologija, Codd predlaže:  (a) Korisničku eliminacija tautologija, tj.  korisnik ne treba koristiti tautologije u upitima (posao za ‘nenaivnog’ korisnika)(b) Sistemska eliminacija tautologija, tj. SURBP  eliminira upite koji sadrže   tautologije.Zbog semi­odlučivost  logike I  reda glede tautologija,  poželjno rješenje (b) nije moguće kao jedino rješenje. Zapravo, praktično preostaje kao najbolje rješenje kombinacija  (a)  i  (b).

Kod   korisničke   eliminacije   tautologija,   korisnik   treba   voditi   računa   o   činjenici   danoj   u   sljedećoj propoziciji. 

PropozicijaPostoji formula koja je tautologija u dvovalentnoj logici, a nije tautologija u trovalentnoj logici.

dokaz

F = P ∨ ⌝P

Poznato je da je F tautologija u dvovalentnoj logici. Da F nije tautologija u trovalentnoj logici slijedi iz činjenice da u interpretaciji I: P = ? vrijedi

F(I) = ? ∨ ⌝? = ? ∨ ? = ?.

Dakle, zaboravimo na navike iz svijeta dvovalentne logike kada smo u svijetu trovalentne logike. Treba priznati da to i nije baš jednostavno kako se može učiniti.

68

Page 73: Mirko Malekovic - Teorija Baza Podataka Skripta

Upravo   zbog   kazanog,   neki   autori   (C.   J.   Date)     smatraju   primjenu   viševalentnih   logika   (   >   2) zbunjujućom za krajnje korisnike. Zato, da bi sačuvali  ‘jednostavnost’ relacijskog modela,  predlažu ostanak   u   okviru   dvovalentne   logike   uz   primjenu   odgovarajućih   aplikacijsko­programskih   zahvata (difoltna vrijednost) za tretiranje parcijalnih relacijskih baza podataka.

E. F. Codd  zastupa upravo suprotnu poziciju: predlaže izgradnju SURBP sa ugrađenom 4­valentnom logikom. Racionala je da neće baš  ‘naivni’ korisnici koristiti sve sofisticirane mogućnosti relacijske tehnologije. Uostalom, puno toga se može enkapsulirati, zar ne ? (dobra ideja objektne orijentacije).

69

Page 74: Mirko Malekovic - Teorija Baza Podataka Skripta

2.4. TIPOVI LOGIČKIH POSLJEDICA

U slučaju konvencionalnih (potpunih) relacijskih baza podataka (nema pojavljivanja znaka ?) definirali smo:

• F   vrijedi u   r   ako u   r   vrijedi svaka zavisnost iz   F. Kažemo da je u navedenom slučaju  r  model za F.U definiciji smo koristili svojstvo aditivnosti koje je karakterizirano kao što slijedi.

• Aditivnost:   Ako  F  vrijedi u  r   i   G  vrijedi u   r , onda i  F ∪ G   vrijedi u   r

• Strogo vrijediZavisnost  f  strogo vrijedi u  parcijalnoj relaciji r  ako   f  vrijedi u svakom upotpunjenju relacije  r, tj. ako  f  vrijedi u svakom  r*.

• Slabo vrijediZavisnost  f  slabo vrijedi u parcijalnoj relaciji r  ako   f  vrijedi u nekom  upotpunjenju relacije  r  i  f ne vrijedi u nekom drugom upotpunjenju relacije  r , tj.  ako  posoje upotpunjenja  r*1  i  r*2  takva da f vrijedi u  r*1  i  f ne vrijedi u  r*2.

• Strogo ne vrijediZavisnost   f   strogo ne vrijedi u  parcijalnoj relaciji r   ako     f   ne vrijedi niti u jednom upotpunjenju relacije  r, tj. , ako  f  ne vrijedi niti u jednom  r*.

Napomena: Reći ''nije istina da srogo vrijedi'' i ''strogo ne vrijedi'' nije ista stvar.

Sada prelazimo na razmatranje tri tipa logičke posljedice. Pretpostavljamo da jeF: f1, f2,.., fk ⊆  FZ(R);  f ∈ FZ(R).

• LP1:f1, f2,.., fk ö f    (uobičajeno ''preko potpunih relacija'')

• LP2:f1, f2,.., fk östr f   Za svaku relaciju parcijalnu relaciju r:ako f1 strogo vrijedi u r, f2 strogo vrijedi u r,.., fk strogo vrijedi u r , onda  f  strogo vrijedi u r.

• LP3:f1, f2,.., fk ösl f   Za svaku relaciju r:ako f1 slabo vrijedi u r, f2 slabo vrijedi u r,.., fk slabo vrijedi u r , onda  f  slabo vrijedi u r.

70

Page 75: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija(odnos tipova logičkih posljedica)(A) LP1 ⇔ LP2 (B) Ne vrijedi ekvivalencija  LP1 ⇔ LP3

(A) nam kaže da su rezoniranja temeljem LP1 i LP2 ekvivalentna, a (B) kaže da to ne vrijedi za logičke posljedice LP1 i LP3. Iz (A) i (B) također slijedi da rezoniranja temeljem LP2 i LP3 nisu ekvivalentna.

Da ne vrijedi ekvivalencija LP1 ⇔ LP3, pokazuje nam sljedeći primjer.

Primjer 2.8R = ABC,  F:  A → B ,  B → C .Poznato je da u svijetu LP1 vrijedi F ö A → C.Međutim, u svijetu LP3 imamo F sl A → C , kao što pokazuje sljedeći primjer.Neka je zadana parcijalna relacija                                         r(A   B   C)                                        ========                                                 1   ?     1                                            1   ?     2Lako provjerimo da  A → B  slabo vrijedi u   r , B → C  slabo vrijedi u   r , a  A → C  ne vrijedi slabo u r .

ProblemDa li vrijedi aditivnost u slučaju slabo vrijedi ?

RješenjeKažemo da F  slabo vrijedi u  r  ako  F  vrijedi u nekom upotpunjenju od  r  i  F  ne vrijedi u nekom upotpunjenju  od  r . Iz prošlog primjera 6.6 imamo da iako A → B  slabo vrijedi u   r , B → C  slabo vrijedi u   r, nije istina da F: A → B, B → C  slabo vrijedi u  r.

Zaključimo u svijetu LP3 ne vrijedi aditivnost. Dakle, potreban je oprez prilokom prelaska iz jednog svijeta (konteksta) u drugi svijet (kontekst), što predstavlja temeljni princip rezoniranja o znanju.

71

Page 76: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1.  Napišite nekoliko upotpunjenja parcijalne relacije

r( A  B  C)========    a  b   ?    b  ?   c

2.  Neka su zadane relacije

r( A  B  C )    s( B  C  D )========    ========   1   2   2           2   ?  2   2   2   ?           2   2  3

i formula F: (A  B) ∨ (C ≠  D).Izračunajte temeljem (J2) sljedeći relacijske izraze:(a)  r1 = σ  F(Π ACD(r ∞ s)    (b)  r2 = σ  FN(r1)   

3.  Neka je r kao u zadatku 1. Ispitajte je li(a)  A → B  strogo vrijedi u r(b)  A → B   slabo vrijedi u r(c)  A → B  strogo ne vrijedi u r

4.  Napišite relaciju r(A B C) u kojoj B → C slabo vrijedi i u kojoj nije istina daB → C strogo vrijedi.

5.  Napišite relaciju r(A B C) u kojoj B → C slabo vrijedi i u kojoj B → C strogo ne vrijedi.

6.  Predložite postupak za rješavanje I­problema u svijetu LP2. 

72

Page 77: Mirko Malekovic - Teorija Baza Podataka Skripta

4. TEMPORALNE BAZE PODATAKA

4.1. UVOD

Baza podataka sadrži podatke o organizaciji i njenim aktivnostima. Ona je osnova za razne aplikacije od interesa za danu organizaciju. Konvencionalne baze podataka oblikovane su tako da sadrže najnovije podatke,   tj.   tekuće   podatke.   Ažuriranjem   baze   podataka   ‘stare’   vrijednosti   se   eliminiraju   iz   baze podataka.   Prema   tome,   baza   podataka   je   model   tekućeg   stanja   aplikacijske   domene   (snapshot   of reality). Temporalne baze podataka  omogućuju reprezentaciju povijesti objekata.Temporalni relacijski model sastoji se od:•   Temporalnih relacija•   Temporalne relacijske algebre•   Temporalnih uvjeta integriteta

4.2. TEMPORALNE RELACIJE

U ovom odjeljku razmatramo intervalno proširenje relacijskog modela, tj. opisujemo intervalne relacije.

• Intervalne relacije

Primjer 4.1Zadana je relacija

     plaća(Radnik#   Iznos      Vrijeme)     ========================                R1            100 Kn    [d2, d6>                R1            100 Kn    [d9, d12>                R1            120 Kn    [d15, ♣>                 R2            130 Kn    [d9, d12>

SemantikaRadnik  R1  imao je plaću  100 Kn  u vremenskom razdoblju od  d2  do  d6;U razdoblju od  d9  do  d12  njegova plaća je bila isto  100 Kn;  U razdoblju od  d15  do   ♣ (zadnje registrirano vrijeme), plaća od  R1  je bila  120 Kn . Plaća od  R1  je nepoznata (ili nije definirana) u intervalu  [d6, d9>  .

• Intervali

Jednodimenzionalni prostor,   ∆  = {d1, d2,.., dn},  je neprazan konačan skup, koji je potpuno uređen s obzirom na relaciju  < . Pretpostavljamo:  d1 <  d2  < .. <  dn , i   di  su atomski objekti ,  ∀i = 1, 2, .., n  .

73

Page 78: Mirko Malekovic - Teorija Baza Podataka Skripta

Uvodimo skup ∆ * = {d1, d2,.., dn, ♣} ,  gdje je   di <  ♣   za svaki  di .Definiramo sljedeće funkcije:Red : ∆ * → {1, 2, .., n, n+1} ,  Red(di) = i  ,  Red(♣) = n+1 ; Ired  je inverzna funk od  Red ;   Sljed(di) = di+1 ;   Pret(di+1) = di

Neka su di, dj ∈ ∆ * ,  di < dj  . [di, dj> = {dk ∈ ∆    di ≤  dk < dj }   je interval (poluotv.) nad  ∆  .I(∆ )   je skup svih intervala nad  ∆ .

Propozicija(konačnost skupa intervala)I(∆ )  je konačan skup .dokazKonačnost I(∆ ) slijedi iz konačnosti ∆  .

• Jednakost intervala     I1, I2 ∈ I(∆ ),  I1 = [a, b >     I2 = [c, d >       I1 = I2   ako   a = c   i   b = d  .

• Višedimenzionalni intervali

Neka su  ∆ 1, ∆ 2,.., ∆ n  jednodimenzionalni prostori, teI1 ∈ ∆ 1 ,  I2 ∈ ∆ 2 , .., In ∈ ∆ n.I1 ×  I2 ×  .. ×  In = {(x1, x2, .., xn)   xk ∈ Ik } je  n­dim interval nad T = ∆ 1 ×  ∆ 2 ×  .. ×  ∆ n ;  I(T)   je skup svih intervala nad  T .

Primjer 4.2∆ 1 = {0, 1} ,  ∆ 2 = {4} .Definiramo   ♣(∆ 1) = 2     i     ♣(∆ 2) = 5    .I(∆ 1) = {[0, 1> , [0, 2> , [1, 2>} , I(∆ 2) = {[4, 5>},  I(T) = I(∆ 1 ×  ∆ 2) = {[0, 1> ×  [4, 5>, [0, 2> × [4, 5>,  [1, 2> ×  [4, 5>}

Ako upotrijebimo identifikaciju: di = [di, di+1>   za  i = 1, 2, .., n­1 ; dn = [dn, ♣>, dobivamo  ∆  ⊆  I(∆ ) .

• R = A1,.., An   je intervalna relacijska shema ako je      Dom(Ai) = I(∆ i)  ili  Dom(Ai) = ∆ i , ∀i .

• Ako je  r  relacija nad  R , onda kažemo da je  r  intervalna relacija .     Kod intervalne relacije, vrijednosti atributa su atomne vrijednosti ili intervali.     Intervalna relacija je poopćenje ‘obične’ relacije (obična relacija sadrži samo atomske vrijednosti).

74

Page 79: Mirko Malekovic - Teorija Baza Podataka Skripta

4.3. RELACIJSKI OPERATORI ZA TEMPORALNE RELACIJE

Opratori  ∪ , ∩ , − , Π  , ⊗, kao što su definirani za ‘obične’ relacije, imaju nepoželjna svojstva ukoliko se primjene na intervalne relacije. To ćemo vidjeti iz sljedećeg primjera.

Primjer 4.3Neka su zadane relacije

  r1(Radnik#    Plaća     Vrijeme)  ========================           R1         110 Kn    [d2, d5>

r2(Radnik#     Plaća      Vrijeme)========================        R1            110 Kn     [d5, d10>

Tada je

   r1 ∪ r2 (Radnik#     Plaća      Vrijeme)   ===========================                   R1           110 Kn     [d2, d5>                   R1           110 Kn     [d5, d10>

Kompaktnija reprezentacija informacije iz   r1  ∪  r2   je u obliku relacije   r1  ∪i   r2, gdje smo izvršili uniju intervala [d2, d5 > i [d5, d10 > . r1 ∪i  r2 je intervalna unija relacija r1 i r2 .Dobivamo

    r1  ∪i  r2 (Radnik#      Plaća    Vrijeme)     ===========================                     R1             110 Kn   [d2, d10>  

• Zatvaranje (fold)    Zi

75

Page 80: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 4.4Neka imamo relacijur (   A        B            C      )===================   [1, 5>  [3, 6>    [2, 12>   [1, 5>  [1, 2>    [2, 12>   [3, 4>  [1, 9>    [2, 12>   [1, 5>  [5, 11>  [2, 12>   [3, 4>  [7, 12>  [2, 12>

Tada je zatvaranje relacije  r  po atributu  B  dano relacijom    Zi[B](r)(  A       B         C     )     ====================              [1, 5>  [1, 2>  [2, 12>              [1, 5>  [3, 11> [2, 12>              [3, 4>  [1, 12> [2, 12>

Zi[B](r) je dobiveno sljedećim postupkom.Postupak računanja   Zi[B](r) :1.   Naći grupe svih slogova iz  r  koji se  podudaraju na  AC  i čije unije  intervala iz korespondentnog 

skupa  Π[B](r) daju interval.2.   Za svaku grupu {t1,.., tk} staviti slog        t1[A] ,  t1[B] ∪ .. ∪ tk[B],  t1[C]      u   Zi[B](r) .

Formalizacija relacijskih operatora zahtijeva definiranje predikata nad intervalima .

• Neka su zadani intervali  I1 = [a, b > ,  I2 = [c, d > .     Definirat ćemo  13  predikata kao što slijedi.

     (1)  I1  Prije  I2   ako  b < c     (2)  I2  Dolazi  I2   ako  b = c     (3)  I1  Lijevo­preklapa  I2   ako  a < c  < b < d     (4)  I1  Lijevo­pokriva  I2   ako   a < c,  b = d     (5)  I1  Pokriva  I2   ako  a < c, d < b     (6)  I1 Desno­pokriven  I2   ako  a = c, b < d     (7)  I1 = I2   ako  a = c, b = d     (8)  I1  Desno­pokriva I2  ako  a = c, d < b     (9)  I1  Pokriven  I2  ako  c <  a, b < d     (10)  I1  Lijevo­pokriven  I2  ako  c < a, b = d     (11)  I1  Desno­preklapa  I2  ako  c < a, d < b     (12)  I1  Odlazi  I2  ako  b = d     (13)  I1  Poslije  I2  ako  c < a

76

Page 81: Mirko Malekovic - Teorija Baza Podataka Skripta

Definiramo dalje,   I1  Ujedinjuje  I2  ako  (2) ∨ (3) ∨.. ∨ (12) .

Propozicija (ujedinjenje rezultira intervalom)I1  ∪  I2  je interval ako   I1  Ujedinjuje  I2 .

Propozicija (računanje unije)Neka je I1, I2 ∈ I(∆ ),  I1 = [a, b >     I2 = [c, d >.Tada je  I1 ∪ I2 = [e, f > , gdje je e = Min {a, c},  f = Max {b, d}.

Dokazi navedenih propozicija su jednostavni i ostaju kao zadaci za samostalni rad. 

• Formalizacija  zatvaranja    ZiNeka je  r(A1,.., Ak, B)   (intervalna) relacija  . Zatvaranje od  r  po atributu  B  definiramo na sljedeći način:Zi[B](r) = r1  :(1)  SH(r1) = (A1,.., Ak, B) , gdje je  Dom(B) =  I(∆ k+1)(2)  Slogovi iz  r1  definirani su algoritmom:

     begin         r1 :=  r         while   postoje različiti slogovi  t1, t2 ∈ r1  takvi da            (∀Aj) (t1(Aj) = t2(Aj))  i                          (t1[B] Ujedinjuje t2[B]   do                  r1 := (r1 − {t1, t2})  ∪  {[t1[A1 .. Ak], t1[B]  ∪  t2[B]]}      end

• Zatvaranje, prvo po B, a zatim po A, definiramo jednakošću     Zi[A, B](r) =  Zi[A](Zi[B](r))

Propozicija(zatvaranje ovisi o poretku)Zi[A, B] ≠  Zi[A, B]

77

Page 82: Mirko Malekovic - Teorija Baza Podataka Skripta

DokazNeka je zadana relacija                   r(  A          B   )                    ============                     [1, 3>   [1, 5>                     [3, 7>   [1, 5>                     [1, 3>   [5, 7>                     [1, 3>   [7, 10>                     [5, 9>   [3, 7>                     [8, 10> [3, 7>

Tada je

Zi[A, B](r)(   A            B )                 Zi[B, A](r)(   A            B )=================                    ==================                   [1, 3>    [1, 10>                                [1, 7>    [1, 5>                              [3, 7>    [1, 5>                                  [1, 3>    [5, 10>                    [5, 10>  [3, 7>                                  [5, 10>  [3, 7>

Vidimo da je   Zi[A, B](r) ≠  Zi[B, A](r) .

• Otvaranje (unfold)   Oi

Primjer 4.5Relacija  r  i njeno otvoranje po atributu  B  dano je sljedećim tablicama

                    r( A         B   )                 Oi[B](r)( A   B )                   ===========               ============                        a     [1, 3>                                   a    1                        a     [5, 6>                                   a    2                                                                           a    5

Primijenili smo sljedeće pravilo:Svaki slog  [x, y] ∈ r   rezultira skupom slogova  {[x, y1]} ⊆  Oi[B](r) , gdje je   y1 ∈ y  .

Slijedi formalizacija otvaranja.

• Formalizacija  Oi

Neka je zadana relacija  r(A1,.., Ak, B). Otvaranje relacije  r  po atributu  B  jerelacija  Oi[B](r)  koja ima sljedeća svojstva:(1)   SH(Oi[B](r)) =  (A1,, Ak, B)  , gdje je   Dom(B) = ∆ k+1,(2)   [x1,.., xk, b] ∈ Oi[B](r)   ako  [x1,.., xk, X] ∈ r   i   b ∈ X

78

Page 83: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija (Oi, Zi)(1)      Oi[B](Zi[B](r)) = Oi[B](r)(2)      Zi[B](Oi[B](r)) = Zi[B](r)

Propozicija(Oi, Zi)  nam kaže:(1)  Zatvaranje relacije r, a zatim otvaranje dobivene relacije daje isti rezultat kao otvaranje relacije r;(2)  Otvaranje relacije r, a zatim zatvaranje dobivene relacije daje isti rezultat kao zatvaranje relacije r .

• Otvaranje, prvo po B, a zatim po A, dano je sa     Oi[A, B](r)  =  Oi[A](Oi[B](r))

Motivacija za uvoðenje operatora    ∪ i ,   −i

U ovom odjeljku motiviramo uvođenje operatora intervalne unije i intervalne razlike.

 Primjer 4.6Ako su zadane relacije,

                  r1(Radnik#    Plaća     Vrijeme)                 ========================                          R1         110 Kn    [d2, d5>

                  r2(Radnik#    Plaća     Vrijeme)                 ========================                          R1         110 Kn    [d3, d6>

tada je

       r1 ∪ r2 ( Radnik#     Plaća      Vrijeme)                 ========================                          R1         110 Kn    [d2, d5>                          R1         110 Kn    [d3, d6>

Iz  r1 ∪  r2  vidimo da je plaća radnika  R1, u vrijeme  d3  i  d4  zapisana dvaputa (redundancija) .

Bolju reprezentaciju dobijemo relacijomZi[Vrijeme] (Oi[Vrijeme](r1)  ∪  Oi[Vrijeme](r2)).

79

Page 84: Mirko Malekovic - Teorija Baza Podataka Skripta

ZadatakIzračunajte relaciju   Zi[Vrijeme] (Oi[Vrijeme](r1)  ∪  Oi[Vrijeme](r2)).

Primjer 4.7Neka je zadana relacija

                   r1(Radnik#    Plaća     Vrijeme)                 ========================                          R1         110 Kn    [d2, d8>

Eliminirajmo iz   r1   podatak da je plaća radnika  R1  bila  110 Kn  u razdoblju  [d4, d7> .

Rješenje1:  Definirajmo prvo relaciju

                  r2(Radnik#    Plaća      Vrijeme)                 ========================                          R1         110 Kn    [d4, d7>

Sada računamo

r1 − r2 (Radnik#   Plaća      Vrijeme)==========================               R1         110 Kn    [d2, d8>        Rješenje1 nije korektno jer smo dobili polaznu relaciju r1. Dakle, uobičajenom razlikom relacija nismo ostvarili željeni cilj. Korektan rezultat dan je relacijom u rješenju2.                 Rješenje2:r3 = Zi[Vrijeme] (Oi[Vrijeme](r1)  − Oi[Vrijeme](r2))

                 r3 ( Radnik#     Plaća     Vrijeme)                 ========================                          R1         110 Kn    [d2, d4>                          R1         110 Kn    [d7, d8>

• Formalizacija   ∪i  ,  −i

Za relacije r1(R) ,   r2(R), X ∈ R, gdje je atribut X  s intervalnim vrijednostima definiramo intervalnu uniju i razliku kao što slijedi:r1  ∪i  r2   =   Zi[X]( Oi[X](r1)  ∪  Oi[X](r2) ) r1  −i  r2   =   Zi[X]( Oi[X](r1)  −  Oi[X](r2) )

80

Page 85: Mirko Malekovic - Teorija Baza Podataka Skripta

Dakle, prvo relacije r1 i r2 otvorimo, a zatim izvršimo ‘običnu’ uniju i razliku, te konačno izvršimo zatvaranje dobivenih rezultata.

• Selekcija   σ

σ [ F](r)  =  {t ∈ r   F(t) = T}

Definicija formule   F   uključuje i intervalne operatore (1),.., (13), te operatore koji su definirani na osnovi navedenih operatora.

Primjer 4.8Neka je zadana relacija                 r ( Radnik#     Plaća      Vrijeme)                 ========================                          R1         110 Kn    [d2, d4>                          R1         110 Kn    [d7, d8>                          R1         120 Kn   [d10, ♣>                          R2         140 Kn   [d9, d12>                          i formula F = (Radnik# = R1) ∧ (Vrijeme  Prije  [d8, d12>) Ako primijenimo postupak selekcioniranja  po formuli  F dobit ćemo sljedeći rezultat  

      σ [ F](r) ( Radnik#      Plaća      Vrijeme)      ==========================                        R1          110 Kn   [d2, d4>

Iz dosadašnjih razmatranja jasno je da se implementacija operatora na intervalnim relacijama temelji na implementaciji predikata (1), (2),.., (12), (13) i operatora Zi   i    Oi .  Također, istaknimo da ćemo u poglavlju o poopćenim relacijskim bazama podataka, čiji specijalni slučaj su temporalne baze podataka, karakterizirati i preostale relacijske operatore  ∩, Π  i ∞ .

81

Page 86: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1.  Zadani su ∆ 1 = {0, 1, 2} ,  ∆ 2 = {4, 6} .Definirajte  ♣(∆ 1) =  i ♣(∆ 2) , a zatim napišite  I(∆ 1) , I(∆ 2),  I(T) = I(∆ 1 ×  ∆ 2) .

2.  Neka je ∆  = {0, 1, 2, 3, 4, 5} te neka su zadane relacije

r1 ( A  B       C )           r2 ( A   B      C )============          ============      1   2     [1, 3>                2   2      [2, 4>      1   2     [2, 5>                1   2      [3, 4>

Odredite  Zi[C](r1), Zi[C](r2), Oi[C](r1), Oi[C](r2).

3.  Neka su  ∆  i relacije r1 i r2 kao u zadatku 2.Odredite r1 −i r2, r2 −i r1, r1 ∪i r2 .

4.  Za relaciju  r2 iz zadatka 2. i formulu F: [(A = 1) ∨ (B = 2)] ∧ (C Lijevo preklapa [3, 5>) odredite σ [ F](r2).

82

Page 87: Mirko Malekovic - Teorija Baza Podataka Skripta

5. DEDUKTIVNE BAZE PODATAKA

5.1. UVOD

U ovom uvodnom odjeljku karakteriziramo deduktivnu bazu podataka (DBP) kao proširenje relacijske baze   podataka   deduktivnom   komponentom.   Na   neformalan   način   uvodimo   temeljne   pojmove deduktivnih baza podataka (baza znanja) i njihov prikaz pomoću logičkog jezika Dataloga.

• Deduktivna baza podataka  DBP  sastoji se od tri komponente:

(1)   Eksplicitna (ekstenzijska) baza podataka   EBP(2)   Implicitna (intenzijska) baza podataka   IBP(3)   Uvjeti integriteta (integritetna ograničenja)   UI

Primjer 5.1Neka je zadana deduktivna baza podataka  DBP :

EBP:    r1(A    B)          r2(B    C)             =======          =======                 1     0                 0    0                 2     1                 1    1                                           2    1

IBP:  ∅                           UI:  A → B   za   R1(A, B)                                               B → C   za   R2(B, C)    Ekstenzijska baza podataka EBP sastoji se od dvije relacije  r1  i  r2; intenzijska baza podataka  IBP  je prazna (nema pravila); uvjeti integriteta  UI  sadrže kao ograničenja funkcijske zavisnosti  A → B  i  B → C  nad relacijskim shemama  R1(A, B)  i  R2(B, C), respektivno.   

• Deduktivna baza podataka je uređena trojka   DBP = (EBP, IBP, UI).

Primjer 5.2Proširimo deduktivnu bazu podataka  DBP, iz prošlog primjera, pogledom  v :

EBP:    r1(A    B)          r2(B    C)             =======          =======                 1     0                 0    0                 2     1                 1    1                                           2    1

83

Page 88: Mirko Malekovic - Teorija Baza Podataka Skripta

IBP:  v = r1 ∞ r2

UI:  A → B   za   R1(A, B)       B → C   za   R2(B, C)

Pogled  v  je relacija koja je definirana na temelju  r1  i  r2; zovemo je derivirana ili deducirana relacija. 

84

Page 89: Mirko Malekovic - Teorija Baza Podataka Skripta

5.2. SINTAKSA I SEMANTIKA DEDUKTIVNE BAZE PODATAKA

Prikaz deduktivne baze podataka

DBP ćemo prikazati  pomoću logičkog jezika Dataloga,  koji   je  nastao integracijom relacijskih baza podataka i logičkog programiranja.

Primjer 5.3DBP  iz prošlog primjera reprezentiramo u sljedećem obliku:

EBP:    R1(A, B)        R2(B, C)              r1(1, 0)          r2(0, 0)              r1(2, 1)          r2(1, 1)                                    r2(2, 1)

Pretpostavljamo da su relacijske sheme  R1  i  R2  uređene. Činjenicu da je slog(x1, y1) ∈ r  pišemo u obliku r(x1, y1);   x1 (prva komponenta) je  A­vrijednost, a y1 (druga komponenta) je B­vrijednost. EBP  se sastoji od dvije činjenice za relaciju  r1  i  tri činjenice za relaciju  r2.

IBP:  p    v(x, y, z) ← r1(x, y), r2(y, z)

IBP  se sastoji od pravila  p  pomoću kojeg je definirana relacija  v  nad relacijskom shemom V(A, B, C); v  se dobije spajanjem relacija  r1  i  r2.Čitanje pravila  p  :(Za svaki x, y, z) [slog  (x, y, z)  je u relaciji  v  ako je                            slog  (x, y)  u relaciji  r1  i   slog  (y, z)  je u  relaciji  r2].

Ako je slog  t = (x1, x2,.., xm), onda ćemo umjesto  r(x1, x2,.., xm)  pisati  r(t).Prema tome,   t  ∈  r   pišemo u obliku   r(t); kažemo da je slog (red)   t   u relaciji   r,   odnosno da   r(t) vrijedi.

Drugo čitanje pravila  p : (Za svaki x, y, z) [v(x, y, z) vrijedi ako vrijedi  r1(x, y) i ako vrijedi  r2(y, z)].

 U pravilu, p: v(x, y, z) ← r1(x, y), r2(y, z), definiranu relaciju  v  zovemo glavom pravila, a konjunkciju r1(x, y), r2(y, z)  zovemo tijelom pravila.Općenito, svako pravilo p ima oblik  p:   G ← T , gdje je  G  glava pravila, a  T  tijelo pravila.Precizna karakterizacija pravila bit će dana u poglavlju u kojem ćemo govoriti o Datalogu.Preostaje nam još prikaz funkcijskih zavisnosti iz  UI.UI:   A → B  za  R1(A, B)

85

Page 90: Mirko Malekovic - Teorija Baza Podataka Skripta

Zavisnost  A → B  znači  [ako  r1(x, y)   i  r1(x, z) , onda  y = z ]. Prikaz zavisnosti A → B u obliku pravila poprima sljedeći oblikz(A → B) :  �  ← r1(x, y), r1(x, z), y ≠  z

Čitanje pravila  z(A → B):  nije moguće da bude r1(x, z) i r1(x, z) i y ≠  z .Prema tome, simbol  �   čitamo: nije moguće da bude. Pravilo z   djeluje kao zabrana (filter); Valjanim relacijama nad   R1   smatraju se samo one relacije u kojima vrijedi zavisnost  A → B .

Analogno, funkcijsku zavisnost  B → C  nad  R2  prikazujemo u oblikuz(B → C) :   �  ← r2(x, y), r2(x, z), y ≠  z

Čitanje pravila  z(A → B):  nije moguće da bude r1(x, z) i r1(x, z) i y ≠  z .  

U daljem ćemo usvojiti sljedeće pojednostavljenje: prilikom prikaza deduktivne baze podataka  DBP = (EBP,   IBP,   UI)   pomoću  Dataloga,   ekstenzijsku   bazu  podataka     EBP     predstavljat   ćemo   kao  kod relacijskih   baza   podataka   (pomoću   tablica)   uz   pretpostavku   uređenosti   relacijskih   shema; pojednostavljenje se ogleda u izbjegavanju ponavljanja imena relacije za svaki red relacije. 

Semantika  deduktivne baze podataka

Semantika   (značenje)   deduktivne   baze   podataka   karakterizirana   je   svojim   deklarativnim   dijelom (deklarativna semantika)  i proceduralnim dijelom (proceduralna semantika). Deklarativna semantika kaže što je model DBP­a, a proceduralna semantika govori o postupcima računanja modela DBP­a.

Primjer 5.4Razmotrimo  DBP:  EBP, IBP, UI

EBP:   r1(A  B)    r2(B  C)               UI:   A → B  za  R1(A, B            ======   ======                        B → C  za  R2(B, C)                1   0          0   0                2   1          1   1                                 2   1  IBP:    V(A, B, C)   p:      v(x, y, z) ← r1(x, y), r2(y, z)

Model  deduktivne baze podataka je takva interpretacija deduktivne baze podataka u kojoj vrijede sve činjenice iz  EBP, sva pravila iz IBP, i sva ograničenja iz UI.Lako se može provjeriti da je sljedeća interpretacija  M  model za našu  DBP.

86

Page 91: Mirko Malekovic - Teorija Baza Podataka Skripta

M:   r1(A  B)    r2(B  C)    v(A  B  C)        ======    =======   ========             1   0           0   0         1   0  0             2   1           1   1         2   1  1                               2   1

 Provjerite da je interpretacija  M1  također model zadane DBP.        M1: r1(A  B)    r2(B  C)     v(A  B  C)        ======    =======    ========             1   0            0   0          1   0  0             2   1            1   1          2   1  1                                2   1          0   1  2

M1  je dobiveno iz  M  proširenjem relacije  v. Nije teško zaključiti da je svaka interpretacija  Mi,  koja se dobije iz  M  proširenjem relacije  v , model za  DBP.  

Prošli primjer ukazuje da deduktivna baza podataka može imati više modela.

ZadatakPostoji li deduktivna baza podataka koja nema model?

Rekli smo da proceduralna semantika karakterizira postupak računanja (dedukcije) modela.Svaki model deduktivne baze podataka   DBP = (EBP, IBP, UI)   sadrži valjanu   EBP, gdje za   EBP kažemo da je valjana ako u njoj vrijede sva ograničenja iz  UI. Postupci računanja modela reduciraju se na izračunavanje (valjane)  IBP. Razlikujemo tri postupka računanja:BU­postupak (bottom up), TD­postupak (top down) i   H­postupak (kombinacija BU i TD). U daljem ćemo isključivo razmatrati temeljne postupke  BU  i  TD.

Primjer 5.5Neka je zadana deduktivna baza podataka  DBP = (EBP, IBP, UI)

EBP:   r1(A  B)    r2(B  C)               UI:   A → B  za  R1(A, B            ======   ======                        B → C  za  R2(B, C)                1   0          0   0                2   1          1   1                                 2   1  IBP:    V(A, B, C)   p:      v(x, y, z) ← r1(x, y), r2(y, z)

Na primjeru ove  DBP  pokazat ćemo postupke  BU  i  TD.

87

Page 92: Mirko Malekovic - Teorija Baza Podataka Skripta

BU­postupakKrećemo od  EBP (činjenice) na koju primjenjujemo pravilo  p  iz  IBP, te tako dobivamo relaciju  v , koja je definirana pravilom  p.Računanje teče ovako: 

1. r1(1, 0)                   zadano   (EBP)2. r2(0, 0)                   zadano   (EBP)3. v(1, 0, 0)                p ,  1. ,  2.Sustav traži nova rješenja:4.   r1(2, 1)                  zadano   (EBP)5.   r2(1, 1)                  zadano   (EBP)6.    v(2, 1, 1)              p ,  4. ,  5.Sustav traži nova rješenja:nema novih rješenja!Prema tome,

 M:  r1, r2, v , gdje je          v(A  B  C)                                            ========                                              1   0   0                                              2   1   1

TD­postupakKrećemo od glave pravila  p , tj., rješavamo  v(x, y, z). Rješavanje  v(x, y, z)  reducira se na rješavanje relacija  r1  i  r2  (EBP)  iz tijela pravila  p.    

1. v(x, y, z)  ?2. r1(x, y), r2(y, z)        p, 13. r1(1, 0)                     EBP4. r2(0, z)  ?5. r2(0, 0)        EBP6. v(1, 0, 0)      p, 3, 57. r2(0, z)  ?  (ponovno rješavanje uvjeta)8. nema rješenja     EBP9. r1(x, y)  ?    (ponovno rješavanje uvjeta)10. r1(2, 1)     EBP11. r2(1, z)  ?12. r2(1, 1)    EBP 13. v(2, 1, 1)    p, 10, 1214. r2(1, z)  ?    (ponovno rješavanje uvjeta)15. nema rješenja    EBP16. r1(x, y)  ?    (ponovno rješavanje uvjeta)17. nema rješenja    EBP

88

Page 93: Mirko Malekovic - Teorija Baza Podataka Skripta

Prema tome,M:  r1, r2, v , gdje je          v(A  B  C)                                            ========                                              1   0   0                                              2   1   1          

Postavljanje upita

Primjer 5.6Neka je zadana  DBP  iz prethodnog primjera. Riješimo sljedeći upit.

U:  Naći sve slogove iz  v  oblika  (1, y, z) . Odgovor na upit  U  označit ćemo sa  o(U).

Rješenje1 :1.   Odrediti relaciju  v ∈ M 

2.   o(U):    σ [ A = 1](v) (A  B  C)                    ===============                                         1   0   0

Rješenje2 :Sustav traži sve slogove  (1, y, z)  takve da vrijedi  v(1, y, z).

1. v(1, y, z)  ?2. r1(1, y), r2(y, z)     p, 13. r1(1, y)  ?4. r1(1, 0)        EBP5. r2(0, z)  ?6. r2(0, 0)        EBP7. v(1, 0, 0)      p, 4, 68. r2(o, z)  ?     (traži se novo rješenje, tj. rješenje različito od rješenja  6.)9. nema rješenje    EBP10. r1(1, y)  ?    (traži se novo rješenje, tj. rješenje različito od rješenja  4.)11. nema rješenja    EBP

Prema tome,o(U):           v (A  B  C)                    =========                         1   0   0               

89

Page 94: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 5.7 (rekurzivna pravila)Razmotrimo relaciju r(A  B)                                    ======     a   b                                      b   c                                       c   d                             Tranzitivno zatvorenje relacije  r  je relacija  tz(r) koja ima sljedeća svojstva:(1)  r ⊆  tz(r);(2)  tz(r)  je tranzitivna relacija, tj. ako  tz(r)(x, y)  i  tz(r)(y, z), onda je i  tz(r)(x, z);(3)  tz(r)  je najmanja relacija sa svojstvima  (1) i (2) .

Karakterizirajmo deduktivnu bazu podataka  DBP :  r,  tz(r) .Rješenje:  DBP = (EBP, IBP, UI), gdje je                  EBP:   r              IBP:    p1       tz(r)(x, y) ← r(x, y)                         p2       tz(r)(x, y) ← r(x, z), tz(r)(z, y)              UI:  ∅ .

Pravilo p2  je rekurzivno pravilo (tz(r)  je rekurzivna relacija); u pravilu  p2  tz(r)  se pojavljuje u glavi i tijelu pravila.  

ZadatakIzračunajte relaciju  tz(r)  iz prošlog primjera i napišite barem jedan model za danu  DBP.     Na kraju ovog odjeljka istaknimo da se  BU­postupak implementira pomoću relacijskih operatora. Zbog rekurzivnih pravila potreban je kontrolni konstrukt (koristi se fiksna točka). Detalji implementacije bit će dani u sljedećim poglavljima.TD­postupak   se   implementira   pomoću   rezolucijske   procedure   (Prolog­sustavi);   navedena implementacija neće biti obuhvaćena u ovoj skripti.

90

Page 95: Mirko Malekovic - Teorija Baza Podataka Skripta

5.3. DATALOG

U ovom odjeljku opisujemo logički jezik  Datalog, koji ćemo koristiti za specifikaciju deduktivne baze podataka. Neformalan uvod u Datalog vidjeli smo u poglavlju 2.  

• Sintaksa

 Abeceda se sastoji od:1)   Konstanti: a, b, c,..2)   Varijabli:  x, y, z,..3)    Relacija (predikata):  r, r1, r2,..            (obične relacije)4)    (Ugrađene) relacije uspoređivanja:  =, <, ≤ , >, ≥ ,..5)    Logički veznici:  ∨, ∧, ←6)    Zagrade:  (, [, {, ), ], }

Skupovi  1) ­ 6)  su konačni.

PravilaTerm je konstanta ili varijabla.Atom je izraz oblika  r(t1, t2, .., tn), gdje je  r  n­mjesna relacija i  t1, t2,.., tn  su termi.Izraz   (t1, t2,.., tn)   je slog.Temeljni atom je atom bez varijabli.

Primjer 5.8a, a1, y, y1, z    su termi;(a, b, x)   je slog;r(a, b, x)   je atom;   r(a, b, c)   je temeljni atom.   

Ako je  t = (t1, t2,.., tn), onda  r(t1, t2,.., tn)  pišemo kraće u obliku  r(t) .

Napomena:  U praksi koristimo simbole (imena) koji prirodno odgovaraju opisu aplikacijske domene.

Koristeći atome gradimo pravila:Pravilo   je izraz oblika   r(u)  ←  r1(u1), r2(u2),.., rn(un), gdje je   n  ≥  0,   r   je obična relacija,   ri   su relacije, a  u, u1, u2,.., un  su slogovi odgovarajuće arnosti.Relacija  r  je glava pravila (zaključak), a  r1(u1) ∧ r2(u2) ∧.. ∧ rn(un)  je tijelo pravila (pretpostavke).

Pravilor(u) ← r1(u1), r2(u2),.., rn(un)   je Hornova klauzula.

91

Page 96: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 5.9U ovom primjeru definirat ćemo relacije  roditelj  i  predak.roditelj(x, y)  :   roditelj od  x  je  y .predak(x, y)  :  predak od  x  je  y .

p1       roditelj(Marko, Ivana) ←p2       predak(x, y) ← roditelj(x, y)p3       predak(x, y) ← roditelj(x, z), predak(z, y)

Pravilo  p1 (s praznim tijelom)  zovemo činjenicom. Relacija predak karakterizirana je pravilima  p2  i p3.

Čitanje pravilap1:  roditelj(Marko Ivana);p2 :   ∀x, y [predak(x, y) ako roditelj(x, y)]p3 :   (A)  ∀x, y, z [predak(x, y) ako roditelj(x, z) i predak(z, y)          ili• ∀x, y [predak(x, y) ako ∃z (roditelj(x, z) i predak(z, y)]

Pravilo  p3  ukazuje na dvije varijante čitanja pravila:• sve varijable su univerzalno kvantificirane;• varijable iz glave su univerzalno kvantificirane, a varijable koje nisu u glavi kvantificirane su

egzistencijalno.   

ZadatakPokažite ekvivalentnost čitanja  (A)  i  (B) . 

• Rekurzivno praviloPravilo   p   je rekurzivno pravilo ako je  oblika   p:    r ← . .  r  . .    Dakle, glava od  p  pojavljuje se i u tijelu od  p . 

• Datalog program je konačan skup pravila;Deduktivnu bazu podataka  DBP:  EBP, IBP, UI  reprezentiramo pomoću Datalog programa.Postoji mogućnost predstavljanja  DBP  u obliku:EBP :   konvencionalno (relacijska baza podataka);  IBP ,  UI  :   Datalog pravila.Relacije   iz    EBP     zovemo   temeljnim   (baznim)   relacijama,   a   relacije   definirane  u     IBP     zovemo deriviranim (deduciranim) relacijama.

92

Page 97: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 5.10Razmotrimo deduktivnu bazu podataka  DBP = (EBP, IBP, ∅), gdje je

  EBP:    roditelj(Ivana, Marko) ←              roditelj(Gorana, Ivana) ←

  IBP:     predak(x, y) ← roditelj(x, y)               DBP  predstavljamo ovako:

EBP:         roditelj(  Di             Ro    )                 ===================                                Ivana       Marko                                Goran      Ivana   

IBP:       predak(x, y) ← roditelj(x, y).   

U daljem, deduktivnu bazu podataka  DBP = (EBP, IBP, ∅)  pišemo u obliku DBP = (EBP, IBP). Slično vrijedi ako je neka druga komponenta od  DBP  prazna.                   Primjer 5.11Neka je zadana deduktivna baza podataka  DBP

   EBP:      r(A  B  C)                ========                     1   0   1                     1   2   0

   IBP:       s(2, 3) ←                 s(x, y) ← r(x, 2, y)         

Ako bi relacija  s     bila definirana   s puno činjenica, onda bismo te činjenice mogli zapisati u obliku temeljne relacije (tablice)  s1  , a  IBP  bi poprimio oblik:          IBP:      s(x, y) ← s1(x, y)                s(x, y) ← r(x, 2, y).   

• Semantika

Interpretacija  I  sastoji se od:(a)   Neprazne domene  D , gdje je  D  skup svih konstanti koje se pojavljuju u  EBP  i  IBP. (b)   Instanci relacija iz  EBP  i  IBP .

93

Page 98: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 5.12Odredimo jednu interepretaciju  I  za  DBP 

    EBP:        roditelj(  Di             Ro    )                    ===================                                 Ivana       Marko                                 Goran      Ivana   

     IBP:         predak(x, y) ← roditelj(x, y)         

I  :        D = {Ivana, Marko, Goran}

            roditelj(  Di             Ro    )            ===================                         Ivana       Marko                         Goran      Ivana                      

             predak(  Po              Pr  )             ==================                          Ivana     Marko

I   nije model za   DBP, jer pravilo iz   IBP   ne vrijedi u   I .  Naime, konkretizacijom pravila iz   IBP, stavljajući  x = Goran ,  y = Ivana , dobivamo 

 p:      predak(Goran, Ivana) ← roditelj(Goran, Ivana) .

Procjena konkretiziranog (temeljnog) pravila   p   daje sljedeći rezultat   F   ←     T , što je jednako   F . Ovdje smo koristili pokrate:  F  za false, te  T  za true. Dalje,  predak(Goran, Ivana) = F, jer red  (Goran, Ivana) nije u relaciji  predak; roditelj(Goran, Ivana) = T, jer red  (Goran, Ivana) je u relaciji  roditelj. 

Primjer 5.13Dajemo nekoliko modela deduktivne baze podataka iz prošlog primjera.

M:      roditelj(  Di                 Ro  )           ====================                         Ivana        Marko                         Goran       Ivana   

           predak(  Po                 Pr  )           ===================                         Ivana        Marko                                                                     Goran       Ivana

94

Page 99: Mirko Malekovic - Teorija Baza Podataka Skripta

     M1:     roditelj(  Di                 Ro  )                 ====================                              Ivana        Marko                              Goran       Ivana   

                  predak(  Po                 Pr  )                  ===================                               Ivana        Marko                                                                           Goran       Ivana                               Goran       Marko M2:       roditelj(  Di                 Ro  )             ====================                            Ivana        Marko                            Goran       Ivana   

               predak(  Po                 Pr  )               ===================                            Ivana        Marko                                                                        Goran       Ivana                            Goran       Marko                            Goran       Goran                            Marko       Marko                      

Neka su zadani modeli  M1 = < r1, r2,.., rk >  i  M2 = < s1, s2,.., sk >  deduktivne baze podataka  DBP.  Tada definiramo:

• M1 ≤   M2  akko  ∀i ∈ {1, 2,.., k}[ri ⊆  si]• M1 = M2  akko  M1 ≤   M2  i  M2  ≤   M1

• Konzistentnost deduktivne baze podatakaNeka je   M(DBP)   skup svih modela deduktivne baze podataka   DBP. Ako je   M(DBP)    ∅, onda kažemo da je  DBP  konzistentna. U protivnome, kažemo da je nekonzistentna, tj., kontradiktorna.

Minimalni modelPretpostavimo da je   DBP   konzistentna i neka je   Mm ∈ M(DBP). Kažemo da je   Mm   minimalan model za  DBP  ako ne postoji model  Mi  u  M(DBP)  takav da vrijedi Mi  ≤   Mm  i  Mi  Mm .

Intendirani (namjeravani) ili kanonski model za   DBP   je   minimalni model   za   DBP. Vidjet ćemo poslije   da  minimalni  model   za    DBP     nije   jedinstven.  Postupkom  tzv.   stratifikacije   odredit  ćemo 'prirodni' minimalni model kao intendirani model.Za sada možemo reći da je minimalni model deduktivne baze podataka  DBP  onaj model kojeg čine relacije iz  EBP  i relacije koje se dobiju temeljem pravila iz  IBP, i ništa više.

95

Page 100: Mirko Malekovic - Teorija Baza Podataka Skripta

4.4. RAČUNANJE PRAVILA

Ovo poglavlje  sadrži   računanje  (implementaciju)  pravila  primjenom relacijskih operatora.  U prvom dijelu opisujemo računanje nerekurzivnih pravila, a u drugom dijelu razmatramo računanje rekurzivnih pravila 

Nerekurzivna pravila

Postupak računanja pokazat ćemo na nizu odgovarajućih primjera.

Primjer 5.14Razmotrimo deduktivnu bazu podataka  DBP

     EBP:      r(A, B)     IBP:       p    s(x, y) ← r(x, z), r(y, z), x ≠  y

Pretpostavljamo da su relacijske sheme uređene, tj., atributi su određeni svojom pozicijom u shemi. Prema tome, zapis  r(2, 4) kaže da je u slogu  < 2, 4 >  ispunjeno  A = 2  i  B = 4. Za računanje su bitne sheme relacija; rezultat će biti odgovarajući relacijski izraz. Izračunajmo pravilo  p , tj. odredimo relaciju  s .

Postupak1:                                       1.   r1 = δ [ X ↵ A, Z ↵ B](r) ;  r2 = δ [ Y ↵ A, Z ↵ B](r)                    2.   s(X, Y) = Π[X,Y]( σ [ X ≠  Y](r1 ∞ r2))

Konkretizacijom (instanciranjem) relacije     r   ,  odnosno relacija   r1    i     r2   dobivamo konkretizaciju (instancu) relacije  s

Postupak2 :          1.   r1(C, D) = σ [ C ↵ A, D ↵ B](r)      2.   r2(A, B, C, D) = σ [ B = D](r ∞ r1);  r3(A, C) = Π[A, C](r2)• s(X, Y) = δ [ X ↵ A, Y ↵ C](r3).   

Primjer 5.15Neka je zadana deduktivna baza podataka  DBP

    EBP:      q(A, B), r(B, C, D), s(C, E)                 IBP:      p1     p(x, y) ← q(a, x), r(x, z, x), s(y, z)             

96

Page 101: Mirko Malekovic - Teorija Baza Podataka Skripta

Izračunajmo relaciju  p pravila  p1.Postupak:1.   r1(A, X) = δ [ X ↵ B](σ [ A = a](q)) 2.   r2(X, Z, X1) = δ [ X ↵ B, Z ↵ C, X1 ↵ D](σ [ B = D](r))3.   r3(Y, Z) = δ [ Y ↵ C, Z ↵ E](s)4.   p(X, Y) = Π[X,Y](r1 ∞ r2 ∞ r3). 

Primjer 5.16Neka je zadana deduktivna baza podataka  DBP

    EBP:     q(A, B), r(C, D, E), s(F, G)      IBP:     p1      p(x, y) ← q(a, x), r(x, z, x), s(y,z)

Izračunajmo relaciju  p  pravila  p1.

Postupak:1.   r1(A, B) = σ [ A = a](q)2.   r2(C, D, E) = σ [ C = E](r)3.   r3(A, B, C, D, E) = σ [ B = C](r1 ∞ r2)4.   r4(A, B, C, D, E, F) = σ [ D = G](r3 ∞ s)5.   r5(B, F) = Π[B, F](r4)6.   p(X, Y) = δ [ X ↵B, Y ↵ F](r5). 

Primjer 5.17Razmotrimo  DBP

    EBP:        r1(A, B), r2(B, C)    IBP:         s(x, y) ← r1(x, z), r2(y, x)

Izračunajmo relaciju   s .

Postupak:1.  r3(A, r1.B, r2.B, C) = σ [ A = C](r1 ⊗ r2 )2.  r4(A, r2.B) = Π[A, r2.B](r3)3.  s(X, Y) = δ [ X ↵ A, Y ↵ r2.B](r4).

Popravljanje (rektifikacija) pravila

Popravljanje pravila je unifikacija shema relacije iz glava pravila koja definiraju danu relaciju.

97

Page 102: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 5.18Neka su zadana pravila:

p1:          p(a, x, y) ← r(x, y)p2:          p(x, y, x) ← r(y, x)

Pravilima  p1 i  p2  definirana je relacija  p. Pretpostavimo da je cilj preformulacija pravila  p1  i  p2 tako da glave u danim pravilima imaju oblik  p(x1, x2, x3) (glave postaju unijski kompatibilne).

Popravljanje  p1:1.  p(x1, x2, x3) ← r(x, y), x1 = a, x2 = x, x3 = y2.  p(x1, x2, x3) ← r(x2, x3), x1 = a 

Popravljanje  p2:3.  p(x1, x2, x3) ← r(y, x), x1 = x, x2 = y, x3 = x• p(x1, x2, x3) ← r(x2, x1), x1 = x3

Računanje relacije  p  iz pravila  p1  svodi se na računanje relacije  p  iz točke 2.; računanje relacije  p iz pravila   p2   reducira se na računanje relacije   p   iz točke   4.  Unija dobivenih rezultata predstavlja relaciju  p  definiranu pravilima  p1  i  p2. 

Primjer 5.19Neka je zadana  DBP  EBP:    r(A, B), s(B, C)  IBP:    p1       p(a, y) ← r(x, y)             p2       p(x, y) ← s(x, z), r(z, y)             p3       q(x, x) ← p(x, b)             p4       q(x, y) ← p(x, z), s(z, y)

Izračunajmo relacije definirane pravilima iz  IBP.

Postupak:1.   Popravljanje pravila  p1:    1.1   p(u, v) ← r(x, y), u = a, v = y    1.2   p(u, v) ← r(x, v), u = a

2.   Popravljanje pravila  p2:      2.1   p(u, v) ← s(x, z), r(z, y), u = x, v = y     2.2   p(u, v) ← s(u, z), r(z, v)

3.   Popravljanje pravila  p3:    3.1    q(u1, v1) ← p(x, b), u1 = x, v1 = x    3.2    q(u1, v1) ← p(u1, b), u1 = v1   

98

Page 103: Mirko Malekovic - Teorija Baza Podataka Skripta

4.   Popravljanje pravila  p4:                     4.1   q(u1, v1) ← p(u1, z), s(z, v1)

5.   Računamo relaciju   p :    5.1    Kako je relacija  p  definirana pravilima  p1  i  p2,             računamo relacije  T(p1), T(p2)  za tijela pravila             p1  i  p2 , respektivno. Tada je  p = T(p1) ∪ T(p2) .

    5.2   Računamo  T(p1):        5.2.1  Polazimo od   r(A, B) ;   p1:    p(u, v) ← r(x, v), u = a        5.2.2   r(X, V) = δ [ X ↵ A, V ↵ B](r) ;   r1( U )                                                                     =====                                                                             a        5.2.3    T(p1)(U, V) = Π[U, V](r1 ∞ r)

    5.3    Računamo  T(p2):         5.3.1  Polazimo od   s(B, C), r(A, B) ;   p2:   p(u, v) ← s(u, z), r(z, v)         5.3.2   s(U, Z) =  δ [ U ↵ B, Z ↵ C](s) ;   r(Z, V) =  δ [ Z ↵ A, V ↵ B](r)         5.3.3.  T(p2)(U, V) = Π[U, V](s ∞ r)

    5.4    p(U, V) = T(p1)(U, V) ∪ T(p2)(U, V)

6.   Računamo relaciju   q , gdje je  q(U1, V1) = T(p3)(U1, V1) ∪ T(p4)(U1, V1):  6.1  Računamo  T(p3):  6.1.1   Polazimo od  p3:    q(u1, v1) ← p(u1, b), u1 = v1 ;  p(U, V)    6.1.2   r1(U, V) = σ [ V = b](p)  6.1.3   r2(U) = Π[U](r1) ;      r3(V1) = δ [ V1 ↵ U](r2)  6.1.4   r4(U, V1) = σ [ U = V1](r2 ∞ r3)  6.1.5   T(p3)(U1, V1) = δ [ U1 ↵ U](r4)             

  6.2   Računamo  T(p4):  6.2.1  Polazimo od  p4:      q(u1, v1) ← p(u1, z), s(z, v1) ;   p(U, V),  s(B, C)  6.2.2   r1(U, V, B, C) = σ [ V = B](p ∞ s)  6.2.3   r2(U, C) = Π[U, C](r1)

2. T(p4)(U1, V1) = δ [ U1 ↵ U, V1 ↵ C](r2).  6.3 .  Relacija  q  je dana izrazom:         q(U1, V1) = T(p3)(U1, V1) ∪ T(p4)(U1, V1).   

 

99

Page 104: Mirko Malekovic - Teorija Baza Podataka Skripta

Rekurzivna pravila

U ovom dijelu razmatramo računanje rekurzivnih pravila. Rekli smo da je pravilo   p   rekurzivno ako ima sljedeći oblik:   r ← .. r ..; dakle, glava pravila pojavljuje se i u tijelu pravila.

Primjer 5.20Neka je zadana deduktivna baza podataka  DBP

  EBP :      roditelj(   Di       Ro   )                =================                               Ana     Vlado                               Ana      Marija                               Vlado   Ivo                               Vlado   Eva                                 Ivo       Petar                                Eva      Lucija                                Ante     Vlado

 IBP:     p1        predak(x, y) ← roditelj(x, y)             p2        predak(x, y) ← roditelj(x, z), predak(z, y)

IBP sadrži dva pravila  p1  i  p2  kojima je definirana relacija  predak, gdje  predak(x, y)  znači da je  x predak od  y. U definiciji relacije predak koristimo relaciju  roditelj (pravilo  p1 i  p2) i relaciju  predak (pravilo  p2); relacija  predak je rekurzivna relacija, jer u njenoj definiciji imamo i rekurzivno pravilo p2. Odnose između relacija možemo prikazati u obliku grafa zavisnosti   Gz, gdje   Gz   sadrži strelicu iz točke  r  u točku  r1  akko je relacija  r  participira u definiciji relacije  r1. Za našu  DBP  graf zavisnosti izgleda ovako:

     Gz:

                        roditelj                                                  predak

Ciklus u točki  predak  indicira rekurzivnost relacije  predak.   

Primjer 5.21Odredimo model deduktivne baze podataka  DBP  iz prošlog primjera.

Trebamo izračunati relaciju  predak  definiranu pravilima:p1        predak(x, y) ← roditelj(x, y)p2        predak(x, y) ← roditelj(x, z), predak(z, y)

100

Page 105: Mirko Malekovic - Teorija Baza Podataka Skripta

Polazimo od  EBP:  roditelj(Di, Ro); uvodimo sljedeće pokrate:  predak = pr ,  roditelj = ro.Relacijski izraz (jednadžba)   RJ:     pr(1, 3) = ro(1, 3)  ∪  [Π[1, 3](ro(1, 2)  ∞  pr(2, 3))]   karakterizira traženu relaciju   pr, gdje smo, jednostavnosti radi, atribute odgovarajućih relacijskih shema označili pozicijski: 1, 2  i  3 .  Dalje pojednostavljenje (izostavljanje atributa) izraza  RJ daje   RJ:  pr = ro ∪ [Π(ro ∞ pr)] .

RJ   je rekurzivna jednadžba. Naš zadatak se svodi na računanje takve relacije   pr   koja zadovoljava rekurzivnu jednadžbu  RJ.

Jednadžbu  RJ  možemo pisati u obliku  RJ:   pr = F(pr).

Relacija  s  je fiksna točka za  F  ako  s = F(s).  Prema tome, računanje relacije  pr  koja zadovoljava jednadžbu  RJ  reducira se na računanje fiksne točke za  F. Postupak rješavanja jednadžbe  pr = ro ∪ [Π(r o ∞ pr)] :

                                               Novi  pr                  Stari  pr  1.  Stavljamo  Stari  pr  =  ∅ ,  a zatim računamo  Novi  pr ; 2.  Novi  pr   postaje   Stari  pr , te opet računamo  Novi  pr; 3.  Postupak završava kad bude  Novi  pr  =  Stari  pr , tj.      kada  pr  postane fiksna točka  zadane jednadžbe.

Uočite da će nakon koraka  1.  vrijediti  Novi pr = ro. 

Navedeni postupak rješavanja jednadžbe  RJ  realiziran je algoritmom:

   A:      begin               pr := ro               ∆  pr := pr              while  ∆  pr ≠  ∅     do                 pr’:= pr  ∪  [Π(ro ∞ pr)]                ∆  pr := pr’ − pr                 pr := pr’                end              end

101

Page 106: Mirko Malekovic - Teorija Baza Podataka Skripta

Poboljšanje algoritma  A  dano je algoritmom

  B:    begin          pr := ro          ∆  pr := pr            while  ∆  pr ≠  ∅     do                pr’:= pr  ∪  [Π(ro ∞ ∆  pr)]                ∆  pr := pr’ − pr                pr := pr’             end        end

                                                                                 Zadatak• Izračunajte relaciju  pr  primjenom algoritma  A .• Izračunajte relaciju  pr  primjenom algoritma  B .• U čemu se sastoju poboljšanje algoritma  A  ostvareno u algoritmu  B ?• Napišite model  M  zadane deduktivne baze podataka  DBP  iz prošlog primjera.

Primjer 5.22Neka je  M:  ro(Di  Ro), pr(Po  Pr)  model deduktivne baze podataka  DBP  iz prošlog zadatka.U:  Odredimo Antine predke.

Rješenje je dano izrazom   o(U)(Pr) = Π[Pr](σ [ Po = Ante](pr)).

Sigurnost pravila

Razmotrimo pravilo   p :    r(x, y) ← x < y .Relacija   r   definirana pravilom   p   je beskonačna ako  x ∈ D  ili  y ∈ D,  i  D  je beskonačan skup.

Neka imamo deduktivnu bazu podataka  DBP

  EBP:   s          IBP:    p1 :   r(x, y) ← s(y) .

Pretpostavljamo da je relacija  s  iz  EBP  konačna. Iako je relacija  s  konačna, relacija  r,  definirana pravilom  p1, je beskonačna ako je  x ∈ D  i  D  je beskonačan skup. Sigurnošću pravila želimo izbjeći pravila koja kreiraju beskonačne relacije, neovisno o  BP domenama (domene mogu biti i beskonačne). Sigurnost pravila se postiže ograničavanjem varijabli. U daljem pretpostavljamo da su  relacije iz EBP konačne (sastoje se od konačno redova).

102

Page 107: Mirko Malekovic - Teorija Baza Podataka Skripta

• Ograničenost varijabli

Varijabla  x  pravila   p:   G ← T   je ograničena ako

1.   x  se pojavljuje kao argument konačne, nenegirane relacije iz tijela  T ,  ili

2.   x  se pojavljuje u  T  u obliku    x = a  ili  a = x , gdje je  a   konstanta ,  ili

3.   x  se pojavljuje u  T  u obliku   x = y   ili   y = x , gdje je varijabla   y   ograničena .    

Pravilo   p   je sigurno (safe) ako su sve njegove varijable ograničene.DBP  je sigurna ako su sva pravila iz  DBP   sigurna.

Zaključimo:  ako je  DBP  sigurna, onda pravila iz  DBP  generiraju (kreiraju) jedino konačne relacije.

Primjer 5.23Pravilo  p:   r(x, y) ← x < y   nije sigurno, jer varijable  x, y  nisu ograničene.  Primjer 5.24Pravilo  p1:   r(x, y) ← s(y)   nije sigurno, jer varijabla  x  nije ograničena;  varijabla  y  je ograničena ako je relacija  s  konačna.   

Primjer 5.25Razmotrimo pravilo  p2:   r(x, y) ← x = 2, s(y), x < y. Pretpostavimo da je relacija  s  konačna.Pravilo  p2  je sigurno, jer su sve varijable ograničene.   

Primjer 5.26Pravilo   p3:   r(x, y) ← s(y), z = b, x = z   je sigurno, jer su sve varijable ograničene . Pretpostavljamo konačnost relacije  s  iz tijela pravila.   

• Upit  U  je siguran ako je odgovor  o(U)  konačna relacija.

Primjer 5.27Neka je zadana  DBP

     EBP:        s( A)                      ====                          a                          b 

     IBP:      p1:  r(x, y) ← s(y)

DBP  nije sigurna, jer  p1  nije sigurno pravilo (varijabla  x  nije ograničena).

103

Page 108: Mirko Malekovic - Teorija Baza Podataka Skripta

Upit  U :  r(x, y)  nije siguran, jer  o(U)   može biti beskonačna relacija (to će biti ako  x ∈ D  i  D  je beskonačan skup).Upit  U1 :   x = 2, r(x, y)  je siguran, jer je  o(U)  konačna relacija.

Primjer 5.28Razmotrimo sigurnu deduktivnu bazu podataka  DBP

EBP:    s( A)                                 ====                 a                 b

Promotrimo upit  U:  Naći sve  x, y  tako da vrijedi   s(y), x < 1 .U  nije siguran upit, jer je  o(U)  beskonačna relacija. 

104

Page 109: Mirko Malekovic - Teorija Baza Podataka Skripta

4.5  PROŠIRENJA DATALOGA

Ovaj odjeljak sadrži proširenja Dataloga: negacijom, funkcijama, skupovima, formulama i ažuriranjem.

Proširenje dataloga negacijom ( Datalog[¬] )

Do sada smo razmatrali deduktivne baze podataka koje nisu sadržavale negaciju. U ovom dijelu uvodimo deduktivne 

baze podataka čija pravila mogu sadržavati negaciju u tijelu pravila.

Primjer 5.29Razmotrimo deduktivnu bazu podataka  DBP

 EBP:           o1(R#      Prezime)       o2(R#      Prezime)                     ==============     =============                           R1       Ivić                    R1       Ivić                           R2       Polimac             R4       Krešić                           R3       Trajbar              R5       Singer

  IBP:        p:    o1­raz­o2(x, y) ← o1(x, y), ¬o2(x, y)

Pravilo  p  je sigurno, jer su  x, y  ograničene varijable .Pravilo  p  čitamo ovako:   ∀ x, y [o1­raz­o2(x, y)  ako  o1(x, y)  i  nije o2(x, y)]

Računanje pravila  p:

o1­raz­o2 = o1 − o2   

¬ o2(x, y)  smo interpretirali kao   (x, y) ∉ o2 .                                                                                 Primjer 5.30Pravilo   p1:  s(x, y) ← ¬o2(x, y)  nije sigurno, jer  x, y  nisu ograničeni.Ako postavimo upit   U:     s(x, y) , dobit ćemo da   o(U)   nije definiran. To znači da sustav ne može odrediti sve  x, y  za koje vrijedi  s(x, y). Naime,  ¬o2(x, y)  nije definirano.  

Ima nekoliko pristupa (ozbiljnom) problemu negacije u deduktivnim bazama podataka. Ovdje ćemo opisati pristup gdje se negacija relacije računa kao komplement relacije (eksplikacija negacije). 

105

Page 110: Mirko Malekovic - Teorija Baza Podataka Skripta

• Komplement relacije  C(r)

Neka je  ADOM = Adom(EBP)  ∪  Adom(IBP) , gdje su Adom(EBP)  i  Adom(IBP)  sve konstante iz EBP  i  IBP, respektivno .

Ako je  r(A1, A2,.., Ak), onda je    C(r) = (ADOM ⊗ ADOM ⊗ .. ⊗ ADOM) − r.Definiramo  ¬r = C(r).

Primjer 5.31Izračunajmo pravilo  p  deduktivne baze podataka iz prošlog primjera.

DBP:           o1(R#      Prezime)        o2(R#      Prezime)                     ==============     =============                           R1       Ivić                    R1       Ivić                           R2       Polimac             R4       Krešić                           R3       Trajbar              R5       Singer

p:    o1­raz­o2(x, y) ← o1(x, y), ¬o2(x, y)

Računanje pravila  p :1.  ¬o2 = C(o2)• o1­raz­o2 = o1 ∞ C(o2) = o1 ∩ C(o2) = o1 − o2

Prema tome,  o1­raz­o2 (R#      Prezime)                      ===================                                       R2      Polimac                                       R3      Trajbar

Uočite da smo u ovom primjeru izbjegli računanje  C(o2); iskoristili smo jednakosti iz točke  2.  

ZadatakIzračunajte  C(o2), a zatim  odredite  o1­raz­o2  koristeći jednakost  o1­raz­o2 = o1 ∞ C(o2).

Računanje  ¬r  pomoću  C(r)  može dovesti do nekorektnih rezultata. Cilj nam je ograničiti pravila na takav način da ne dođe do takve situacije. Sljedeći primjer ilustrira navedeni problem.Primjer 4.32Neka je zadana deduktivna baza podataka

DBP:         muško( M )          bpar( M       Ž)                 ========           ============                               R1                     R2     R7                               R2                      R3     R5                               R3

106

Page 111: Mirko Malekovic - Teorija Baza Podataka Skripta

p:    neženja(x) ← muško(x), ¬bpar(x, y)

Čitanje: muško(M) :  M  je muško;bpar(M, Ž):  M  i  Ž  su bračni par;neženja(x):  x  je neženja.Pravilo  p , kojim je definirana relacija  neženja , čita se ovako:

 p:     x  je neženja  ako  je  x  muško  i  ne postoji takav  y   da su   x  i  y  u  braku.

Intuitivno, pravilo  p  je korektno. Međutim, nije tako, kao što pokazuje sljedeće računanje.

Računanje relacije  neženja :

1. Računamo  ¬bpar = C(bpar)

  1.1   ADOM( A )       ADOM(A) ⊗ ADOM(B)( A     B)          =========                  ====================                        R1                                                   R1  R1                        R2                                                   R1  R2                        R3                                                         .                        R5                                                         .                        R7                                                   R7 R7

  1.2   C(bpar) =  δ [M ↵ A, Ž ↵ B](ADOM ⊗ ADOM) − bpar (M, Ž).          2. neženja = Π[M](m ∞ C(bpar)).  

Ako kompletirate proračune iz točaka  1.2  i  2., vidjet ćete da vrijedi  neženja(R2), što nije korektno.Naime, iz  muško(R2)  i  bpar (R2, R7)  slijedi da  R2  nije neženja.

ZadatakIzvršite kompletiranje prošlog primjera.

Nastavljamo s našim primjerom. Razlog nekorektnosti je činjenica da pravilo     p     nije sigurno, jer varijabla  y  nije ograničena.Pravilo  p  možemo napisati u  sigurnom  obliku:

  p1:    muž(x) ← bpar(x, y)  p2:    neženja(x) ← muško(x), ¬muž(x) 

107

Page 112: Mirko Malekovic - Teorija Baza Podataka Skripta

Računanje  p1, p2 :  p1.       muž = Π[M](bpar)   p2.       neženja = muško − muž.   

Slijedeći problem je pojavljivanje  ¬  u rekurziji .

Primjer 5.33Neka je zadana deduktivna baza podataka

DBP:      r( A )                    p1:   p(x) ← r(x), ¬q(x)                 ====                     p2:   q(x) ← r(x), ¬p(x)                   1

Iako je  DBP  je sigurna, postoji problem, koji se ogleda u tome da  DBP  nema jedinstven, minimalan model . Postavlja se pitanje: što je u ovoj situaciji intendirani model ('što je pjesnik htio reći')? Da bismo pokazali da  DBP  nema jedinstven, minimalni model, trebamo izračunati pravila  p1  i  p2, što se reducira na rješavanje jednadžbi

   p1:          p = r − q  p2:          q = r − p

Lako možemo provjeriti da je svaka od interpretacija  M1  i  M2  minimalni model za  DBP.

M1:       r( A )        p( A )       q( A )               ====      =====     =====                   1               ∅            1

M2:        r( A )       p( A )       q( A )               ====      =====     =====                   1               1             ∅            

ZadatakU prošlom primjeru provjerite :(a) M1  i  M2  su modeli za  DBP, tj.,  M1  i  M2  su rješenja jednadžbi  p1  i  p2 .(b) M1  i  M2  su minimalni modeli.(c) M1  i  M2  su neusporedivi, tj.,  ¬(M1 ≤  M2)  i  ¬(M2 ≤  M1) .

Nejedinstvenost minimalnog modela posljedica je pojavljivanja negacije u ciklusu grafa zavisnosti. Da bismo to vidjeli, prikažimo graf zavisnosti relacija iz  DBP. Graf zavisnosti ima oblik:

108

Page 113: Mirko Malekovic - Teorija Baza Podataka Skripta

  Gz: :                        r                                         q

                                                                ¬              ¬

                                                                          p   Znak   ¬   na strelici od  p  do  q  znači da je relacija  q  definirana pomoću   ¬p; analogno tumačimo pojavu  ¬  na strelici od  q  do  p .

Rješenje problema nejedinstvenosti minimalnog modela

U skupu minimalnih modela,  biramo jedan od njih kao prirodni (s obzirom na redosljed računanja propisan stratifikacijom) minimalni model; tako izabran model predstavlja intendirani model.Pojam stratifikacije uvodimo kao što slijedi.

• Negativni ciklus 

Neka je zadana deduktivna baza podataka 

  DBP:   EBP               IBP:   p1,.., pk . Kažemo da   DBP  nema negativni ciklus ako kad god postoji pravilo  pi:  p ← .. ¬q ..   u  IBP, tada se q  ne definira preko  p ,  tj. ne postoji put od  p  do  q  u pripadnom grafu zavisnosti  Gz.   Negativni ciklus prepoznajemo po pojavljivanju barem jednog znaka  ¬ .

Primjer 5.34Razmotrimo  DBP  čija su pravila      p ← r     p ← ¬q      q ← ¬s      s ← p  

109

Page 114: Mirko Malekovic - Teorija Baza Podataka Skripta

Odredimo graf zavisnosti  Gz. Dobivamo:

  Gz:                                    r                    

                                                                      s

                                                                          ¬

                                                        p                                                              q                                                           ¬

DBP  ima jedan negativni ciklus: ciklus  (p  s  q  p) ima dva pojavljivanja znaka negacije  ¬.Iz negativnog ciklusa vidimo da  p ← ¬q  i  postoji put od  p  do  q. Također, imamo  q ← ¬s  ipostoji put od  q  do  s.  

ZadatakIspitajte ima li sljedeća  DBP  negativnih ciklusa.

DBP:   r( A )           s( A )             ====           ====                  1                  1                                      2

     p1:    p(x) ← r(x)     p2:    p(x) ← p(x)     p3:    q(x) ← s(x), ¬ p(x)

ZadatakNeka je zadana  DBP  iz prošlog zadatka. Jednadžbe za rješavanje pravila  p1, p2  i  p3  glase

     p = p ∪ r     (dobiveno iz pravila  p1  i  p2)     q = s − p      (dobiveno iz  p3)

Provjerite da sljedeći  M1  i  M2  zadovoljavaju zadane jednadžbe i prema tome predstavljaju modele za DBP. 

M1:   EDB  +    p( A )       q( A )                          ====        ====                               1                2

110

Page 115: Mirko Malekovic - Teorija Baza Podataka Skripta

M2:   EDB  +    p( A )        q( A )                          ====        ====                               1                ∅                               2

ZadatakDokažite minimalnost  za  M1  i   M2  iz prošlog zadatka.

Slijedi definicija stratificiranosti  DBP.

• Stratificiranost  DBP

Stratificiranje  DBP  je grupiranje relacija u stratume (slojeve)   S1 < S2 <.. < Sk , gdje su  Si  najveći skupovi relacija takvih da vrijedi:

(1)  Ako   p ← .. q .. , onda  p  nije u manjem sloju od sloja gdje je  q (2)  Ako   p ← .. ¬q .. , onda je  q  u manjem sloju od sloja gdje je  p .

Algoritam* (testiranje ima li DBP  negativnih ciklusa i nalaženje stratifikacije)

Ulaz:   DBP:      EBP, IBP

Izlaz:   Odluka ima li  DBP negativnih ciklusa. Ako nema, onda algoritam producira stratifikaciju.

Postupak:

1.   Staviti sve relacije iz  DBP  u  S1.2.   Ponovljeno ispitati pravila:      ako  p ← .. q .. , te  p ∈ Si,  q ∈ Sj, i ≤  j,  onda staviti  p  u  S j ;      ako  p ← .. ¬q .. ,  te  p ∈ Si,  q ∈ Sj,  i ≤  j ,  onda  staviti  p  u  Sj+1 .3.   Ako se dobiveni skupovi relacija  S1 < S2 <.. < Sk      ne mijenjaju pomoću  točke  2. , tada  DBP  nema negativnih ciklusa, a  stratifikacija od   DBP  je 

S(DBP) :  S1, S2,.., Sk .      Ako se ikada dođe do uvjeta da je neka relacija   r ∈ Sj, te  j  >  broja relacija u  DBP, onda  DBP 

ima negativni ciklus i ne može se stratificirati.

111

Page 116: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 5.35 (algoritam*)Primjenimo gore navedeni algoritam na 

 DBP:   r( A )            s( A )             ====           ====                  1                  1                                      2     p1:    p(x) ← r(x)     p2:    p(x) ← p(x)     p3:    q(x) ← s(x), ¬ p(x)

Postupak:• S1:  r, s, p, q• S1:  r, s, p      (zbog  q ← ¬p)      

S2:  q• Dalje promjene nisu moguće. Zato,

S(DBP):  S1 < S2 .   

Primjer 5.36Razmotrimo  DBP  čija su pravila      p ← r     p ← ¬q      q ← ¬s      s ← p  

Ispitajmo  DBP  primjenom algoritma*.Postupak:• S1:  p, r, q, s

• S1:  r, q, s     (zbog  p ← ¬q)S2:  p

3.   S1:  r, s         (zbog  q ← ¬s)      S2:  p, q

4.   S1:  r, s         (zbog  p ← ¬q)      S2:  q      S3:  p

5.   S1:  r            (zbog  s ← p)      S2:  q      S3:  p, s

112

Page 117: Mirko Malekovic - Teorija Baza Podataka Skripta

6.   S1:   r            (zbog  q ← ¬s)      S2:   ∅      S3:   p, s      S4:   q              

7.   S1:   r            (zbog  p ← ¬q)      S2:   ∅      S3:   s      S4:   q      S5:   p         !!!

Dobili smo  pet slojeva  S1 < S2 < S3 < S4 < S5 , a imamo četiri relacije  p, q, r, s . Prema tome, DBP ima negativan ciklus i ne može se stratificirati.   

Računanje modela primjenom stratificiranosti

Neka je zadana stratifikacija deduktivne baze podataka  DBP

   S(DBP):  S1 < S2 <.. <  Sk 

Računanje intendiranog modela vrši se računanjem relacija iz  S(DBP). Dakle, prvo računamo relacije iz  S1, zatim relacije iz  S2, i td. sve dok ne dođemo do relacija iz  Sk.

Primjer 5.37Izračunajmo intendirani, minimalni model deduktivne baze podataka

DBP:   r( A )           s( A )             ====           ====                  1                  1                                      2

     p1:    p(x) ← r(x)     p2:    p(x) ← p(x)     p3:    q(x) ← s(x), ¬ p(x)

Rješenje:Relacije  p  i  q  računamo iz jednadžbi

     p = p ∪ r     (dobiveno iz pravila  p1  i  p2)     q = s − p      (dobiveno iz  p3)

Redoslijed računanja određen je stratifikacijom

113

Page 118: Mirko Malekovic - Teorija Baza Podataka Skripta

 S(DBP):  S1:  r, s, p                S2 :  q

koju smo dobili u Primjeru(algoritam*):

• p = p ∪ r• q = s − p

Računamo  1. : Rješavanje  1.  se svodi na traženje fiksne točke jednadžbe 1.

2. Stacvljamo  p = ∅3. novi p =  ∅  ∪ r = r4. kako je  r  fiksna točka jednadžbe  1., dobivamo da je  p = r, tj.,

p (A)====     1

Računamo  2.:4. q = s − p = q( A)

                          ====                              2 Konačno,  traženi model ima oblik  M :  r, s, p, q , tj.,

 M:       r( A )            s( A )             ====           ====                  1                  1                                      2

               p( A )       q( A )               ====        ====

1 2        

Pretpostavka zatvorenog svijeta  (closed world assumption  CWA)

CWA  je metapravilo (pravilo rezoniranja o pravilima koja uključuju negaciju) . Radi se o iplicitnom predstavljanju negacije. Pri tome imamo sljedeću karakterizaciju  CWA .

7. CWA pravilo:       ¬r(t)   vrijedi  ako   r(t)  ne vrijedi   (u kontekstu  DBP)       ¬r(t)   ne vrijedi  ako   r(t)   vrijedi  (u kontekstu  DBP) 

114

Page 119: Mirko Malekovic - Teorija Baza Podataka Skripta

NotacijaDBP  r(t)  indicira da  r(t)  vrijedi u  DBP;DBP  r(t)  indicira da  r(t)  ne vrijedi u DBP.    

Primjer 5.38Razmotrimo deduktivnu bazu podataka  DBP = (EBP, IBP, UI), gdje je  

  EBP :       r(A  B                IBP : ∅          UI :  ∅  .                  =====

1 22 3

¬r(2, 2) vrijedi, jer  r(2, 2)  ne vrijedi, tj. slog  (2, 2)  ∉ r .¬r(1, 2)  ne vrijedi, jer  r(1, 2)  vrijedi.   

Problemi sa CWA

Primjena  CWA  može dovesti do problema, koji ilustriramo u sljedećem primjeru.

Primjer 5.39Razmotrimo deduktivnu bazu podataka

DBP :        r( A )                p1:  p(x) ← r(x)                 ====                 p2:  p(0) ∨ p(1) ←                      2

DBP  je neodređena (indefinite) zbog pravila  p2, koje u glavi sadrži disjunkciju.Primjenom  CWA  dobivamo  DBP  ¬p(0)  i  DBP  ¬p(1).Ako DBP proširimo sa  ¬p(0)  i  ¬p(1)  dobivamo

DBP’ :    r( A )                                  p(x) ← r(x)               ====                       p(0) ∨ p(1) ←                    2                                 ¬p(0) ←                                                       ¬p(1) ←

DBP’  je u kontradiktornom (nekonzistentnom) stanju (nema model).    

Propozicija (CWA i Hornova pravila)Ako se  DBP  sastoji samo od Hornovih pravila, onda primjena  CWA  ne dovodi do kontradikcije.

115

Page 120: Mirko Malekovic - Teorija Baza Podataka Skripta

Proširenje dataloga funkcijama( Datalog[funk] )

Kao argumenti relacija mogu biti bilo koji termi, gdje se term definira ovako: 

term  je   (a)    konstanta               (b)   varijabla                 (c)    f(t1,.., tk)  ,  gdje su  t1,.., tk  termi i  f  je                         k­mjesna funkcija

Primjer 5.39Neka je zadana 

DBP :      r(A  B)                p:   s(x, y +1) ← r(x, y), x < y + 1                =====                                 1   2                   2   0                  3   1                     

Glava pravila  p  sastoji se od relacije  s , koja kao drugi argument sadrži funkciju + . Umjesto prefiks notacije  +(y, 1)  pisali smo uobičajeno infiks oblik  y + 1 .

Odgovor na upit  U :  s(x, y)  dan je relacijom

      o(U)(A  B)       ========               1   2           

Primjer 5.40Definirajmo skup   N = {1, 2, .., n, n + 1,...}.Neka  N(x)  znači da je  x  prirodan broj. Razmotrimo deduktivnu bazu podataka

DBP :      N(1) ←                N(x + 1) ← N(x) ), x ≥  1  .DBP  nije sigurna;  upit U:  N(2)  je siguran, gdje je  o(U) = DA.   

Primjer 5.41Neka je 

DBP :    r( A  B )         s(x, y)  ← r(x, y), N(x ∗ y)                           ======                    2   1                 1   ­2

DBP  je sigurna. Odgovor na upit  U : s(x, y)  dan je relacijom

116

Page 121: Mirko Malekovic - Teorija Baza Podataka Skripta

          o(U)( A   B )           =========

              2    1         

Proširenje dataloga sa skupovima ( Datalog[skup] )

U pravila uključujemo skupove; potrebna je stratificiranost, tj. poredak izračunavanja.Prije opracija sa skupovima, skupovi moraju biti izračunati (konkretizirani).

Primjer 5.42DBP :        uzgajivač( U#       Pas)                 =================                                    U1      Bobi                                    U1      Leo                                    U2      Reks                                    U3      Leo

 uz­skup(x, z) ← uzgajivač(x, y), z = {y   uzgajivač(x, y)}               U :   uz­skup(x, z)             o(U)(U#        PAS*     )                                         =================                                                  U1  {Bobi, Leo}                                                  U2  {Reks}                                                  U3  {Leo}  

Ako je  UZ(x, y) ← uz­skup(x, z), y ∈ z  , onda je  UZ = uzgajivač .

U :   Naći sve  x, y :  uz­ skup(x, z), uz­skup(y, z1), z ∩ z1 = ∅

o(U)(U1#   U2#)============         U1    U2         U2    U3         U2    U1         U3    U2            

117

Page 122: Mirko Malekovic - Teorija Baza Podataka Skripta

Proširenje dataloga s formulama u tijelu ( Datalog[F] )

Primjer 5.43Razmotrimo deduktivnu bazu podataka

DBP :    S1( A ),    S2( A )                    =====      =====                    a               b                    b               a                                     c               p:    podskup(X, Y) ← ∀x1 [X(x1) ⇒ Y(x1)]

Pravilo  p  sadrži u tijelu formulu   ∀x1 [X(x1) ⇒ Y(x1)]. Navedenim pravilom definirali smo relaciju podskup. Primjena pravila  p zahtijeva da skupovi  X  i  Y  budu zadani (konkretizirani).Neka je zadan upit  U : podskup(X, S2). Što je odgovor na upit  U ?

RješenjeOdgovor na upit  U  nije definiran, jer upit  U  nije korektan. Uočite da  prvi argument upita, X , nije konkretiziran.Neka je zadan upit  U1 :  podskup(S1, S2) .Upit  U1  je korektan, a odgovor na upit je   o(U1) :  DA  .Odgovor na upit  U2 : podskup(S2, S1)  je  o(U2) :  NE  . 

     Proširenje dataloga ažuriranjem ( Datalog[až] )

Pretpostavljamo   da   se   ažuriranje   deduktivne   baze   podataka     DBP   =   (EBP,   IBP,   UI)   reducira   na ažuriranje njene ekstenzije  EBP.Sa    DBP[i]  =   (EBP[i],   IBP[i],  UI[i])     označavamo   stanje   deduktivne  baze    DBP     u   trenutku     i (pretpostavljamo diskretno vrijeme  T  izomorfno skupu prirodnih brojeva  N ). Dalje,   α (DBP[i]) = DBP[i + 1]  indicira da je  DBP[i + 1] rezultat ažuriranja  DBP[i].Neka su  a1,.., ak  konstante. Tada

  + r(a1,.., ak)  vrijedi ako i samo ako je slog   (a1,.., ak)  upisan  u  r ;  ­ r(a1,.., ak)  vrijedi ako i samo ako je slog   (a1,.., ak)  brisan iz  r .

Primjer 5.44Razmotrimo

DBP[1] :    radnici(R#   Prezime     Plaća         Odjel#)                  ==============================                              R1   Malović  2000 Kn         O1                              R2    Singer    2300 Kn         O2 

118

Page 123: Mirko Malekovic - Teorija Baza Podataka Skripta

Neka su zadana ažuriranjaα 1 :   ­radnici(R1, Malović, 2000 Kn, O1),α 2 :   +radnici(R1, Malović, 2500 Kn, O3) .

Tada jeα 1(DBP[1]) = DBP[2] :      radnici(R#   Prezime     Plaća         Odjel#)                                           ==============================                                                        R2    Singer    2300 Kn         O2 

α 2(DBP[2]) = DBP[3] :      radnici(R#   Prezime     Plaća         Odjel#)                                           ==============================                                                        R1   Malović  2500 Kn         O3                                                        R2    Singer    2300 Kn         O2          

Primjer 5.45Neka je  DBP :     s ( A )           r(x) ← + s(x)  .                             =====                                  a                                  b

Upit  U :   r(x)  je nekorektant, jer  x  mora biti konstanta. Upit  U :   r(a)  je korektan, a rezultat upita jeo(U):  DA  , uz dodavanje sloga  ( a )  u relaciju  s .   

Primjer 5.46RazmotrimoDBP[0] :   p( A )         r(A  B)      p1 :  +p(x) ← r(x, y)  .                 ====         =====                     1               2   1                     2               3   3

Lako vidimo da  DBP[0]  nije konzistentna; respektirajući pravilo  p1 , relacija  p  trebala bi sadržavati slog  (3 ) . Ažuriranjem  DBP[0]  pomoću  α 1 = p1  dobivamo

α 1(DBP[0]) = DBP[1] :    p( A )      r( A   B )     p1 : +p(x) ← r(x, y)  .                                         ====      =======                                             1             2    1                                             2             3    3                                             3 

DBP[1]  je konzistentna baza podataka.

Neka je  α 2 :  ­r(2, 1) .  Tada je

119

Page 124: Mirko Malekovic - Teorija Baza Podataka Skripta

α 2(DBP[1]) = DBP[2] :   p( A )      r( A   B )     p1 : +p(x) ← r(x, y)  .                                        ====      =======                                             1            3    3                                             2                                                          3 

Uočite da je  DBP[2] konzistentna baza podataka.

Neka je  α 3 :  +r(4, 4) . Tada je

α 3(DBP[2]) = DBP[3] :   p( A )      r( A   B )     p1 : +p(x) ← r(x, y)  .                                        ====      =======                                             1            3    3                                             2            4    4                                              3 

DBP[3]  nije konzistentna.Ako definiramo  α 4 = p1 ,  onda dobivamo konzistentno stanje

α 4(DBP[3]) = DBP[4] :   p( A )      r( A   B )     p1 : +p(x) ← r(x, y)  .                                        ====      =======                                             1            3    3                                             2            4    4                                              3                                              4                                

Prema tome, svako ažuriranje EBP zahtjeva dodatno ažuriranje primjenom ažurirajućeg pravila  p1 .    

Ovaj primjer imao je za cilj pokazati složenost semantike ažuriranja  DBP. Održavanje konzistentnosti DBP   postaje još  složenije ako dopustimo ažuriranje   IBP   i   UI. Ta razmatranja su izvan sadržaja predviđenih ovom skriptom.  

Problem (usporedba ekspresivnosti)

Uvedimo sljedeće oznake:

Datalog            ‘čisti’  Datalog (bez negacije);Datalog[¬]        Datalog proširen s negacijom;Datalog[¬, fun, skup, F, až]         Datalog proširen s negacijom, funkcijama, skupovima,     formulama i 

ažuriranjem;RA        relacijska algebra .

Usporedite ekspresivnost navedenih jezika!

120

Page 125: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1. Zadana je deduktivna baza podataka DBPEBP: r( A  B )   s(B  C)   r1( D )         ======   =====   =====             a   b        a   a          b             b   a        b   a

UI:   r( A, B),  B ≤  b ;  s(B, C),  B → C IBP: p1:   p(x, a) ← r(x, y), s(y, z)        p2:   q(x, c) ← s(x, a), ¬r1(x)(a)  Napišite interpretaciju I za DBP, a zatim ispitajte je li  I model za DBP.(b)  Izračunajte pomoću relacijskih operatora model za BZ.

2. Zadana je DBPEBP:   r( A  B  C)           s( B  C  D)           ========          ========              a   b   a                 a   b   c              a   a   c                 b   a   b                                          a   b   aIBP:   p1: p(b, y, y) ← r(x, y, z), s(z, y, x1)

(a)  Nadopunite I: D = {a,..},   p(E  F  G), ...                                                 =======                                                    b   b   b                                                    a   c   b                                                    b   b   a tako da I bude interpretacija za  DBP, a zatim ispitajte da li je I model za DBP.(b)  Izračunajte  ¬s(B, C, D) ∞ r(A, B, C). 

3.  Neka je DBP1 deduktivna baza podatakaEBP:     r(A  B)             =====                a   2                b   2

IBP:       p       s(x, y) ← r(x, z), r(y, z), x ≠  y

(a)  Izračunajte relaciju s pravila p .(b)  Napišite minimalni model za DBP1.(c)  Napišite dva različita modela za DBP1.(d)  Ako su modeli u zadatku 3. (c)  M1 i M2, onda ispitajte da li vrijedi      M1 ≤   M2. Da li vrijdi M2 ≤   M1?

121

Page 126: Mirko Malekovic - Teorija Baza Podataka Skripta

4.  DBP2 = (EBP, ∅,  ∅), gdje jeEBP:dozvola(Pilot#   Tip­aviona)===================                     P1          707                              P1          727                              P2          707                              P3          747dozvola(x, y)  znači:  Pilot  x  ima dozvolu za tip aviona  y.(a)  Napisati pravilo p  koje daje sve pilote iz relacije dozvola.(b)  Napisati pravilo p1 koje daje sve pilote koji imaju dozvolu za tip      aviona  707 .

5.  DBP3 = (EBP, IBP, ∅), gdje su EBP i IBP: p, p1 iz zadatka 3.Napišite model za DBP3.

6.  DBP = (EBP, IBP, ∅), gdje je    EBP:      q(A, B), r(B, C, D), s(C, E)    IBP:      p1     p(x, y) ← q(a, x), r(x, z, x), s(y, z)Sadržaj relacija iz EBP nije bitan. Izračunajte pravilo p1 tj. napišite relacijski izraz kojim se izračunava relacija p iz pravila p1.    7.  Zadana je DBP1    EBP:  r1(A, B), r2(B, C)    IBP:  p:  s(x, y) ← r1(x, z), r2(y, x)Izračunajte pravilo p .

8.  Zadana je DBP2  EBP:    r(A, B), s(B, C)              =====   =====                 1   2       2    1                 2   3       2    2  IBP:   p1       p(a, y) ← r(x, y)            p2       p(x, y) ← s(x, z), r(z, y)

             p3       q(x, x) ← p(x, b)             p4       q(x, y) ← p(x, z), s(z, y)Napisati model za DBP2  računajući pravila pomoću relacijske algebre.

9.  Je li DBP2 iz zadatka 8. sigurna?10. Napišite DBP koja nije sigurna.11. Napišite DBP koja nije konzistentna.12. Napišite DBP koja u IBP ima barem tri pravila i pojavljivanje negacije u barem jednom pravilu. 

Ispitajte da li postoji stratifikacija deduktivne baze podataka DBP.

122

Page 127: Mirko Malekovic - Teorija Baza Podataka Skripta

6. POOPĆENE RELACIJSKE BAZE PODATAKA  (PORBP)

6.1. UVOD

U konvencionalnom relacijskom modelu pretpostavljamo da su relacijske sheme u   1NF. Navedeno znači da su svi atributi sheme relacijske baze podataka jednostavni, tj. domene atributa se sastoje od atomarnih objekata .   Zahtjevom za boljom reprezentacijom dolazimo do relacijskih shema koje su u višim normalnim formama (2NF, 3NF, BCNF, 4NF, 5NF).Aplikacije: (CAD­sustavi,  procesiranje  teksta, temporalne baze podataka) zahtijevaju relacije čija se shema  sastoji i od složenih atributa; atribut  A  je složen ako  njegova domena, dom(A), sadrži barem jedan složeni objekt (skup, lista, relacija,..).

U nastavku ćemo shemu   R = {A1, A2,.., Ak}  pisati u obliku  R ( A1, A2,.., Ak).

Poopćena normalna forma

• (R, F)   je u  poopćenoj normalnoj formi (PONF)  ako je svaki atribut iz  R  jednostavan ili složen. (pretpostavljamo da su vrijednosti složenih atributa relacije) .  Za relaciju  r  nad  R  kažemo da je  PONF relacija. 

Lako vidimo da je PONF   poopćenje   1NF . U daljem ćemo koristiti sljedeću karakterizaciju.

• Ako je   (R, F)   u   X normalnoj formi (XNF), onda za relaciju   r   nad   R   kažemo da je       XNF relacija.

Primjer 6.1 Neka je zadana relacija  r  nad shemom  R ( Radnik#, Mentor), gdje je R  u  1NF. 

r (Radnik#   Mentor)              r  je  1NF  relacija.===============              R1             Murn     R2             Murn     R3             Murn     R4             Lovrić     R5             Lovrić

Informaciju iz  r  moguće je prikazati kompaktnije koristeći relaciju  r1  nad relacijskom shemom R1(Rad(Radnik#), Mentor), gdje je  R1  u  PONF. Uočite da je atribut  Rad  složen.

123

Page 128: Mirko Malekovic - Teorija Baza Podataka Skripta

r1( Rad (Radnik#),   Mentor)                 r1  je  PONF relacija.=====================                R1                     Murn          R2          R3

          R4                     Lovrić          R5                                                    

Primjer 6.2   Razmotrimo  PONF relaciju

     r(A   D(B  C))     ==========

         1       2   2                  1   2                                 t1

           3     1   1                                  t2    

SemantikaShema relacije   r   je     SH(r) = R(A, D(B, C)); atribut   A   je jednostavan, a atribut   D   je složen; vrijednosti od  D  su relacije nad  (B, C) ;  vrijedi:

t1[A] = 1 ,   t1[D] =  (B   C) ,   t1[D] ≠  t2[D].                                    =====                                   2    2                                   1    2

124

Page 129: Mirko Malekovic - Teorija Baza Podataka Skripta

6.2. PARTICIJSKA NORMALNA FORMA (PNF)

Primjer 6.3Neka je zadana relacija

 r(S#  Prezime  Predmet(P­ime  Ocjena)) ============================     S1    Mrak                      Mat       3                                         Fiz        4

  S1    Mrak                     BP         3 

U   r   ne vrijedi funkcijska zavisnost   S#, Prezime  →  Predmet .Intuitivno, bolja reprezentacija je :

 r2(S#  Prezime  Predmet(P­ime  Ocjena)) =============================

      S1    Mrak                     Mat       3                                            Fiz        4                                            BP        3 

U   r2   vrijedi   S#, Prezime → Predmet.   

• PNF Neka je zadana  PONF  relacija   r(X  Y) , gdje su u  X  jednostavni atributi, a u  Y  su složeni atributi .  Kažemo da je   r   u  PNF  ako  X → Y  vrijedi u   r  ,  i (∀t ∈ R) (∀A ∈ Y)[relacija  t[A]  je u PNF].

Propozicija(1NF, PNF)Svaka  1NF  relacija je u  PNF .

DokazNeka je r(R) u 1NF. Navedeno znači da su svi atributi iz relacijske sheme R jednostavni. Dakle, iz definiciji PNF slijedi X = R, Y = ∅. Kako X → ∅ vrijedi u svakoj relaciji, zaključujemo da vrijedi i u relaciji r(R). Prema tome, r je u PNF.

125

Page 130: Mirko Malekovic - Teorija Baza Podataka Skripta

6.3. RELACIJSKI OPERATORI ZA PONF RELACIJE

U ovom odjeljku razmotrit ćemo dva nova operatora, grupiranje   Gr   i rastavljanje   Ra, te proširenja konvencionalnih relacijskih operatora na  PONF  relacije:∪p ,  ∩p ,  −p , ∞p ,  Π p ,  σ p ,  δ p.

Kada se     PONF   reducira na   1NF, proširenja operatora se reduciraju na odgovarajuće operatore   ∪ , ∩ ,  − ,  ∞ ,  Π  ,  σ  ,  δ    na  1NF  relacijama.

• GRUPIRANJE    Gr

Neka je zadana relacija     r(B1,.., Bk, Bk+1,.., Bn); neka je C atribut koji se ne pojavljuje u   SH(r). Grupiranje relacije r   po atributima  Bk+1,.., Bn   agregiranim u   C , je relacija   Gr[C(Bk+1,.., Bn)](r) :

(a)  SH(Gr[C(Bk+1,.., Bn)](r)) = (B1,.., Bk, C(Bk+1,.., Bn))(b)  Slogovi u   Gr   dobiju se iz slogova iz  r agregiranjem slogova koji imaju jednake    vrijednosti na  

B1,.., Bk.Formalno,t ∈ Gr[C(Bk+1,.., Bn)](r)   ako i samo ako(1)    ∃u ∈ r  (t[B1,.., Bk] =  u[B1,.., Bk]) ,  i(2)    t[C] = {v[Bk+1,.., Bn]   v ∈ r  i  v[B1,.., Bk] = t[B1,.., Bk]}

Primjer 6.4Neka je zadana relacija

   r(A  B  C)                       ========       2   1   1       2   0   1       3   1   2

Tada je

Gr[D(B, C)](r) (A    D(B  C))======================

                           2        1  1                                     0  1

                           3        1  2                     

126

Page 131: Mirko Malekovic - Teorija Baza Podataka Skripta

• RASTAVLJANJE    Ra

Neja je zadana relacija   r(B1,.., Bm, B(A1,.., Ak)) , gdje je B  složeni atribut . Rastavljanje od   r   s obzirom na   B   je relacija Ra[B](r)   definirana ovako:

(1)  SH(Ra[B](r)) = (B1,.., Bm, A1,.., Ak) (2)    t ∈ Ra[B](r)    ako i samo ako        ∃u ∈ r (t[B1,.., Bm] = u[B1,.., Bm]  i  t[A1,.., Ak] ∈ u[B])

Primjer 6.5Neka je zadana relacija  r(A  B  C(D E(F  G)))  ================                           1  2       3     2  2                          1  0 

      1  2       4      2  2                           1  1                           0  1     

Odredimo   Ra[E(F, G)](r) .

Ra[E(F, G)](r) (A  B    C(D  F  G))==========================

                          1  2         3   2   2                                         3   1   0

                                                1  2        4   2   2                                        4   1   1                                        4   0   1            

Propozicija(Ra inverz Gr)Operator  Ra  je inverz od  Gr ,  tj.  r = Ra[A]( Gr[A(Y)](r) )

127

Page 132: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija(Nije Gr inverz Ra)Operator   Gr   nije inverz od   Ra , tj. postoji relacija   r  takva da je   r ≠  Gr[A(Y)]( Ra[A(Y)](r) ).

DokazNeka je zadana relacija     r(Izlet    Posjeta(Grad    Dan))   ======================

       I1                     Split      1                    

       I1                     Rijeka   1                               Pula      2

       I2                     Zadar   3   

Izračunajmo  Gr[Posjeta(Grad  Dan)]( Ra[Posjeta](r) ) Dobivamo

Ra[Posjeta(Grad  Dan)](r) (Izlet  Grad     Dan)==================================                                             I1     Split      1                                             I1     Rijeka   1                                             I1     Pula      2                                             I2     Zadar    3

Gr[Posjeta(Grad  Dan)](Ra (r)) (Izlet  Posjeta(Grad Dan))==========================================

                                                    I1                    Split    1                                                               Rijeka  1

                                                                           Pula     2

                                                    I2                    Zadar  3  

         Vrijedi   Gr(Ra(r)) ≠  r .  

128

Page 133: Mirko Malekovic - Teorija Baza Podataka Skripta

Propozicija(PNF, Gr, Ra)Neka je   r(X  A(Y))  u  PNF , gdje je  X ∩ Y = ∅  i  A ∉ XY. Tada,  r = Gr[A(Y)]( Ra[A(Y)](r) ).

Propozicija(zatvorenost s obzirom na Ra)Klasa  PNF  relacija je zatvorena s obzirom na  Ra .

Propozicija(nezatvorenost s obzirom na Gr)Klasa  PNF  nije zatvorena s obzirom na  Gr .

DokazRazmotrimo relaciju

 r(A  B  C(D  E))               Relacija  r  je u  PNF. ============

    1  2        2  2    

    1  3        1  0  

Izračunajmo

  Gr[B1(B)](r)(A  B1(B)  C(D  E))  ========================

                         1       2        2  2

                         1       3        1  0 

 Kako  A → B1, C  ne vrijedi u  Gr(r), zaključujemo da  Gr(r)  nije u  PNF . 

Propozicija(PNF, Gr)Neka je   r(X  Y  Z)  takva relacija gdje su u  X  jednostavni, a u  Y  složeni atributi .  Tada, Gr[A(Z)](r) je u  PNF  ako i samo ako  X → Y  vrijedi u  r .

Sada   prelazimo   na   proširenje   konvencionalnih   relacijskih   operatora   tako   da   dobijemo   relacijske operatore za PONF relacije id a bude ispunjeno svojstvo da je klasa PNF relacija zatvorena s obzirom na definirana proširenja.

129

Page 134: Mirko Malekovic - Teorija Baza Podataka Skripta

• Unija   ∪p

Primjer 5.6Neka su zadane relacije   r1(R1),  r2(R1)

r1(A  B(C  D))           r2(A  B(C  D))===========          ===========

     1       2   2                  1       2   1               1   0                           1   0

     2       1   1                   3      2   2

Uočite da   r1 ∪ r2   ne čuva  PNF, tj.  klasa  PNF  nije zatvorena s obzirom na operator    ∪   . Sada računamo r1  ∪p  r2 :

r1  ∪p  r2 (A  B(C  D) =================

                   1        2  2                             1  0                             2  1

                   2        1  1

                   3        2  2 

Pravilo: ∪p   ‘putuje’ od jednostavnih prema složenim atributima .

Slijedi definicija  ∪p .Neka su zadane relacije  r1(X Y) ,  r2(X Y) , gdje su u  X  jednostavni, a u  Y  složeni atributi .(1)   SH(r1  ∪p  r2) = SH(r1) = SH(r2)(2)   t ∈ r1  ∪p  r2   ako i samo ako a)   t ∈ r1  i  (∀t1 ∈ r2)(∃Ai ∈X) (t[Ai] ≠  t1[Ai]) ,  ili b)   t ∈ r2  i  (∀t1 ∈ r1)(∃Ai ∈X) (t[Ai] ≠  t1[Ai]) , ili c)   (∃ t1 ∈ r1)(∃ t2 ∈ r2) (∀Ai ∈ X)(∀Bj ∈ Y) :       t[Ai] = t1[Ai] = t2[Ai]  i         t[Bj] = t1[Bj]  ∪p  t2[Bj]

130

Page 135: Mirko Malekovic - Teorija Baza Podataka Skripta

• Presjek    ∩p

r1(X Y) ,  r2(X Y) , X = {A ∈ R   A   je jednostavan atr.}, Y = {B ∈ R   B   je složen atr.}(1)   SH(r1  ∩p  r2) = SH(r1) = SH(r2)(2)   t ∈ (r1  ∩p  r2)   ako i samo ako        (∃ t1 ∈ r1)(∃ t2 ∈ r2 ) (∀Ai ∈ X)(∀Bj ∈ Y) :         t[Ai] = t1[Ai] = t2[Ai]  i  t[Bj] = t1[Bj]  ∩p  t2[Bj]  i  t[Bj] ≠  ∅  .

Dakle,  slogovi  t1  i  t2  daju u presjeku  t  ako se  t1  i  t2 podudaraju na svim jednostavnim atributima X , i imaju neprazan prošireni presjek na svakom složenom atributu iz Y .

• Razlika   −p

r1(X Y) ,  r2(X Y) , X = {A ∈ R   A   je jednostavan atr.}, Y = {B ∈ R   B   je složen atr.}(1)   SH(r1 −p  r2) = SH(r1) = SH(r2)(2)   t ∈ (r1  −p  r2)   ako i samo ako       a)   t ∈ r1   i   (∀t1 ∈ r2)(∃Ai ∈ X): t[Ai] ≠  t1[Ai] , ili       b)   (∃ t1 ∈ r1)(∃ t2 ∈ r2) (∀Ai ∈ X)(∀Bj ∈ Y) :              t[Ai] = t1[Ai] = t2[Ai]  i  t[Bj] = t1[Bj]  −p  t2[Bj]   i   t[Bj] ≠  ∅  .

Dakle,   u     −p     su oni slogovi iz   r1   koji se ne podudaraju niti s jednim slogom iz   r2   na skupu jednostavnih atributa   X , ili ako se podudaraju, onda imaju nepraznu, proširenu razliku na svakom složenom atributu iz  Y .

• Prirodno spajanje   ∞p

Operator  ∞p definiramo kao što slijedi.r1(R1),  r2(R2) , X = {A ∈ R1 ∩ R2  A je složen atr.}, Y = R1 − X , Z = R2 − X.(1)   SH(r1  ∞p  r2) = R1 ∪ R2 = (Y X Z)(2)   t ∈ (r1 ∞p  r2)   ako i samo ako        (∃u ∈ r1)(∃v ∈ r2) :  t[Y] = u[Y]  i  t[Z] = v[Z]  i  t[X] = u[X]  ∩p  v[X] ≠  ∅ 

131

Page 136: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 6.7Neka su zadane relacije

s1(A   B    C(D   E))            s2(F   B   C(D   E))===============         ===============

     e1  b1       c1  d1                 a1  b1     c1  d1                      c1  d3                                c2  d2                       c3  d4                                c1  d3 

     e3  b2       c3  d2                 a2  b1     c3  d1                                                                c2  d2                                                                c1  d1      e4  b1       c3  d1                                                      c4  d2                                                 a2  b2     c1  d2                                                                c3  d2

Tada je relacija s1  ∞p  s2 dana sljedećom tablicom

s1  ∞p  s2 (A   B   F   C(D   E))========================                    e1  b1  a1     c1  d1                                       c1  d3

                   e1  b1  a2     c1  d1 

                          e4  b1  a2    c3  d1

                          e3  b2  a2    c3  d2           

132

Page 137: Mirko Malekovic - Teorija Baza Podataka Skripta

• Projekcija   Π p

Relacijski operator Π p definiran je ovako: r(R) ,   V ⊆  R ,  V ≠  ∅ .(1)   SH(Π p[V](r)) = V(2   Π p[V](r) = ∪p (t) , gdje   t ∈ Π[V](r)                                                           Primjer 5.8Izračunajmo  Π p [F, C](s1  ∞p  s2), gdje je  s1  ∞p  s2 iz primjera 5.7. Dobivamo 

 Π p [F C](s1  ∞p  s2) (F    C(D   E))==========================                                   a1       c1  d1                                              c1  d3

                                                               a2       c1  d1                                              c3  d1                                              c3  d2           

Definicija   produkta  ⊗p   ostaje   nepromijenjena,   tj.  ⊗p   =  ⊗,   a   definicija   selekcije  σ pF  zahtijeva proširenje   skupa  operatora   uspoređivanja   operatorima  uspoređivanja   vrijednosti   složenih   atributa   i sukladno definiranje pojama formule F.

133

Page 138: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1.  Neka je zadana relacija

  r(A  B  C)                       ========    1   1   1    2   0   1    0   1   2

(a)  Izračunajte  Gr[D(A, C)](r) .(b)  Je li r u PNF?

2.  Je li relacija iz zadatka 1. (a) u PNF?

3.  Za relaciju

                      r (A  B    C(D  F  G))                      ================

                          1  2         3   2   2                                         3   1   0

                                                1  2        4   2   2                                        4   1   1                                        4   0   1            odredite(a)  Ra[C(D, F, G)](r) .(b)  Gr[E(C(D, F, G))](r) .

4.  Je li relacija r iz zadatka 3. u PNF? 

5.  Neka su zadane relacije   r1(R1),  r2(R1)

r1(A  B(C  D))           r2(A  B(C  D))===========          ===========

     2       2   2                  1       2   1               1   0                           1   0

     1       1   1                   2      2   2              2   1                           1   0 

134

Page 139: Mirko Malekovic - Teorija Baza Podataka Skripta

Odredite(a)  r1 ∪p r2(b)  r1 ∩p r2(c)  r1  −p  r2(d)  r2  −p   r1

6.  Za relacije r1 i r2 iz zadatka 5. odredite(a)  r1 ∞p r2](b)  Π p[A](r1)(c)  Π p[B](r2)(d)  r1 ⊗p r2

7.  Neka su zadane relacije r1 (iz zadatka 5.) i relacija

     r (C  D )     ======         1   1         2   2         2   1 

Za formulu  F: B ⊆  r  odredite Π p[B](σ pF(r1)).

                           

135

Page 140: Mirko Malekovic - Teorija Baza Podataka Skripta

Model podataka

Model procesa

7. OBJEKTNO ORIJENTIRANE BAZE PODATAKA

7.1. UVOD

U uvodu karakteriziramo motivaciju za uvođenje objektno orijentiranih baza podataka (OOBP, OODB) i  njihova  temeljna svojstva.  Osnovni  cilj   je  bio postići  veći   stupanj  sličnosti   između BP (model)   i aplikacijske domene (dio ‘realnog’ svijeta).

Tradicionalni implementacijski model je dan na sljedećoj slici.

         AD                                                                            

                                       analiza                                   modeliranje                                           dizajn                                        

Semantička ekvivalencija                                                            Kodiranje,[manje­više]                                                                                   generiranje aplikacije

                                                                            Programi                      Alati

                                                               BP

136

Page 141: Mirko Malekovic - Teorija Baza Podataka Skripta

Zaključimo da u tradicionalnom implementacijskom modelu imamo gubljenje semantike.Gubljenje semantike ima za posljedicu da se poslovne aplikacije teško prihvaćaju od strane korisnika, jer   je   kompjuterska   realizacija   aplikacije   različita   od   načina   kako   se   posao   odvijao   (ručno)   prije kompjuterizacije.Radi se zapravo o razlici između aplikacijske domene i modela aplikacijske domene.U  slučaju  modeliranja   sve   složenijih   aplikacijskih  domena:   (CAD  (computer­aided  design),  CASE (computer­aided   systems)),   raskorak   između   aplikacijske   domene   i   modela   postaje   sve   izrazitiji. Gubljenje   semantike  u postupku modeliranja   (aplikacijska  domena  →  ER­model  →  relacijska  baza podataka) možemo prikazati ovako:

Gubljenje semantike

      AD

ER­model

Relacijskimodel

137

Page 142: Mirko Malekovic - Teorija Baza Podataka Skripta

Prvi korak u smanjenju gubljenja semantike bio je kreiranje aplikacijskih­specifičnih struktura, koje mogu obuhvatiti više semantike.

      AD

  

Aplikacijski programSemantički bogataplikacijski­specifičanmodel podataka[Surogat]

                            

                                          Preslikavanje

RM

Problem je u ograničenosti (jednostavnosti) relacijskog  modela (RM):• Tipovi podataka

[modeliranje AD zahtijeva apstraktne tipove podataka, koje definira korisnik]

• Operacije[reprezentacija   poslovnih   pravila   nije   moguća   u   RM   i   mora   biti   dana   u   aplikacijskom programu].

138

Page 143: Mirko Malekovic - Teorija Baza Podataka Skripta

Sljedeći   (logičan)  korak je  pokušaj ugrađivanja semantike u sustav za upravljanje  bazom podataka (SUBP, DBMS).Time se eliminira preslikavanje (Surogat – SUBP).

                                                       

                                                             kreirana iz

 

                                

                     SUOOBP                                         BP

139

Page 144: Mirko Malekovic - Teorija Baza Podataka Skripta

Karakteristike   sustava   za   upravljanje   objektno   orijentiranom   bazom   podataka   (SUOOBP, OODBMS)

• Složeni (apstraktni) tipovi • Učahurenje   (enkapsulacija)  kojim se  postiže  nezavisnost  od   reprezentacije,   tj.,   aplikacije   se  ne 

moraju mijenjati ako se mijenja reprezentacija.Isto možemo reći i tako da kažemo da je specifikacija (sučelje) nezavisna od implementacije.

• Visok stupanja konzistencije;sve aplikacije  mogu pozvati  samo operacije,  koje  su definirane  i  učahurene  unutar  objekta. Poslovna pravila su, također, dio objekta i ne zavise više o aplikaciji (u protivnome, imamo problem sinkronizacije konzistencije).

                       Promjene  u  poslovnim pravilima  vrše   se  u  definiciji   objekta,   a  ne  u  proceduralnom aplikacijskom kodu.

• Redukcija   cijene   za   novi   aplikacijski   razvoj   kroz  višekratnu  upotrebu  objekta  (koda).  Naime, definicije,  koje  su  registrirane  u  biblioteci  klasa,  mogu  se  ponovo  upotrijebiti  u  razvoju  novih aplikacija ili funkcija.

U daljem koristit ćemo sljedeće pokrate:Sustav za upravljanje bazom podataka (SUBP, DBMS),Sustav za upravljanje relacijskom bazom podataka (SURBP, RDBMS),Sustav za upravljanje hibridnom bazom podataka (SUHBP, HDBMS),Sustav za upravljanje objektno orijentiranom bazom podataka (SUOOBP, OODBMS),Sustav za upravljanje proširenom relacijskom bazom podataka (SUPRBP, ERDBMS).

Opis raznih pristupa u razvoju sustava za upravljanje bazom podataka dan je (slikovito) kao što slijedi.

(SUBP, DBMS) – pristupi 

        (SURBP, RDBMS) [Relacijsko sučelje , Relacijski stroj]

     

140

Page 145: Mirko Malekovic - Teorija Baza Podataka Skripta

                  (SUHBP, HDBMS) [OO sučelje , Relacijski stroj]

                            (SUOOBP, OODBMS)  [OO sučelje , OO stroj]

141

Page 146: Mirko Malekovic - Teorija Baza Podataka Skripta

   (SUPRBP, ERDBMS) [Relacijsko sučelje s OO ekstenzijama , Relacijski stroj s OO    ekstenzijama]

 

ZadatakObjasnite prikazane slike. Napomena: Iako se slika može interpretirati na puno načina ('slika vrijedi tisuće riječi', uključujući i pogrešne odnosno nejasne), temeljem karakteriziranih svojstava navedenih sustava, pokušajte 'pogoditi' pravu interpretaciju. 

142

Page 147: Mirko Malekovic - Teorija Baza Podataka Skripta

7.2. ODL

U   ovom   odjeljku   karakteriziramo   jezik     ODL   (Object   Definition   Language)   za   definiciju   sheme (strukture)  objektno  orijentirane  baze  podataka   (OOBP).  U sljedećem odjeljku  upoznat  ćemo se  s upitnim jezikom  OQL (Object Query Language) pomoću kojeg manipuliramo podacima u OOBP.Prvo definiramo pojam objekta.

• ObjektInstanca klase ili bilo što na što je primjenjiv koncept ili tip.

Koristeći ODL i  OQL, upoznat ćemo se sa sljedećim konceptima OOBP­a.

OOBP koncepti(1)       Identitet objekta     (oi)

(2)       Atributi

• Veze• Metode• Klase• Hijerarhija klasa i nasljeđivanje

ODL  koristimo za specifikaciju sheme (strukture)  OO baze podataka. Dobivena specifikacija prevodi se u deklaracije  SUOOBP. Kako  SUOOBP  (obično) koristi   C++, Javu ili   Smalltalk  kao primarni jezik, ODL  specifikacija se mora prevesti u deklaracije jednog od ovih jezika. Budući je   ODL  vrlo sličan ovim jezicima, prevođenje je gotovo direktno. Prevođenje u deklaracije konvencionalnih sustava za upravljanje relacijskom bazom podataka (SURBP) je složenije.Aplikacijska domena (AD)   sastoji se od objekata (entiteta), koji imaju jedinstvene identifikatore (oi) pomoću kojih jedan objekt razlikujemo od drugih. Kreiranje  oi  je stvar  SUOOBP .Organizacija informacije provodi se grupiranjem objekata u klase objekata. U klasu se uključuju slični objekti; objekti neke klase imaju ista svojstva, gdje su svojstva klase: atributi, veze i metode.

Deklaracija klase

interface < name > { < list of properties > }

Primjer 7.1 (deklaracija klase Film)1. interface Film { 2. attribute string naslov;3. attribute integer godina:4. attribute integer duljina;5. attribute enum Fil { boja, crnobijeli } tipfilma;

}; 

143

Page 148: Mirko Malekovic - Teorija Baza Podataka Skripta

Komentar(1)  deklarira   Film  kao klasu;(2)–(4)  deklariraju atribute atomskih (temeljnih) tipova;(5) deklarira atribut  tipfilma čiji je tip enumeracija tj. 

lista  Fil = {boja, crnobijeli}.   

Primjer 7.2 (deklaracija klase Glumac)

1. interface Glumac {2. attribute string ime;3. attribute Struct Addr {string ulica, string grad} adresa;

};

KomentarRed   (3)   specificira (složeni) atribut   adresa   čiji je tip   slog (record) koji se sastoji od dva atributa (polja) tipa  string.   

Veze su svojstva objekata koje nam kažu kako  je  neki  objekt  povezan s  drugim objektima  iste   ili različite klase.

Primjer 7.3 (deklaracije klasa Film, Glumac, Studio)(f1)   interface Film { (f2)   attribute string naslov;(f3)   attribute integer godina:(f4)   attribute integer duljina;(f5)   attribute enum Fil { boja, crnobijeli } tipfilma;(f6)   relationship Set<Glumac> glumci                             inverse Glumac :: glumiU;(f7)   relationship Studio vlasništvoOd                             inverse Studio :: vlasnik;         };      

(g1)   interface Glumac {(g2)   attribute string ime;(g3)   attribute Struct Addr {string ulica, string grad} adresa;(g4)   relationship Set<Film> glumiU                              inverse Film :: glumci;          };(s1)   interface Studio {(s2)   attribute string ime;(s3)   attribute string adresa;(s4)   relationship Set<Film> vlasnik                              inverse Film :: vlasništvoOd;          };

144

Page 149: Mirko Malekovic - Teorija Baza Podataka Skripta

KomentarRed  f6  specificira vezu  glumci u klasi  Film  koja svakom filmu pridružuje skup glumaca koji glume u dotičnom filmu; skup glumaca može biti i prazan. Veza  glumci ima inverz glumiU u klasi  Glumac; glumiU pridružuje svakom glumcu skup filmova u kojima dani glumac glumi.U klasi  Film imamo i vezu   vlasništvoOd   koja svakom filmu pridružuje najviše  jedan studio čije vlasnoštvo je  dani film; inverz od  vlasništvoOd  je  veza  vlasnik  u klasi  Studio  koja svakom studiu pridružuje skup filmova koji su njegovo vlasništvo.Analogno se interpretiraju preostale veze u deklaracijama klasa.   

• Mnogostrukost veze

Neka je zadana binarna veza (relacija)  v ⊆  K1 ×  K2  nad klasama  K1  i  K2. Inverzna veza veze  v , inv(v), je veza nad klasama  K2  i  K1  definirana ovako:

1. inv(v) ⊆  K2 ×  K1 2. (x, y) ∈ inv(v)  ako i samo ako  (y, x) ∈ v .

Za vezu  v ⊆  K1 ×  K2  kažemo da je mnogostrukosti  1 – 1ako je vezom  v  svakom objektu klase  K1 pridružen najviše  1  objekt klase  K2  i obrnuto vezom  inv(v)  je svakom objektu klase  K2  pridružen najviše jedan objekt klase  K1.

Za vezu  v ⊆  K1 ×  K2  kažemo da je mnogostrukosti  m – 1  ako je vezom  v  svakom objektu klase K1  pridružen najviše  1  objekt klase  K2  i obrnuto vezom  inv(v)  je svakom objektu klase  K2 pridruženo više (0, 1, 2,..) objekata klase klase  K1.

Za vezu  v ⊆  K1 ×  K2  kažemo da je mnogostrukosti m – n  ako je vezom  v  svakom objektu klase  K1 pridruženo više objekata klase  K2  i obrnuto vezom  inv(v)  je svakom objektu klase  K2  pridruženo više  objekata klase klase  K1.

NapomenaMnogostrukost   m – 1   je poopćenje mnogostrukosti   1 – 1 ,  a mnogostrukost   m –  n   je poopćenje mnogostrukosti 

 m – 1 .

Primjer 7.4 (mnogostrukost veze)Veza  glumci ⊆  Film ×  Glumac  je mnogostrukosti  m – n;veza  vlasnik ⊆  Studio ×  Film  je mnogostrukosti  1 – n;veza  vlasništvoOd ⊆  Film ×  Studio  je mnogostrukosti  m – 1 .   

NapomenaU  ODL­u  definiraju se jedino binarne veze; u ER jeziku možemo definirati  i veze višeg reda ( 3, 4,..).

145

Page 150: Mirko Malekovic - Teorija Baza Podataka Skripta

• Tipovi u  ODL­u

Skup  S :  {a, b};      (nema ponavljanja elemenata, uređaj nije bitan)   multiskup ili bag  B : {a, b, b, c};  (elementi se mogu ponavljati, uređaj nije bitan)lista  L : (a, b, b, c).    (elementi se mogu ponavljati, uređaj je bitan)

Bazični (temeljni) tipovi u ODL­u(B1)  Atomski tipovi: integer, float, character, character string, boolean, enumeration;(B2)  Interface tipovi; napr. Film, Glumac.         Strukturirane tipove gradimo (rekurzivnim) kombiniranjem primjenjujući sljedeće tipske konstrukte:

(T1 )   Skup. Ako je   T   bilo koji tip, onda je   Set<T>   tip koji se sastoji od svih konačnih skupova elemenata tipa T.

(T2)   Multiskup.   Ako je   T   bilo koji  tip, onda je   Bag<T>    tip koji se sastoji  od svih konačnih multiskupova elemenata tipa T.

(T3)   Lista.    Ako je   T   bilo koji  tip,  onda je   List<T>   tip koji  se sastoji  od svih konačnih lista elemenata tipa T.

(T4)   Niz (Array). Ako je   T   bilo koji tip, i  ∈ N, onda je   Array<T, i>   tip koji se sastoji od nizova (duljine  i) elemenata tipa T.

Pr.  Array(char, 5)   je karakter niz duljine 5 .

(T5)  Strukture. Ako su  T1, T2, .., Tn  bilo koji tipovi iF1, F2,.., Fn  imena polja, onda jeStruct St {T1 F1, T1 F2, .., Tn Fn}  tip koji se sastoji od struktura (slogova ili rekorda) sa  n  polja. Ime tipa je  St.Pr.  Struct Addr {string ulica, string grad}  je tip koji se sastoji od slogova s dva polja čiji tip je  string .

Tipove  (T1) – (T4)  zovemo kolekcijskim tipovima.

ODL  ograničenjaO1.   Tip atributa ne može biti interface;O2.  Tip veze ne može biti: atomski tip, kolekcija  atomskih tipova, strukturalni tip;O3.  Tip  atributa   i   tip  veze  ne  može  uključivati  kompoziciju  više  kolekcijskih   tipova.  Na  primjer, 

Set<Array<Glumac>>  nije dozvoljen.• Podklasa

Klasa   K1   je podklasa klase   K2 (klasa   K2   je nadklasa klase   K1) ako je svaki objekt klase   K1 ujedno i objekt klase  K2.

146

Page 151: Mirko Malekovic - Teorija Baza Podataka Skripta

Notacija :  K1 ⊆  K2           

Grafički prikaz :                                        K2

                                                                                                                                                       K1      

Motivacija za uvođenje podklase

Neka klasa  K2  može sadržavati objekte koji imaju specijalna svojstva koja nemaju svi članovi klase K2.

Zato te objekte stavljamo u podklasu  K1 . Objekti podklase   K1  nasljeđuju sva svojstva objekata iz K2, a imaju i svoja specijalna svojstva.

Primjer 6.5 (deklaracija podklase  Crtić  klase  Film)(c1)  interface Crtić : Film {(c2)  relationship Set<Glumac> glas;         };

KomentarCrtić nasljeđuje sva svojstva nadklase  Film; svojstvo (c2) ima smisla samo za podklasu  Crtić.  

Hijerarhija klasa (višekratno nasljeđivanje)

Primjer 7.6 (hijerarhija klasa)Neka je grafički zadana hijerarhija klasa 

                                                                      Film

                                    Romanca                                                                      Sudnica        

                                                                                         Romanca­Sudnica

147

Page 152: Mirko Malekovic - Teorija Baza Podataka Skripta

Podklasa  Romanca­Sudnica  ima dvije neposredne nadklase  Romancu i Sudnicu  od kojih nasljeđuje svojstva; konfliktna situacija je moguća u slučaju da neposredne nadklase sadrže isti atribut  A, gdje su tipovi  Tip(A) (u klasi Romanca) i  Tip(A) (u klasi  Sudnica)  različiti.

ProblemNeka je  A ∈ Romanca i  Tip(A) = enum K {sretan, žalostan}; neka je dalje  A ∈ Sudnica  i  Tip(A) = enum E {kriv, nijekriv}.Koji atribut nasljeđuje podklasa  Romanca­Sudnica ?

Rješenje konfliktne situacije

R1.  Specificirati koje je od dva svojstva primjenjivo na  podklasu (bolje odgovara situaciji).         Ako smo više zainteresirani o tome je li film završio sretno ili ne, onda ćemo u definiciji podklase 

zahtijevati nasljeđivanje iz nadklase  Romanca.

R2.   Ako smo zainteresirani za oba svojstva, onda dano svojstvo u jednoj od neposrednih nadklasa preimenujemo.

R3.  Zamijeniti konfliktna svojstva iz nadklasa novim svojstvom podklase.               Na primjer, umjesto svojstva   A = kraj (s odgovarajućim tipovima u nadklasama   Romanca i 

Sudnica), definiramo za podklasu  Romanca­Sudnica  novo svojstvo  B = kraj, gdje je  Tip(B) = integer (stupanj zadovoljenja krajem filma dobiven anketom gledatelja).

Ograničenja (uvjeti integriteta)

Primjer (ključ)interface Film (key (naslov, godina)){};

• Slaba klasaKlasa  K1  je slaba ako je barem jedan atribut njenog ključa dobiven iz druge klase  K2.

NapomenaSlabe  klase  ne  postoje   u    ODL­u,   jer   svaki  objekt   ima   svoj     oi   ,   tako  da  ne  postoji  potreba   za definiranjem ključa.

• Sadržaj klase (extent)    je skup objekata dane klase u danom trenutku vremena. To je u stvari relacija u relacijskom modelu.

148

Page 153: Mirko Malekovic - Teorija Baza Podataka Skripta

3 Metoda  je funkcija pridružena klasi. Funkcija djeluje nad objektima klase (argumenti funkcije); funkcija može imati i druge argumente tj. parametre.

Primjer 7.7 (proširenje klase Film sadržajem i metodama)

(f1)   interface Film (extent Filmovi key (naslov, godina))         { (f2)   attribute string naslov;(f3)   attribute integer godina:(f4)   attribute integer duljina;(f5)   attribute enum Fil { boja, crnobijeli } tipfilma;(f6)   relationship Set<Glumac> glumci                             inverse Glumac :: glumiU;(f7)   relationship Studio vlasništvoOd                             inverse Studio :: vlasnik;(f8)    float duljinaUsatima() raises (no NađenaDuljina);(f9)    glumciImena (out  Set<string>);(f10)  drugiFilmovi (in Glumac, out Set<Film>)                                  raises (no takavGlumac);           };

KomentarU klasi  Film  imamo tri metode tj. njihove signature:

(M1)   duljinaUsatima : Film → float ; nema ulaznih i  izlazni parametara.                           Argument (prikriveni)   je  objekt  klase   Film;  formula kako duljinaUsatima ‘radi’,   tj. 

implementacija ili kod nije dio   ODL deklaracije. Kod se definira koristeći domaćinski jezik (host).   Moguća   interpretacija   metode     duljinaUsatima:  koristeći   svojstva   objekta   (duljina) dobiva se, pretvaranjem minuta u sate, duljinaUsatima.

           Metoda ima jedan izuzetak; u slučaju da atribut duljina objekta iz klase  Film  nije definiran ili ima nekorektnu vrijednost, onda je rezultat  no NađenaDuljina.

(M2)  glumciImena : Film →        ;

                      kodomena   nije   definirana,   ali   imamo   jedan   izlazni   parametar   tipa   skup   stringova. Pretpostavljamo da se izlazni parametar računa tako da nam daje imena glumaca danog filma.

(M3)  drugiFilmovi : Film →    ;

                     kodomena nije  definirana,  ali   imamo jedan ulazni   i   jedan  izlazni  parametar    Glumac  i Set<Film>, respektivno. Moguća implementacija ove funkcije je kao što slijedi. 

149

Page 154: Mirko Malekovic - Teorija Baza Podataka Skripta

           Funkcija  drugiFilmovi  očekuje da je dani glumac (ulazni parametar) glumac danog filma; ako nije tako, onda se pojavljuje izuzetak   no takavGlumac. Ako je dani glumac ujedno glumac danog   filma,  onda  se   izlaznom parametar,  čiji   je   tip   skup  filmova,  pridružuje  kao  njegova vrijednost skup drugih filmova danog glumca.   

• Poopćenje (definicija signature metode)

Neka je  K  klasa, Tip(in) = Ul, Tip(out) = Iz.  Signatura metode  m  za klasu  K  je izraz

m : K ×  Ul → Kodomena ∪ Iz .

Skupovi  Ul, Kodomena, Iz  mogu biti i prazni (ne istovremeno).

150

Page 155: Mirko Malekovic - Teorija Baza Podataka Skripta

7.3. OQL   OQL  (Object Query Language) je jezik za manipulaciju podacima. Notacija je slična   SQL­notaciji. Pretpostavlja se da će OQL biti upotrijebljen kao ekstenzija nekog  OO domaćinskog (host) jezika (C++, Smalltalk, Java, Python). Manipulacija objektima ostvaruje se kombinacijom  OQL­upita i   iskaza domaćinskog   jezika.  Ovo  miješanje    OQL­upita     i     host­iskaza,     bez  eksplicitnog   transformiranja vrijednosti između dva jezika, prednost je u odnosu na   SQL   ugrađen u domaćinski jezik, gdje se, upravo suprotno, navedena transformacija mora eksplicirati.

Tipovi u  OQL­u

Tipovi se u   OQL­u grade slično kao u   ODL­u. Međutim, nema ograničenja na dubinu ugrađivanja konstruktora.

Varijable u  OQL­u  imaju deklaraciju nasljeđenu iz  ODL­a.

U  OQL­u  možemo trebati i konstante, koje se ne definiraju u  ODL­u, jer je  ODL  jezik za definiciju strukture.

Konstante u  OQL­u  konstruiramo primjenom sljedećih bazičnih (temeljnih) i tipskih konstruktora:

• Bazični tipovi

(B1)   Atomski tipovi: integer, float, character, string, 

           boolean:

(B2)   Enumeracije. Vrijednosti u enumeraciji su  deklarirane u  ODL­u. Bilo koja od ovih vrijednosti može biti upotrijebljena kao konstanta.

• Složeni tipovi

Složene tipove gradimo primjenom sljedećih tipskih konstruktora:

(k1)   Set(..)

(k2)   Bag(..)                                            kolekcijski tipovi

(k3)   List(..)

(k4)   Array(..)

(k5)   Struct(..)

151

Page 156: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 7.8 (konstante)Sljedeći izrazi su konstante:

2 Set(1, 2)3 Bag(1, 2, 2)4 List(1, 2, 2)5 Array(4; 2, 2, 1, 0)6 Struct(A: Set(1, 2), B: ‘’OK’’, C: List(1, 2, Set(1, 2))).   

Reprezentacija putaNeka je  o  objekt klase  K  i  s  neko svojstvo klase  K.Tada je  o.s  rezultat primjene svojstva  s  na objekt  o.Formalno,

                vrijednost atributa u  o  ako je  s  atribut   o.s  =      kolekcija objekata u vezi sa  o  ako je  s  veza                 rezultat primjene  s  na  o  ako je  s  metoda

Za ilustraciju  OQL­a  koristit ćemo  OO bazu podataka  OOBP :   Film, Glumac, Studio .

Primjer 7.9 (specifikacija puta)Neka je  F  varijabla tipa  Film. (p1)   izraz  F.naslov  predstavlja naslov filma  F; ako je          F = f1, onda je  F.naslov = f1.naslov tj. rezultat           predstavlja naslov filma  f1. (p2)   izrazom  F.duljinaUsatima()  dana je duljina filma          F  u satima. (p3)   izrazom  F.glumci  dan je skup glumaca filma  F;          skup glumaca određen je vezom  glumci. (p4)   Izraz  F.glumciImena(x)  predstavlja skup glumaca          filma  F; dobiveni skup pridružuje se izlaznoj            varijabli  x . (p5)   Izraz  F.vlasništvoOd.ime  označava ime onog           studija koji je vlasnik filma  F . 

Select – From – Where   izrazi u  OQL­u

Primjer 7.10U:  Odrediti godinu filma  ABC .

OQL(U):   Select  f.godina                       From Filmovi f                           Where f.naslov = “ABC”

152

Page 157: Mirko Malekovic - Teorija Baza Podataka Skripta

RA(U):   Π [godina](σ [naslov = ABC(Filmovi))  je rješenje u relacijskoj algebri  RA.   

Operatori uspoređivanja i logički operatori su isti kao u  SQL­u; umjesto  <>  pišemo  != .

Primjer 7.11

U:   Odrediti imena glumaca filma  ABC .

OQL(U):   Select g.ime

                       From Filmovi f ,  f.glumci g

                           where f.naslov = “ABC”   

Eliminacija ponavljanjaRezultat   upita   je   multiskup   tj.   relacija   s   ponavljanjem   (kao   u   SQL­u).   Eliminaciju   ponavljanja ostvarujemo pomoću  Distinct . Tada je rezultat upita skup.

Primjer 7.12U:   Odrediti imena glumaca u filmovima studija Croatia.

OQL(U):   Select Distinct g.ime                       From Filmovi f ,  f.glumci g                            Where f.vlasništvoOd.ime = “Croatia”   

Složeni tipovi u izlazuIzrazi u  Select  klauzuli mogu biti izgrađeni primjenom tipskih konstrukata.

Primjer 7.13U:   Odrediti parove glumaca koji imaju istu adresu.

OQL(U):   Select Distinct Struct(glumac1 : g1 ,  glumac2 : g2)    From Glumci g1 , Glumci g2        Where g1.adresa = g2.adresa  And  g1. ime < g2.ime

Tip rezultata upita jeSet<Struct G {Glumac : glumac1 , Glumac : glumac2}>,gdje je tip polja  glumac1  i  glumac2  nasljeđen od varijabli  g1  i  g2 ,koje su tipa Glumac .   

153

Page 158: Mirko Malekovic - Teorija Baza Podataka Skripta

Podupiti

Primjer 7.14Upit u  primjeru 6.12  možemo izraziti, koristeći podupit, ovako:

OQL(U) :Select Distinct g.ime    From       (Select f          From Filmovi f             Where f.vlasništvoOd.ime = “Croatia”) c ,   c.glumci g    

Uređenje rezultata

Rezultat upita je multiskup ili skup (ako koristimo Distinct).  Primjenom   Order By   dobivamo kao rezultat listu.

Primjer 7.15U:     Odrediti   listu   filmova studija  Croatia;   lista   treba  biti   uređena po  duljini   trajanja   i   naslovima filmova.

OQL(U):  Select f                     From Filmovi f                        Where f.vlasništvoOd.ime = “Croatia”                             Order By f.duljina , f naslov

Uređenja:  rastuće (ASC), padajuće (DESC); ako ništa ne specificiramo, pretpostavlja se ASC .   

Kvantifikatori  ∀   i  ∃

∀ For All x In S : P(x)Izraz je istinit ako i samo ako za svaki  x ∈ S  vrijedi svojstvo  P(x).

∃Exists x In S : P(x)Izraz je istinit ako i samo ako postoji  x ∈ S  takav da vrijedi svojstvo  P(x).

154

Page 159: Mirko Malekovic - Teorija Baza Podataka Skripta

Primjer 7.16 (∀)U:   Odrediti glumce koji glume jedino u filmovima  studija Croatia.

OQL(U) :  Select g                      From Glumci g                         Where For All f In g.glumiU :                               f.vlasništvoOd.ime = “Croatia”   

Primjer 7.17 (∃ )U:   Odrediti glumce filmova studija Croatia.

OQL(U) : Select g                      From Glumci g                         Where Exists f In g.glumiU :                               f.vlasništvoOd.ime = “Croatia”   

ZadatakJe li glumci, koji trenutno ne glume u niti jednom filmu (s obzirom na  OOBP), pripadaju rezultatima primjera∀  i  primjera∃  ?

Agregacijski operatori

Avg, Count, Sum, Min, Max .

Domene operatora su kolekcije odgovarajućeg tipa.

Count :  T → Integer ,    gdje je  T  proizvoljan tip;Avg, Sum : A → float ,   gdje je  A  aritmetički tip;min, Max : Alf → Alf ,   gdje je  Alf  alfanumerički tip tj.                                          bilo koji uređen tip.

Primjer 7.18U:   Odrediti prosječnu duljinu svih filmova.

OQL(U):   Avg(Select f.duljina                               From Filmovi f)          

155

Page 160: Mirko Malekovic - Teorija Baza Podataka Skripta

ZadatakKomentirajte upitOQL(U):  Avg(Select Distinct f.duljina                               From Filmovi f)   

Primjer 7.19        U:   Odrediti najduži od svih filmova.

OQL(U):   Max(Select f.duljina                               From Filmovi f)    

Group­By operator

Primjer 7.20U:   Odrediti ukupnu duljinu filmova za svaki studio i svaku godinu.

OQL(U):Select s, g, sumduljina : Sum(Select p.f.duljina                                                       From partition p)    From Filmovi f        Group By s : f.vlasništvoOd ,  g : f.godina

KomentarPartition sadrži sve filmove za dani studio i danu godinu.   

Having  klauzulaPostavlja se uvjet na grupu objekata.

Primjer 7.21U:   Odrediti ukupnu duljinu filmova za svaki studio i svaku godinu, ali pod uvjetom da je studio te 

godine producirao barem jedan film čija je duljina veća od 120 minuta.

OQL(U):   Select s, g, sumduljina : Sum(Select p.f.duljina                                                       From partition p)    From Filmovi f        Group By s : f.vlasništvoOd ,  g : f.godina            Having Max(Select p.f.duljina                                       From partition p) > 120   

156

Page 161: Mirko Malekovic - Teorija Baza Podataka Skripta

Skupovni operatori

Union, Intersect, Except

Primjer 7.22U:   Odrediti sve filmove u kojima glumi R. Bašić, a koji nisu vlasništvo studija Croatia.

OQL(U):   (Select distinct f                        From Filmovi f , f.glumci g                            Where g.ime = “R. Bašić”)                    Except                     (Select Distinct f                          From Filmovi f                              Where f.vlasništvoOd.ime = “Croatia”)     

• Definicije  Union, Intersect, Except  na multiskupovimaNeka su  M1  i  M2  multiskupovi u kojima se objekt  o  pojavljuje  n1, n2  puta respektivno. Tada

• o  ima  n1 + n2  pojavljivanja u  M1 Union M2;• o  ima  Min{n1, n2}  pojavljivanja u  M1 Intersect M2;

• o  ima  n1 – n2 > 0  pojavljivanja u  M1 Except M2;ako  n1 – n1 < 0, onda  o  nema pojavljivanja u  M1 Except M2.   

Pridruženje i kreiranje objekata u  OQL­u

U ovom odjeljku promatramo vezu   OQL­a   i njegovog domaćinskog jezika. Pretpostavljamo da je domaćinski jezik  C++. Varijable domaćinskog jezika zvat ćemo d­varijable.

Pridruženje vrijednosti  d­varijablamaU principu moguće je pridružiti bilo kojoj d­varijabli, odgovarajućeg tipa, vrijednost koja je rezultat OQL­izraza.

Primjer 7.23• Neka je  Tip(noviFilmovi) = Set<filmovi>.

Izrazom  noviFilmovi = Select Distinct f                                                    From Filmovi f                                               Where f.godina >= 1950;

pridružili smo varijabli  noviFilmovi  skup svih filmova proizvedenih poslije 1950. godine.   

157

Page 162: Mirko Malekovic - Teorija Baza Podataka Skripta

• Neka je  Tip(y) = Bag<Filmovi>.

Izraz     noviFilmovi = Select Distinct f                                                    From Filmovi f                                               Where f.godina >= 1950;

nije korektan (type error).  

Izdvajanje elemenata kolekcije

Primjer 7.24(a) Neka je  Tip(x) = Filmovi.

Izrazom  x = Element(Select f                                         From Filmovi f                                            Where f.naslov = “ABC”;

pridružujemo varijabli film  ABC .

(b)   Izraz  x = Select f                             From Filmovi f                                 Where f.naslov = “ABC”;

         nije korektan (type error).   

Dobivanje svih elemenata kolekcije

Primjer 7.25• Dobiti listu svih filmova klase  Film.

RješenjeNeka je  Tip(flista) = List<Filmovi>.        Izrazom  flista = Select f                                        From Filmovi f                                           Order By f.naslov , f.godina;

pridružili smo listu filmova varijabli  flista. 

• Napisati  C++ funkciju koja tiska naslov, godinu i  duljinu svakog filma klase  Film.

158

Page 163: Mirko Malekovic - Teorija Baza Podataka Skripta

Rješenje(e1)  flista = Select f                         From Filmovi f                             Order By f.naslov , f.godina;(e2)   brojfilmova = Count(Filmovi);

(e3)   for (i = 0 ;  i < brojfilmova;  i++) {

(e4)   film = flista[i];

(e5)   print  << film.naslov <<  “”   “”  << film.godina <<

              “”   “”  << film.duljina <<  “” /n “”;

          }.   

Kreiranje novih objekata

Primjenom   OQL­izraza   kreirali smo nove objekte (rezultat) temeljem postojećih objekata. Objekte možemo kreirati   i  na eksplicitan  način   tako  da  postavljamo konstante   i  druge  izraze  u kolekcije   i strukture.

Primjer 7.26

• Neka je  Tip(x) = Struct(A : integer ,  B : integer)

Izrazom  x = Struct(A : 3 ,  B : 5)  kreiran je objekt

(slog)  (A : 3,  B : 5)  i pridružen varijabli  x .

• Neka je  Tip(y) = Bag(T(x)).

Izrazom  y = Bag(x, Struct(A : 0 , B : 1))  kreiran je

objekt (multiskup) 

Bag(Struct(A : 3 ,  B : 5), Struct(A : 0 , B : 1)), koji

je pridružen varijabli  y .   

Primjer 7.27

Kreirajmo objekt (film)  [“”A””, 1960, 220, Croatia], koji treba dodati klasi  Film  i pridružiti varijabli x .

159

Page 164: Mirko Malekovic - Teorija Baza Podataka Skripta

Rješenje

Neka je  Tip(x) = Film, Tip(y) = string, y = “”Croatia””.

Rješenje je dano izrazom

x = Film(naslov : “”A””, godina : 1960, duljina : 220,

                vlasništvoOd : y)

160

Page 165: Mirko Malekovic - Teorija Baza Podataka Skripta

ZADACI

1.  Napišite  sadržaj klasa objektno orijentirane baze podataka,  koju smo razmatrali  u primjerima iz odjeljka 6.3,  OOBP :   Film, Glumac, Studio .

2.  Neka je OOBP iz zadatka 1. Napišite sadržaje odgovora na upite iz primjera 6.10, 6.11,.., 6.22.

3. Napišite niz upita koji su strukturalno slični upitima iz primjera 6.10, 6.11,.., 6.22, a zatim odredite sadržaje odgovora zadanih upita. 

161

Page 166: Mirko Malekovic - Teorija Baza Podataka Skripta

LITERATURA

[JDU] J. D. Ullman : Principles of Database and  Knowledge Base Systems, vol. I,  Computer  Science Press, 88.

[GMUW]    H.   Garcia­Molina,   J.   D.   Ullman,   J.   Widom,   Database   Systems:   The   Complete   Book, Prentice Hall, 2002.

[AHV] S. Abiteboul, R. Hull, V.Vianu: Foundations of Databases, Addison­Wesley, 2002.

[ACPT]   P.  Atzeni,   S. Ceri, S. Paraboschi, R. Torlone:   Database systems: Concepts, Language and Architectures, Mc Graw Hill, 1999.

[CJD] C. J. Date:  An Introduction to Database Systems, Addison­Wesley, 2004.

[DD]     C.   J.  Date,   H.   Darwen:   Foundation   for   Future   Databases   Systems:   The   Third   Manifesto, Addison­Wesley, 2000.

[DDL]   C. J.   Date, H. Darwen, N. A. Lorentzos: Temporal Data and the Relational Model, Morgan Kaufman, 2003.

[TC]  R. A. Mata­Toledo, P. K. Cushman:  Fundamentals of Relational  Databases, Schaum’s Outline Series, McGraw­Hill, 2000.

Izvori na internetu:

http://www.rational.com/uml , http://www.dbpd.com ,  http://www.BRCommunity.com , http://www.dbdebunk.com , http://www.multiagent.com

Časopisi

•  Journal of  the Association for Computing Machinery (ACM)[Database Theory,  Deductive System,  Artificial  Intelligence,  Logic in Computer Science, ...]

• ACM  Transactions on Database Systems (TODS)

• Information Systems     [Data Bases:  Their Creation,    Management, and  Utilization ] 

• The Journal of  Logic Programming [Logic Programming, Deductive Databases,  Reasoning, ..]

• Journal of Automated Reasoning [Automated Reasoning,  Deductive Databases,  Database theory,...]

162

Page 167: Mirko Malekovic - Teorija Baza Podataka Skripta

• Data Mining and Knowledge Discovery     [Data and Knowledge Representation, Data Modeling, Data Warehousing, OLAP,..]

• Journal of Intelligent Information Systems     [Integrating Artificial Intelligence and Database Technologies]

163