1 / 54

Logicke/deduktivne baze podataka

Logicke/deduktivne baze podataka. Kruna Matijevic Jelena Pantic Ljubomir Drakulovic. Sredinom 80tih godina, u zajednici koja proucava baze podataka, pocinje trend istrazivanja baza podataka baziranih na logici

oliver
Télécharger la présentation

Logicke/deduktivne baze podataka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logicke/deduktivne baze podataka Kruna Matijevic Jelena Pantic Ljubomir Drakulovic

  2. Sredinom 80tih godina, u zajednici koja proucava baze podataka, pocinje trend istrazivanja baza podataka baziranih na logici Izrazi kao sto su logical database, inferential DBMS, expert DBMS, deductive DBMS, knowledge base, knowledge base management system (KBMS), logic as a data model, recursive query processing, itd, su poceli da se pojavljuju u istrazivackoj literature nije uvek lako da se povezu takvi izrazi I ideje koje predstavljaju sa familijarnim termima I konceptima baza podataka Ovo predavanje je pokusaj da se objasne logicki sistemi iz ugla nekoga ko je upoznat sa tradicionalnim relacionim bazama Pokusacemo da objasnimo svaku ideju u tradicionalnim terminima, gde je to moguce

  3. 1984 Reiterov rad. • Model – teoretski pristup bazama: • Eksplicitno zadate tabele I n-torke; • Izvrsavanje upita se svodi na procenjivanje istinitosne vrednosti neke formule. • Uvodi novi pogled na baze: dokazno – teoretski: • Baza kao skup aksioma, • Izvrsavanje upita kao zakljucivanje. • Primer: • SPJX WHERE SPX.KOL > 250 • PROCESIRANJE NA TRADICIONALNI I NA NOVI NACIN. • Prednosti dokazno-teoretske interpretacije baza podataka: • Uniformnost predstavljanja; • Uniformnost operacija; • Semanticko modelovanje; • Izvedene aplikacije.

  4. Deduktivne aksiome • Pravilo zakljucivanja. Iz datih, izvodimo nove cinjenice. • Npr: • Anne je Bettina majka. • Betty je Selijina majka. • Po ociglednoj deduktivnoj aksiomi : Anne je Selijina baka. • Neka je u sistemu relacija sa 2 kolone : Majka I Cerka u koju su smesteni parovi (Anne, Betty) I (Betty , Selia) • If mother_of (x,y) and mother_of (y,z) then grandmother_of(x,z) • Deduktivna aksioma – definicja pogleda,npr: • Var grandmother of view { • Mx.mother as grandmother, • My.daughter as granddaughter} • Where mx.daughter = my.mother

  5. Prethodni upit u terminima ovog pogleda: • Gx.grandmother where gx.granddaughter= name {Selia} • Gx.granddaughter where gx.grandmother = name{Anne}

  6. Iskazni racun • Buleanska algebra • Distributivni zakoni: • f AND (g OR h) <=>(fAND g)OR(f AND h) • F OR (g AND h) <=> (f OR g) AND (f OR h) • De Morganovi zakoni • NOT (f AND g) <=> (NOT f) OR (NOT g) • NOT (f OR g) <=> (NOT f) AND (NOT g) • Logika – formalni metod rezonovanja. • Izvrsavanje formalnih zadataka. • Iskazni I predikatski racun : specijalni slucajevi logike. • CALCULUS: odnosi se na neki sistem simbolickog izracunavanja, u poslebnom slucaju izracunavanja istinitosne vrednosti.

  7. Termi I formule • Termi : konstante, tvrdnje. • Term se definise kao tvrdnja koja ukljucuje konstante I : • Ili ne ukljucuje Buleanske operatore ili se nalazi u zagradama • Ili je TRUE ili FALSE • Primer: • Snabdevac S1 se nalazi u Londonu. – jeste term. • Snabdevac S1 isporucuje neki deo p. (p je promenljiva) -nije term. • Formule – koriste se u bazama podataka kao upiti. • Formalna definicija: • <formula> ::= <term> | NOT<term> | • <term> AND <formula> | • <term> OR <formula> | • <term> => <formula>; • <term> ::= <atomic_formula> | (<formula>)

  8. Procenjivanje formula u skladu sa istinitosnim vrednostima terma I tablicom Buleanskih operatora. • <Atomic_formula> • => kao logicka implikacija, vazi f=>g <=>(NOTf)OR g • Prioritet buleanskih operatora – smanjivanje broja zagrada • Iskaz – samo <formula> po prethodnoj definiciji.

  9. Pravila izvodjenja za iskazni racun • Svako tvrdenje je oblika |= f=>g. • |= (f AND g) => f (uproscavanje) • |= f => (f OR g) (dodavanje) • |= ((f => g) AND (g => h)) => (f=>h) (hipoteticki silogizam) • |= ((f OR g) AND NOT f) => g (disjunktivni silogizam) • |= ((f OR g) AND (NOT f OR h)) => (g OR h) (rezolucija) • |= (f AND (f=>g)) => g (modus ponens) • NOT(f OR g) <=> (NOT f) AND (NOT g) • f => g <=> (NOT f) AND (g) • Dokazivanje je zapravo utvrdjivanje da li je g logicka posledica nekog niza formula (zakljucak I premise) • f1,f2,…,fn |- g • Uzastopna primena pravila izvodjenja na pocetne I na tako izvedene formule, tzv ulancavanje unapred.

  10. Vrste dokazivanja • usvajanje premise : ako je g oblika p=>q, usvojicemo dodatnu premisu p I dokazati da se iz osnovnih premisa I p izvodi q. • lancanje unazad: umesto direktnog dokazivanja da vazi p=>q, dokazacemo da vazi kontrapozicija : NOT q => NOT p; • svodjenje na kontradikciju tj umesto da dokazujemo da vazi p => q, pp da vaze I p I NOT q I odatle izvesti kontradikciju; • Rezolucija: Ona nam dozvoljava da izbacimo medjuformule, tj ako su nam date f OR g I NOT g or h, mozemo odbaciti g I NOT g, I izvesti formulu f OR h. • Primer : • Hocemo da ustanovimo da li je sl. Dokaz valjan : • A => (B=>C), • NOT D OR A, • B|- D=>C. • (A,B,C I D su formule). • Pocinjemo sa usvajanjem negacije zakljucka kao dodatne premise, td sada imamo: • A =>(B => C) • NOT D OR A • B • NOT (D => C)

  11. Ove formule su implicitno u konjunkciji. • Svaki red prevodimo u KNF(2.I 3. su vec u trazenom obliku). • NOT A OR NOT B OR C • NOT D OR A • B • D AND NOT C • Razbijamo eksplicitne konlinkcije na njene operande: • NOT A OR NOT B OR C • NOT D OR A • B • D • NOT C • Odavde primenjujemo rezoluciju I dobijamo: • Rezolucijom po formuli A: • NOT D OR NOT B OR C • B • D • NOT C

  12. Primenom rezolucije na NOT B I B, dobijamo : • NOT D OR C • D • NOT C • Daljom primenom na D I NOT D: • C • NOT C • Finalnom primenom dobijamo prazan skup [] ,tj kontradikciju primenom svodjenja na apsurd.

  13. Predikatski racun • razlika izmedju iskaznog racuna i predikatskog racuna: • predikatski racun omogucava da formule sadrze promenjljive I kvantifikatore • izjava “ dobavljas SI nabavlja deo P” I “ neki dobavljac S nabavlja deo P” nisu ispravne formule iskaznog racuna ali jesu ispravne formule predikatskog racuna. • Tako, predikatski racun nam omogucava osnovu za izrazavanje upita • kao sto je npr “koji delovi se dostavljaju od nabavljaca SI” ili “naci nabavljace koji isporucuje neki deo” ili “naci nabavljace koji ne isporucuju neki deo uopste”

  14. Predikati • predikat je bulova funkcija, tj. funkcija koja za odgovarajuce zadate argumente za svoje parametre, vraca ili TACNO ili NETACNO • npr “>(x,y)” – ili lakse napisano “x>y”, je predikat sa dva parametra, x i y • Predikat koji uzima n argumenata se zove predikat n-tog reda • Predlog moze biti posmatran kao nulti predikat- on nema parametre

  15. Zgodno je da se pretpostavi da predikati koji odgovaraju = > <, itd, su ugradjeni (tj, da su deo formalnog sistema koji opisujemo ) • To nam omogucava da izrazi koji ih koriste mogu biti napisani konvencionalnim putem • Takodje , da bude moguce da korisnici definisu I svoje predikate • Upravo, to je cela poenta: cinjenica je, u izrazima relacionih baza, korisnicki definisan predikat odgovara korisnicki definisanoj relaciji (tabeli).

  16. Tako na primer, tabela nabavljaca S, moze biti posmatrana kao predikat sa cetri parametara S#, sname, status I grad. • Dalje, lakse je da se usvoji ocigledna skracena notacija- izrazi s(s1, smith, 20, london) I s(s6, white, 45, rome)- predstavljaju instance tog predikata • Neformalno, mozemo da posmatramo takve predikate – zajedno sa bilo kojom primenjljivom integritetnom zabranom, koje su takodje predikati- definisanjem sta relaciona baza ”znaci ”.

  17. Dobro formulisane formule • Sledeci korak je da se prosiri definicija formule. • Da bi se izbegla konfuzija sa formulama iz pretnognog dela (koje su ustvari specijalan slucaj), prebacujemo se na izraz dobro formulisane formule(well formed formulas- wff, cita se weff), • primer uproscene wff sintakse: <wff>::= <term> | NOT (<wff>) |(<wff>)AND(<wff>) |(<wff>)=> (<wff>) |EXISTS <var name>(<wff>) |FORALL <var name>(<wff>) <term> ::=(NOT)<pred name>((<argument commalist>))

  18. Poenta • <term> je jednostavno moguce negirana “predikatska instanca” • Svaki <argument> mora biti konstanta, ime promenljive ili poziv funkcije, gde je svaki argument poziva funkcije constanta ili promenljiva, ili poziv funkcije. • <argument commalist> I (opciono) odgovarajuce zagrade su potrebne za nulti predikat. • funkcije (nad I iznad bulovih funkcija koje su predikati ) su dozvoljene da bi dozvolile wff-u da ukljuci racunske izraze kao sto su “+(x,y)”- lakse napisano “ x + y”- itd • usvajamo uobicajna pravila za bulove operatore (NOT pa AND, pa OR, pa => ) da bi smanjili broj potrebnih zagrada za izrazavanje zeljenog reda procene. • pretpostavlja se da smo upoznati sa kvantifikatorima EXISTS I FORALL. • Ovde nas zanima samo first-order predikatski racun, koji bazno znaci da (a) nemamo “predikatske promenljive” (promenljive cije dozvoljene vrednosti su predikati), I samim tim (b) predikati ne mogu sami da budu izlozeni kvantifikaciji

  19. de Morganov zakon moze biti generalizovan da bi se primenio na kvantifikovan wff, kao sto je prikazano NOT (FORALL x (f)) = EXISTS x (NOT (f)) NOT (EXISTS x (f)) FORALL x (NOT (f)) • u zadatom wff, svaka referenca na promenljivu je ili slobodna ili vezana. Referenca je vezana akko • (a) se pojavljuje odmah posle EXISTS ili FOREALL ili • (b) nalazi se u opsegu kvantifikatora i oznacava primenljivu kvantifikovanu promenljivu • Referenca na promenljivu je slobodna akko nije vezana • zatvoreni wff je onaj koji ne sadrzi slobodne reference promenljivih

  20. Interpretacije I modeli • Sta wff znaci? • Da bi dali formalni odgovor na ovo pitanje, uvodimo notaciju interpretacije. • Interpretacija wff je definisana na sl. nacin: • prvo, specifiramo univerzum nad kojim ce wff biti interpretirani. Drugim recima, specifiramo preslikavanje izmedju • dozvoljenih konstanti iz formalnog sistema(domen promenljivih, u terminu relacionih baza) I • objekata “iz stvarnog sveta”. Svaka pojedinacna konstanta odgovara tacno jednom objektu u univerzumu • drugo, specifiramo znacenje za svaki predikat u terminu objekata u univerzumu • trece, takodje specifiramo znacenje za svako funkciju u terminu objekata u univerzumu • onda se interpretacija sastoji od kombinacije • univerzuma • preslikavanje individualnih konstanti u objekte iz tog univerzuma, plus • definisano znacenje za predikate I funkcije tog univerzuma

  21. uzecemo primer: neka univerzum bude skup brojeva {0,1,2,3,4,5}; • neka konstanta 2 odgovara objektu u tom univerzumu na ocigledan nacin • neka predikat “ x > y ” bude definisan na uobicajen nacin • Sada mozemo da dodelimo istinitosne vrednosti za wff kao sto su npr:

  22. Primeticemo, da su I druge interpretacije moguce. Npr, mozemo da specifiramo univerzum da bude skup sigurnosnih nivoa: • Predikat “>” bi sad mogao da znaci “vise siguran od” • Sada shvatamo da su dve moguce interpretacije koje su date, izomorfne, tj moguce je da se podesi 1-1 preslikavanje izmedju njih, • na dubljem nivou su te dve interptretacije ustvari jedna te ista. • Ali mora biti jasno da mogu da postoje interpretacije koje koje su razlicite

  23. Npr mozemo ponovo da posmatramo univerzum od 0 do 5, ali da definisemo “>” da znaci jednako. • Naravno, to bi verovatno izazvalo dosta konfuzije, ali imamo i tu mogucnost • tako bi prvi wff u listi (“2>1”) vracao vrednos false umesto true. • dve interpretacije mogu biti stvarno razlicite u svakom smislu, a opet da daju iste istinitosne vrednosti za zadate skupove od wff-a • svi wff-ovi o kojima smo raspravljali su bili zatvorenog tipa. • uvek je moguce da se dodeli specificna istinitnosna vrednost za zatvoreni wff • istinitosna vrednost otvorenog wff ce zavisiti od vrednosti koje su dodeljene slobodnim promenljivama. • Npr otvoreni wff • x>3

  24. Sada definisemo model od skupa od (obavezno zatvorenog) wff da bude interpretacija za koju svi wff-ovi u skupu dodeljuju vrednost TACNO. Dve interpretacije smo dali za cetri wff • u uslovima brojeva od 0 do 5, to nisu modeli tih wff-ova, zato sto neki wff-ovi su dodelili false pod tom interpretacijom. Suprotno, prva interpretacija(u kojoj je “>” bila definisana “kako treba”) bi imala model za taj skup wwf-ova:

  25. Primeticemo konacno, posto za zadat skup wff moze imati vise interpretacija u kojima su svi wff TACNI, onda moze imati i vise modela (generalno ). • To je moguce zato sto u modelno-teoretskom pogledu- baza podataka je samo skup wff-ova

  26. Forma Clausa • Svaku formulu predikatskog racuna WFF mozemo konvertovati u formu klauze • Proces konverzije se odvija na sledeci nacin: • Neka je dat primer WFF formule • Forall x(p(x) and exists y(forall z(q(y,z)))),gde su p,q predikati a x,y,z su promenljive • Eliminacija “=>” • De Morganovi zakoni I primena pravila za not • Prenex normalna forma forall x(exists y(forall z(p(x) and g(y,z)))) • Exists v(r(v)) je ekvivalentno sa r(a),gde je a nepoznata konstanta forall u(exists v((s(u,v))) je ekvivalentno sa forall u(s(u,f(u))),gde je f nepoznata funkcija f Dakle,sledeci korak je elimnacija egzistencijalnog kvantifikatora forall x(forall z(p(x) and q(f(x),z)))

  27. Forma clausa – nastavak: • Izostavljanje univerzalnog kvantifikatora p(x) and q(f(x),s) • WFF pretvoriti u konjuktivnu normalnu formu • Napisati svaku klauzu u posebnoj liniji I izostaviti and

  28. Dokazno- teoretski pogled baza podataka • Klauza je izraz oblika • gde su A I B sve termi oblika ovde je r predikat, a x1,x2,…,xt su argumenti tog predikata • Sad razmatramo dva bitna specijalna slucaja ove generalne konstrukcije • m=0 , n=1 Ovaj slucaj moze biti pojednostavljen na samo =>B1 Ili drugim recima, (izbacivanjem simbola implikacije) na samo r (x1,x2,…,xt), za neke predikate I neke skupove argumenata x1,x2,…,xt Ako su x-ovi konstante, klauzula predstavlja baznu aksiomu, tj to je izjava koja je uvek tacna.

  29. 2) m>0 ,n=1 U ovom slucaju klauza ima oblik A1 AND A2 AND … AND Am => B I moze biti posmatrana kao deduktivna aksioma Alternativno, takva klauza moze biti posmatrana kao definisuca za integritet ogranicenja – relaciono ogranicenje. Pretpostavimo da nabavljac S ima samo dva atributa, S# I grad Onda klauza S (s,c1) AND S (s,c2) => c1 = c2 Izrazava ogranicenje da je city funkcionalno zavistan od S#

  30. Prvo, tradicionalan pogled na bazu podataka moze biti posmatran kao modelno-teoretski • Baza podataka se posmatra tako da sadrzi kolekciju eksplicitno imenovanih relacija, gde svaka sadrzi skup eksplicitnih n-torki, zajedno sa eksplicitnim skupom integritetnih konstanti • To je percepcija koja moze biti karakterizovana kao modelno-teoretska, kao sto cemo objasniti: • Domeni sadrze vrednosti koji treba da predstavljaju odredjene objekte u “stvarnom svetu” (preciznije, u nekim interpretacijama). One dakle odgovaraju univerzumu • Relacije predstavljaju skup predikata ili otvoren wff koji treba da bude interpretiran nad tim univerzumom • Npr relacija SP predstavlja predikat “dobavljac S# dostavlja deo P# u kolicini QTY” • Svaka n-torka u datoj relaciji predstavlja instancu od odgovarajuceg predikata; tj, predstavlja predlog (zatvoren wff- ako nema promenljive) koji je nedvosmisleno tacan u univerzumu

  31. Integralne konstante su otvoren wff, interpretiran nad istim univerzumom. • N-torke I integritetna ogranicenja mogu zajedno biti posmatrani kao skup aksioma koje definisu odredjenu logicku teoriju • Posto su sve te aksiome tacne u interpretaciji, onda po definiciji je ta interpretacija model te logicke teorije. • Treba primetiti da model ne mora da bude jedinstven • Pa je u pogledu teoretskog modela, samim tim, “znacenje ” baze podataka model • Ima mnogo mogucih modela, ima I mnogo znacenja, bar u pricipu. • Dalje, upit koji se obradjuje u pogledu teoretskog modela je u osnovi proces koji obradjuje odredjeni otvoreni wff da bi otkrio koje vrednosti od slobodnih promenljivih u tom wff cine da wff odredi TACNO unutar modela

  32. neophodno je da se usvoji druga perspektiva, ona u kojoj je baza podataka ekspicitno posmatrana kao odredjena logicka teorija, tj. kao skup aksioma. • “znacenje” baze podataka onda postaje, precizno, kolekcija svih TACNIH izjava koje mogu biti dedukovane iz tih aksioma. Ovo je dokazni-teoretski pogled. • U ovom pogledu, procena upita postaje proces dokazivanja teoreme

  33. razlika izmedju modelnog I dokazno-teoretskog pogleda je: • baza podataka moze imati vise “znacenja” u modelno-teoretskom pogledu, dok obicno ima tacno jedno “znacenje” u dokazno-teoretskom delu- osim ako • (a) kao sto je ukazano ranije, da je jedno znacenje ustvari kanonsko znacenje u modelno-teoretskom slucaju, I u bilo kom slucaju • (b) efekat da postoji samo jedno znacenje u dokazno-teoretskom slucaju prestaje da vazi, generalno, ako baza podataka ukljucuje bilo koju negativnu aksiomu.

  34. Aksiome za zadatu bazu podataka (dokazno-teoretski pogled) mogu biti sumarizovane • bazne aksiome, koje odovaraju vrednostima u domenu i n-torke u baznim relacijama. Ove aksiome grade ono sto ponekad zovemo extensional database • “aksioma o kompletnosti” za svaku relaciju, koja izjavljuje neuspeh ili u suprotnom uspeh pojavljivanja n-torke u relaciji • aksiome sa “jedinstvenim imenom”, svaka konstanta ima unikatno ime • aksioma “zatvorenog domena”, ne postoji konstanta van domena baze podataka • skup aksioma

  35. principijelne razlike izmedju modelno teoretskog I dokazno teoretskog pogleda • sa cisto pragmatickog gledista, nema puno razlike • aksiome dokazno teoretskog pogleda, imaju odredjene pretpostavke koje su implicitne u tom modelu • neophodno je specificiranje dodatnih aksioma eksplicitno da bi bili u mogucnosti da primenimo dokazne tehnike • lista aksioma ne pominje ogranicenje integriteta, jer je ta ogranicenja pretvaraju u deduktivni DBMS • Dokazno- teoretski pogled ima odredjenu eleganciju • pruza osnovu za lakse resavanje problema sa kojima relacioni sistemi imaju problema, npr “nabavljac S6 je iz Pariza ili Rima”, ili rekurzivnim upitima • dokazno teoretski pogled pruza bolju i intuitivniju semantiku

  36. Deduktivni sistemi baza podataka • Podrzavaju dokazno-teoretski oblik baza. • Dedukuju nove podatke iz postojecih. • INTENSIONAL DATABASE + EXTENSIONAL DATABASE • Predstavljamo nasu snabdevac-proizvod bazu kao deduktivnu: • S# (S1)NAME (SMITH)INTEGER (5)CHAR (LONDON) • S# (S2)NAME (JONES)INTEGER (10)CHAR (PARIZ) • S# (S3)NAME (BLAKE)INTEGER (15)CHAR (RIM) • S# (S4)NAME (CLARK) • Itd… • Skup osnovnih aksioma za n-torke iz baznih relacija : • S(s1, smith, 5, London); • P(p1, nut,red, 12, London) itd.

  37. Deduktivne DBMS primenjujemo na postojece baze konstruisane na standardni nacin. • Prekrseni uslovi integriteta povlace nekonzistentan sistem aksioma, • Atributi : • S (s,sn,st, sc) => S# (s ) AND NAME (sn) AND INTEGER (st) AND CHAR (SC) • P(P,PN,PL,PW,PC) => P# (P) AND NAME (PN) AND COLOR (PL) AND WEIGHT(PW) AND CHAR(PC) Itd…

  38. Pravila koja se primenjuju na kljuc su u obliku: • S (s,sn1,st1,sc1) and S(s,sn2,st2,sc2) => • Sn1 = sn2 AND • St1 = st2 AND • Sc1 = sc2 • Za strani kljuc: • SP (s,p,q) => • S (s,sn,st, sc) AND • P(P,PN,PL,PW,PC) i pri cemu pretpostavljamo da se promenljive koje se javljaju na levoj ali ne I na desno strani implikacije egzistencijalno kvanifikovane, dok su one sa desne strane univerzalno kvantifikovane. • Uvodimo nove deduktivne aksiome u nasu bazu: • S (s,sn,st,sc) AND st>15 =>GOOD_SUPPLIER (s,st,sc) • S (sx,sxn,sxt,sc) AND S(sy,syn,syt,sc) => SS_COLOCATED(sx,sy) • S(s,sn,st,c) AND P (p,pn,pl,pw, c) => SP_COLOCATED (s,p)

  39. Relaciona promenljiva PART_STRUCTURE: koji delovi px sadrze delove py kao svoje komponente 1.reda • PART_STRUCTURE (px,py)=> P(px,xn,xl,xw,xc) AND P(py,yn,yl,yw,yc). Rekurzivna definicija: • PART_STRUCTURE(px,py)=>COMPONENT_OF(px,py) PART_STRUCTURE(px,pz) AND COMPONENT_OF (pz,py) =>COMPONENT_OF(px,py) , Pri cemu COMPONENT_OF(px, py) oznacava da je py komponenta dela px bilo kog reda. • Mnogi jezici relacionog racuna ne dozvoljavaju I dalje rekurzije ovog tipa ni kada je u pitanju definisanje pogleda, ni upita itd.

  40. DATALOG • Definisanje deduktivnih aksioma • Hornove klauze bez funkcija definisane kao wwf u obliku: • A1 AND A2 AND .... AND An • A1 AND A2 AND .... AND An => B • U Datalog notaciji implikacija u obrnutom smeru tj drugi oblik se predstavlja kao B <= A1 AND .....AND An, • B je zakljucak a Ai-ovi su premise tj glava I telo. • Cela baza – program zapisan u Datalogu. • Datalog kao sredstvo za formulaciju aksioma. • Dodatak za DBMS kod baza konstruisanih na standardni nacin. • Moze se koristiti I kao upitni jezik, slican PROLOGU.

  41. Datalog definicija za GOOD_SUPPLIER : • GOOD_SUPPLIER(s,st,sc)<=S(s,sn,st,sc) AND st>15, • Neki uppiti nad ovakvim pogledom bili bi : • ? <=GOOD_SUPPLIER(s,st,sc) • ? <=GOOD_SUPPLIER(s,st,Pariz) • ? <=GOOD_SUPPLIER(S1,st,sc) • Simbol “?” znaci, po konveciji, Display ili ‘Prikazi’. • Datalog u prvobitnoj verziji podrzava rekurziju ali ne I : • Matematicke operatore (+, *, -,…); • Agregatne operatore; • Razliku; • Definisanje domena od strane korisnika itd.

  42. Nadgradnje DATALOG-a • Negacije premisa, npr : SS_COLOCATED (sx,sy) <= S(sx,sxn,sxt,sc) AND S(sx,sxn,sxt,sc) AND NOT (sx = sy) • Operatori za izracunavanje, i postojeci i definisani od strane korisnika: P_WT_IN_GRAMS(p,pn,pl,pg,pc) <= p(p,pn,pl,pw,pc) AND pg = pw*1000, pri cemu bi , ako bismo hteli da ostanemo desledni logici tj njenoj notaciji, izraz pg = pw * 1000 zapisali u infiksnoj notaciji kao (pg,*(pw,1000)) • Grupisanje i agregatne operatore, koji su neophodni ako hocemo da znamo tacnu strukturu dela px, na svim nivoima i za svaki deo koji ucestvuje u izgradnji dela px, njegov kvantitet. • operacije azururanja. Jedan pristup ovome je zasnovan na zapazanju da u osnovnom Datalogu • svaki predikat u zakljucku mora biti ne negiran i • svaka n-torka generisana pravilom moze se smatrati kao ubacena u rezultat. Moguca nadogradnja znaci omogucila da se negirani predikati iz zakljucka tretiraju kao zahtev za brisanjem. • 5. Klauze koje nisu Horn-ove u premisama, dozvoljavanje svih WFF u definiciji pravila.

  43. Rekurzivni upiti • Jedno od najznacajnijih svojstava deduktivnih baza podataka • Primer comp(px,py)<=ps(px,py) comp(px,py)<=ps(px,pz) and comp(pz,py) • Primer (“explode part P1”) ?<=comp(p1,py) • Generalizacija rekurzivnog pravila radi primene na kompleksnije primere P(x,y)<=Q(x,z) and R(z,y) Q(x,y)<=P(x,z) and S(z,y) • Problem implementacije rekurzivnog upita rasclanicemo na podprobleme: a)transformacija originalnog upita u ekvivalentnu ali efikasniju formu

  44. b)izvrsenje rezultata transformacije • Neke od tehnika prikazacemo na primeru”Explode part P1” • Tabela nad kojom cemo raditi je sl. Oblika I sadrzaja:

  45. Naivni pristup • Najjednostavniji ali I najneefikasniji. • Explode part p1 bi se predstavio upitom : • COMP :=PS; do until COMP reaches ‘fixpoint’ COMP := COMP union (COMP * PS) ; end; DISPLAY:= COMP where px => p#(‘p1’); • Sve relacije po 2 atributa. • * oznacava join relacija PS I COMP po atributima ps.px I comp.py a zatim projekciju na ps.py I comp.px. • Ponavljanje koraka iz prethodnih iteracija.

  46. Stanje u relacijama posle 1. iteracije: • A posle druge:

  47. Posle trece iteracije n-torke u tabelo PS * COMP su iste kao I u prethodnoj iteraciji – COMP je dostigao ‘fixpoint’. • Rezultujuca relacija dobijena primenom restrikcije je na slici:

  48. Polunaivni pristup • Izbegavanje ponavljanja izracunavanja Iz prethodnog koraka. • U svakom koraku samo nove n-torke. • NEW := PS; COMP := NEW; do until COMP is empty NEW := (NEW * COMP) – COMP; COMP := COMP UNION NEW; end. • Inicijalno COMP I NEW su identicne. • Posle 1. iteracije:

  49. Stanje u posle druge iteracije prikazano je na slici, a posle trece Tabela NEW je prazna pa se izvrsavanje zaustavlja.

  50. Staticko filtriranje • Restrikcija na pocetku. • Koristi informacije iz zakljucka da bi se modifikovale premise. • Pseudo kod za isti primer:

More Related