Upload
vuquynh
View
241
Download
0
Embed Size (px)
Citation preview
Dedukcyjne bazy danych
mgr inz. Olga [email protected]
Instytut Informatyki Teoretycznej i Stosowanej
Dedukcyjne bazy danych – p.1/37
Plan seminarium
Wprowadzenie
Podstawy matematyczne
Podstawowe pojecia
Prolog - logiczny jezyk programowania
Podsumowanie
Dedukcyjne bazy danych – p.2/37
Wprowadzenie (1)
Bazy danych wykorzystuje sie aktualnie w gospodarce, polityce, nauce,
administracji.
Co piec lat ilosc zapisanych informacji na swiecie zwieksza sie dwukrot-
nie.
Od baz danych wymaga sie zgodnosci z rzeczywistoscia, trwałosci, za-
pewnienia bezpieczenstwa danych, a takze łatwosci dokonywania na
nich operacji.
Dedukcyjne bazy danych – p.3/37
Wprowadzenie (1)
Bazy danych wykorzystuje sie aktualnie w gospodarce, polityce, nauce,
administracji.
Co piec lat ilosc zapisanych informacji na swiecie zwieksza sie dwukrot-
nie.
Od baz danych wymaga sie zgodnosci z rzeczywistoscia, trwałosci, za-
pewnienia bezpieczenstwa danych, a takze łatwosci dokonywania na
nich operacji.
Dedukcyjne bazy danych – p.3/37
Wprowadzenie (1)
Bazy danych wykorzystuje sie aktualnie w gospodarce, polityce, nauce,
administracji.
Co piec lat ilosc zapisanych informacji na swiecie zwieksza sie dwukrot-
nie.
Od baz danych wymaga sie zgodnosci z rzeczywistoscia, trwałosci, za-
pewnienia bezpieczenstwa danych, a takze łatwosci dokonywania na
nich operacji.
Dedukcyjne bazy danych – p.3/37
Wprowadzenie (2)
Powstało wiele modeli budowania i organizacji baz danych, miedzy inny-
mi:
Model hierarchiczny
Model sieciowy
Model relacyjny
Model obiektowy
Model dedukcyjny
Model rozproszony
Model kwantowy
Dedukcyjne bazy danych – p.4/37
Wprowadzenie (3)
Dedukcyjne bazy danych, to bazy oparte na logice.
Technologia ta poszerza model relacyjnych baz danych o idee logicznego
programowania.
Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.
Semantyka ograniczen integralnosci takze opiera sie na logice matema-
tycznej.
Dedukcyjne bazy danych – p.5/37
Wprowadzenie (3)
Dedukcyjne bazy danych, to bazy oparte na logice.
Technologia ta poszerza model relacyjnych baz danych o idee logicznego
programowania.
Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.
Semantyka ograniczen integralnosci takze opiera sie na logice matema-
tycznej.
Dedukcyjne bazy danych – p.5/37
Wprowadzenie (3)
Dedukcyjne bazy danych, to bazy oparte na logice.
Technologia ta poszerza model relacyjnych baz danych o idee logicznego
programowania.
Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.
Semantyka ograniczen integralnosci takze opiera sie na logice matema-
tycznej.
Dedukcyjne bazy danych – p.5/37
Wprowadzenie (3)
Dedukcyjne bazy danych, to bazy oparte na logice.
Technologia ta poszerza model relacyjnych baz danych o idee logicznego
programowania.
Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.
Semantyka ograniczen integralnosci takze opiera sie na logice matema-
tycznej.
Dedukcyjne bazy danych – p.5/37
Podstawy matematyczne (1)
Relacje
Grafy i drzewa
Wnioskowanie i wyprowadzenie
Reguła wnioskowania jest n-arna relacja na wyrazeniach, gdzie n > 1
Elementy takiej relacji maja postac:
E1, · · · ,En−1
E
Załozeniami wnioskowania sa obiekty E1, · · · ,En−1, zas wnioskiem wy-
razenie E .
Dedukcyjne bazy danych – p.6/37
Podstawy matematyczne (2) - syntaktyka
Syntaktyka dedukcyjnych baz danych:
Jezyk pierwszego rzedu L to trójka (ConL,FunL,PredL), zawierajaca
trzy rozłaczne zbiory:
ConL - Zbiór stałych L
FunL - Zbiór symboli funkcji L
PredL - Zbiór symboli predykatów L, które nazywamy elementarny-
mi
Dedukcyjne bazy danych – p.7/37
Podstawy matematyczne (3) - syntaktyka
Niech L bedzie jezykiem predykatów pierwszego rzedu i Var zbiorem
zmiennych. Wtedy zbiór termów jezyka L ze zmiennymi ze zbioru Var
definiujemy nastepujaco:
kazda stała c ∈ConL jest termem
kazda zmienna v ∈Var jest termem
jezeli f ∈ FunL jest funkcja n-arna i t1, · · · , tn sa termami, wtedy
f (t1, · · · , tn) jest termem
term nazywamy podstawowym, jezeli nie zawiera zmiennych
t(x) oznacza wszystkie wystapienia zmiennej x w termie t
zastapienie (substytucje) zmiennej x przez stała s w termie t, zapi-
sujemy jako t(s)
Dedukcyjne bazy danych – p.8/37
Podstawy matematyczne (4) - syntaktyka
W logice twierdzenia o obiektach sa reprezentowane przez formuły. For-
muły pierwszego rzedu jezyka L definujemy nastepujaco:
jezeli p ∈ PredL jest predykatem elementarnym, n-arnym, a
t1, · · · , tn sa termami, wtedy p(t1, · · · , tn) jest formuła, zwana takze
formuła atomowa lub atomem
jezeli d,e sa formułami, wtedy nastepujace wyrazenia ¬d,(d ∧
e),(d ∨ e),(d ⊃ e)) takze sa formułami
majac formułe d i zmienna x, wyrazenia ∀xd,∃xd sa formułami
Dedukcyjne bazy danych – p.9/37
Podstawy matematyczne (5) - rachunek
predykatów
Rachunek predykatów K zawiera dwa zbiory aksjomatów: aksjomaty logiczne
i własne.
Aksjomaty logiczne - dla wszystkich formuł A,B,C,∈ K nastepujace
formuły sa schematami aksjomatów:
A → (B → A)
(A → (B →C)) → ((A → B) → (A →C))
(¬B →¬A) → ((¬B → A) → B)
∀xiA(xi) → A(t), gdzie A(xi) jest formuła z K a t jest termem z K,
który jest wolny dla xi w A(xi)
∀xi(A → B) → (A → ∀xiB), jezeli formuła A nie zawiera wolnych
wystapien xi
Dedukcyjne bazy danych – p.10/37
Podstawy matematyczne (6) - rachunek
predykatów
Aksjomaty własne nie sa definiowane w ogólnej postaci, poniewaz
zmieniaja sie od teorii do teorii.
Jezeli zbiór aksjomatów własnych jest pusty, to taki rachunek nazywamy
rachunkiem predykatów pierwszego rzedu. Jezeli zbiór aksjomatów
własnych nie jest pusty, to taki rachunek nazywamy teoria pierwszego
rzedu.
Dedukcyjne bazy danych – p.11/37
Podstawy matematyczne (7) - substytucja
Substytucja σ jest zbiorem postaci {x1/t1,x2/t2, · · · ,xn/tn}, gdzie xi sa zmie-
nymi, ti sa termami, xi 6= x j oraz i 6= j i xi 6= ti dla i = 1,2, · · · ,n j = 1,2, · · · ,n
Mamy wyrazenie E , które jest termem, formuła, alternatywa lub koniunkcja for-
muł, oraz substytucje σ = {x1/t1,x2/t2, · · · ,xn/tn}. Wyrazenie Eσ, powstaje
poprzez zastapienie wszystkich zmiennych xi wystepujacych jednoczesnie w E
i w σ odpowiednimi termami ti. Na przykład:
E = p(x,y, f (a)) σ = {x/b,y/x} Eσ = p(b,x, f (a))
Dedukcyjne bazy danych – p.12/37
Podstawy matematyczne (8) - substytucja
Niech Θ i σ beda substytucjami postaci:
Θ = {x1/s1,x2/s2, · · · ,xn/sn} σ = {y1/t1,y2/t2, · · · ,ym/tm}
Substytucja Θσ to zbiór:
{x1/s1σ,x2/s2σ, · · · ,xn/snσ,y1/t1,y2/t2, · · · ,ym/tm}
w którym skreslamy wszelkie wyrazenia postaci xi/siσ, gdzie xi = siσ, orazwyrazenia yi/ti takie, ze yi ∈ {x1,x2, · · · ,xn}.
Dedukcyjne bazy danych – p.13/37
Podstawy matematyczne (9) - substytucja
Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:
Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}
Dokonujemy ich wymnozenia:
Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}
W nastepnym kroku otrzymujemy:
Θσ = {x/ f (b),y/y,x/a,y/b,z/y}
Po dokonaniu skreslen, substytucja ostatecznie ma postac:
Θσ = {x/ f (b),z/y}
Dedukcyjne bazy danych – p.14/37
Podstawy matematyczne (9) - substytucja
Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:
Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}
Dokonujemy ich wymnozenia:
Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}
W nastepnym kroku otrzymujemy:
Θσ = {x/ f (b),y/y,x/a,y/b,z/y}
Po dokonaniu skreslen, substytucja ostatecznie ma postac:
Θσ = {x/ f (b),z/y}
Dedukcyjne bazy danych – p.14/37
Podstawy matematyczne (9) - substytucja
Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:
Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}
Dokonujemy ich wymnozenia:
Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}
W nastepnym kroku otrzymujemy:
Θσ = {x/ f (b),y/y,x/a,y/b,z/y}
Po dokonaniu skreslen, substytucja ostatecznie ma postac:
Θσ = {x/ f (b),z/y}
Dedukcyjne bazy danych – p.14/37
Podstawy matematyczne (9) - substytucja
Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:
Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}
Dokonujemy ich wymnozenia:
Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}
W nastepnym kroku otrzymujemy:
Θσ = {x/ f (b),y/y,x/a,y/b,z/y}
Po dokonaniu skreslen, substytucja ostatecznie ma postac:
Θσ = {x/ f (b),z/y}
Dedukcyjne bazy danych – p.14/37
Podstawy matematyczne (10) - unifikacja
Majac atomy lub termy A i B, oraz substytucje σ:
unifikatorem dwóch termów nazywamy substytucje, która czyni oba ter-
my identycznymi Aσ = Bσ
σ nazwiemy najogólniejszym unifikatorem termów A i B, jezeli σ jest uni-
fikatorem i dla kazdego unifikatora Θ termów A i B zachodzi nierównosc
σ 6 Θ
substytucje σ nazywamy rozwiazaniem zbioru równan
A1 ≈ B1,A2 ≈ B2, · · · ,An ≈ Bn
jezeli dla kazdego i = 1,2, · · · ,n zachodzi Aiσ = Biσ
rozwiazanie nazywamy najogólniejszym, jezeli dla kazdego rozwiazania
Θ powyzszego zbioru zachodzi nierównosc σ 6 ΘDedukcyjne bazy danych – p.15/37
Podstawy matematyczne (11) - rezolucja SLD
Rezolucja SLD jest oparta na zaprzeczeniu. Majac cel G dla bazy D, rezolu-
cja SLD próbuje dowiesc sprzecznosc D∪{¬G}. Rezolucje SLD mozna łatwiej
przedstawic jako system wnioskowania oparty na regule rezolucji.
Wyprowadzenie SLD mozemy rozpatrywac jako system wnioskowania zawiera-
jacy dwie reguły:
wnioskowanie G → G′, gdzie załozeniem jest G′ a wnioskiem G:
G′
G
aksjomat �. Wyprowadzenie SLD konczace sie �, nazywamy dowo-
dem. Jezeli istnieje dowód SLD celu G dla bazy D, z wyliczona substy-
tucja θ, mozemy po prostu powiedziec, ze θ jest odpowiedzia dla G i
D.
Dedukcyjne bazy danych – p.16/37
Podstawy matematyczne (12) - rezolucja SLD
Rozpatrzmy przykład zapisany w jezyku Prolog. Mamy baze:
dumny(X) :- rodzic(X,Y),nowonarodzone(Y).
rodzic(X,Y) :- ojciec(X,Y).
rodzic(X,Y) :- matka(X,Y).
ojciec(jan,jadwiga).
nowonarodzone(jadwiga).
Zadajemy pytanie
? - dumny(jan).a nastepnie dokonujemy przekształcenia formuł do postaci alternatyw:
dumny(X) ∨¬ rodzic(X,Y) ∨¬ nowonarodzone(Y).rodzic(X,Y) ∨¬ ojciec(X,Y).rodzic(X,Y) ∨¬ matka(X,Y).ojciec(jan,jadwiga).nowonarodzone(jadwiga).
Dedukcyjne bazy danych – p.17/37
Podstawy matematyczne (14) - rezolucja SLD
Drzewo SLD ma nastepujace własciwosci:
wezły drzewa sa celami
kazdy wewnetrzny wezeł drzewa jest niepusty i zawiera wybrana formułe
mówimy, ze substytucja θ odnosi sie do wezła
Oto przykład drzewa SLD dla nastepujacej bazy:
pracownik(X,Y) :- imie(X),nazwisko(Y).
pracownik(X,Y) :- osoba(X,Y).
imie(adam).
nazwisko(raczynski).
osoba(marcin,dawid).
osoba(dawid,raczynski).
Dedukcyjne bazy danych – p.19/37
Podstawy matematyczne (15) - rezolucja SLD
Zadajemy pytanie:
?-pracownik(I,N).
Dedukcyjne bazy danych – p.20/37
Podstawy matematyczne (16) - rezolucja SLD
Rozwazmy rózne podejscia przeszukiwania drzewa SLD dla bazy:
rodzic :- dziecko(X),ulubione(X).
dziecko(adam) :- dziecko(X).
ulubione(tomasz).
Zadajemy pytanie:
?-rodzic.
Dedukcyjne bazy danych – p.21/37
Podstawy matematyczne (17) - rezolucja
SLDNF
Rezolucja SLDNF to rezolucja SLD po dodaniu do niej reguł dowodzenia ne-
gacji. W tej metodzie wystepuje zazwyczaj wiecej niz jedno drzewo. Drzewa
SLDNF maja nastepujace cechy:
niektóre liscie w drzewie sa zaznaczone
wystepuja trzy rodzaje zaznaczen: fałsz, oczekiwanie i nieskonczone
jedno drzewo w zbiorze drzew SLDNF nazywamy głównym
Dedukcyjne bazy danych – p.22/37
Podstawy matematyczne (18) - rezolucja
SLDNF
Reguły postepowania sa nastepujace:
poczatkowo mamy jedno drzewo główne
zatrzymujemy sie w momencie, gdy kazdy lisc drzewa konczy sie � lub
jest zaznaczony
w kazdym kroku wybieramy niezaznaczony lisc wezła rózny od �, jeze-
li lisc zawiera literał zanegowany, gałaz zaznaczamy jako oczekujaca i
rozpatrujemy poddrzewo
jezeli poddrzewo zakonczy sie �, wtedy wracamy do drzewa głównego i
gałaz, od której wyszlismy zaznaczamy jako fałszywa
jezeli poddrzewo zakonczy sie fałszem, gałaz drzewa głównego, od której
wyszlismy zaznaczamy jako �
Dedukcyjne bazy danych – p.23/37
Podstawy matematyczne (19) - rezolucja
SLDNF
trujacy(muchomor).
grzyb(pieczarka).
grzyb(borowik).
grzyb(muchomor).
jadalny(X) :- grzyb(X), not trujacy(X).
?-jadalny(X).
Dedukcyjne bazy danych – p.24/37
Podstawowe pojecia (1)
Dedukcyjne bazy danych sa standardowo podzielone na dwie czesci:
EDB (extensional database) - relacje sa zdefiniowane bezposrednio po-
przez wymienienie wszystkich obiektów spełniajacych te relacje. Na przy-
kład:
wyzsze_wyksztalcenie(wyzsze,srednie).
wyzsze_wyksztalcenie(srednie,podstawowe).
IDB (intensional database) - zawiera definicje zaleznosci miedzy relacja-
mi - reguły.
lepiej_wyksztalcony(A,B) :-
wyksztalcenie(A,WA),
wyksztalcenie(B,WB),
wyzsze_wyksztalcenie(WA,WB).Dedukcyjne bazy danych – p.25/37
Podstawowe pojecia (2)
Alternatywa - DDB jest opisana jako zbiór reguł i faktów. Wiele reguł
definiujacych ta sama relacje, musi byc rozumianych jako alternatywne
podejscie do tej samej relacji.
Cel - Uzytkownik zadaje pytanie poprzez wskazanie celu: Czy cel jest
logiczna konsekwencja bazy danych? Upraszczajac, czy jest zgodny z
prawda.
Dedukcyjne bazy danych – p.26/37
Podstawowe pojecia (3)
Rekurencja - Klauzula rekurencyjna definiuje relacje przy uzyciu jej sa-
mej. Na przykład:
polaczone(Punkt_startowy,Punkt_koncowy):-
najkrotsza_droga(Punkt_startowy,Punkt_koncowy).
polaczone(Punkt_startowy,Punkt_koncowy):-
najkrotsza_droga(Punkt_startowy,Punkt_posredni),
polaczone(Punkt_posredni,Punkt_koncowy).
Dedukcyjne bazy danych – p.27/37
Prolog (1)
PROLOG - PROgrammation en LOGique - programowanie oparte na logice.
Logiczny program to zbiór aksjomatów, reguł definujacych rela-
cje miedzy obiektami. Obliczenia w programowaniu logicznym to
wnioskowanie, wyprowadzenie dowodu. Program definiuje zbiór
klauzul nadajacych mu znaczenie. Sztuka logicznego programo-
wania, to sztuka zwiezłego konstruowania programów, które maja
pozadane znaczenie.
Shapiro, Sterling
Dedukcyjne bazy danych – p.28/37
Prolog (2) - syntaktyka
Syntaktyka Prologa
Formuły sa zapisane w postaci:
predykat(term1, term2,...,termn).
Pytania:
?-predykat1(term1, term2,...,termn),
predykat2(term1, term2,...,termk),
...,
predykatz(term1, term2,...,termm).
Dedukcyjne bazy danych – p.29/37
Prolog (3) - syntaktyka
Koniunkcje wyraza sie przecinkiem, alternatywe kropka, zas indukcje
znakiem :-
Symbol komentarza: % lub /* */
Podstawowe atomy w Prologu moga w nazwach zawierac litery, cyfry i
podkreslenia, ale zaczynaja sie z małej litery.
Nazwy zmiennych zaczynaja sie z duzej litery i moga zawierac litery,
cyfry i podkreslenia.
Anonimowe zmienne sa oznaczone symbolem podkreslenia.
Dedukcyjne bazy danych – p.30/37
Prolog (4) - syntaktyka
Prolog przechowuje dane złozone takie jak: listy, złozenia funkcji. Listy
sa oznaczane symbolami:
[Pierwszy|Reszta]
gdzie Pierwszy oznacza pierwszy element listy, zas Reszta to nazwa
reprezentujaca pozostałe elementy listy.
Inna metoda to wymienianie kolejnych elementów listy:
[a,b,c,d,e]
Prolog uzywa operatorów arytmetycznych: +,-,*,/, oraz operatorów:
X is Y, X < Y, X =< Y, X > Y, X => Y
Dedukcyjne bazy danych – p.31/37
Prolog (5) - semantyka
Jadro Prologa - logika predykatów pierwszego rzedu
Semantyka operacyjna - rachunek rezolucji dla logiki predykatów pierw-
szego rzedu
Metoda rezolucji - metoda dowodzenia wychodzaca od reguły kluczowej
Sposób postepowania w metodzie rezolucji - wyjscie z formuły predykatu
w postaci znormalizowanej (alternatywy), a nastepnie tak długie stoso-
wanie zasady rezolucji, az dojdziemy do sprzecznosci lub dalsze dowo-
dzenie nie bedzie mozliwe
Elementarna sprzecznosc - �
Wykorzystane algorytmy - substytucja, unifikacja, rezolucja SLDNF
Metoda wyszukiwania w drzewie SLD - w głab, wybierany jest zawsze
predykat stojacy z lewej strony
Dedukcyjne bazy danych – p.32/37
Prolog (6)
Komponenty kontroli przepływu:
Ciecie - oznaczane symbolem: !. Ciecie nastepuje natychmiast i zmusza
Prolog do unifikacji wszystkich wyborów przed celem wezła nadrzedne-
go, za pomoca nagłówka klauzuli, w której pojawia sie ciecie.
Ciecie zmniejsza przestrzen jaka przeszukuje Prolog, poprzez dynamicz-
ne obciecie drzewa przeszukiwan:
wszystkie klauzule wystepujace w predykacie po cieciu, nie beda
brane w dowodzie pod uwage, jezeli ciecie jest udowodnione
alternatywne rozwiazania ciecia w poddrzewach moga nie zostac
znalezione
ciecie nie ma wpływu na podcele klauzul stojacych za nim w predy-
kacie
Fail - stała bedaca znacznikiem niepowodzenia w dowodzeniu.Dedukcyjne bazy danych – p.33/37
Prolog (7)
istota_zywa(roza).
istota_zywa(pies).
istota_zywa(ewa).
roslina(roza).
zwierze(pies).
czlowiek(X) :- roslina(X),!,fail.
czlowiek(X) :- zwierze(X),!,fail.
czlowiek(X) :- istota_zywa(X).
?-istota_zywa(X),czlowiek(X).
Dedukcyjne bazy danych – p.34/37
Prolog (9)
Proces powstawania programu w Prologu obejmuje:
okreslenie problemu
definiowanie modelu interpretacji (domen, symboli...)
odnalezienie pasujacej teorii tak by prowadziła do wydajnego dowodze-
nia
uzycie komponentów kontroli przepływu
Dedukcyjne bazy danych – p.36/37
Podsumowanie
PRO
wyciaganie niejawnych informacji z zapisanych jawnie faktów i reguł
łatwe tworzenie klauzul rekurencyjnych
intuicyjne wyznaczanie celów
CONTRA
brak determinizmu
słabo rozwiniety system zabezpieczen
mimo istnienia standardu Prologa poszczególne implementacje znacznie
sie róznia
Dedukcyjne bazy danych – p.37/37