Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Sramó András 2000. Adatbázis-technológia I. előadás Adatbázis-technológia 8. előadás Deduktív adatbázisok.

Hasonló előadás


Az előadások a következő témára: "1 Sramó András 2000. Adatbázis-technológia I. előadás Adatbázis-technológia 8. előadás Deduktív adatbázisok."— Előadás másolata:

1 1 Sramó András Adatbázis-technológia I. előadás Adatbázis-technológia 8. előadás Deduktív adatbázisok

2 2 Sramó András Adatbázis-technológia I. előadás Az előadás célja megmutatni a navigációs és deklaratív lekérdezés közötti különbséget; bemutatni a logikai adatbázisok kialakulásának indokait; bemutatni a logikai programozás és a Prolog nyelv legfontosabb tulajdonságait; ismertetni a deduktív adatbázisok felépítését; vázolni az új ismeretek előállításának módját deklaratív adatbázisokban.

3 3 Sramó András Adatbázis-technológia I. előadás Az előadás vázlata Logikai programozás és logikai adatbázisok. Deduktív adatbázisok. Deduktív adatbázisok felépítése. Szabályok értelmezése.

4 4 Sramó András Adatbázis-technológia I. előadás Eredet és háttér Az 1980-as évek alatt alakultak ki a relációs adatbá- zisok és a logikai programozás kapcsolatából. Cél: relációs lekérdező nyelvek továbbfejlesztése; rekurzív lekérdezések kezelése. Elméleti háttér: logikai programozás; relációs adatbázisok; automatizált tételbizonyítás; matematikai logika.

5 5 Sramó András Adatbázis-technológia I. előadás Lekérdezések típusai Navigációs lekérdezés: a lekérdezés explicit módon leírja, hogy a lekérdezés szempontjából fontos adatok milyen úton érhetők el. Deklaratív lekérdezés: a lekérdezés azt írja le, hogy milyen feltételekkel rendelkező adatokra van szükség. Deklaratív nyelv: szigorú szemantikai szabályok-kal rendelkező nyelv deklaratív lekérdezések definiálására.

6 6 Sramó András Adatbázis-technológia I. előadás Deklaratív nyelvek A logikai programozás legelterjedtebb nyelve a Prolog, amely a deduktív adatbázisok kialakításá- nak is alapja volt. A Prolog nyelv része a Datalog, amely szabályok deklaratív megfogalmazására használható egy létező relációhalmazon. Bár a Datalog nyelvi szerkezete megfelel a Prolognak, működésének módja nyitott.

7 7 Sramó András Adatbázis-technológia I. előadás Megjegyzés Az előadásban a Prolog szerkezetét és jelölés- rendszerét fogjuk használni. Az előadás példái a Prolog keretén belül maradnak, így min-denki kipróbálhatja valamilyen Prolog implementációval.

8 8 Sramó András Adatbázis-technológia I. előadás Logikai adatbázisok Logikai adatbázisokban az adatok logikai formulákkal vannak leírva. A logikai formulák gyakran az elsőrendű logika egy korlátozott részhalmazát képezik. A logikai formulák a valós világnak az adatbázis- alkalmazással kapcsolatban lévő részét írják le, azaz a valós világ logikai reprezentációját adják. A logikai adatbázisok szemantikája a matematikai logikán alapszik.

9 9 Sramó András Adatbázis-technológia I. előadás Deduktív adatbázisok Nincs pontos definíciójuk. Szűkebb értelemben egy deduktív adatbázis olyan elsőrendű logikai adatbázis, amely speciális for-májú állításokból áll és a levezetésen (dedukción) alapszik. Tágabb értelemben minden logikai adatbázis tekinthető deduktív adatbázisnak.

10 10 Sramó András Adatbázis-technológia I. előadás Deduktív adatbázisok kialakulása Az első logikai adatbázisok tulajdonképpen logikai programok voltak, amelyeket integritási feltételek- kel egészítettek ki. Később kiderült, hogy az adatbázisok részéről továb-bi követelmények fogalmazhatók meg: összetett objektumok kezelése; relációk összesítése; nem teljes és inkonzisztens információk kezelése.

11 11 Sramó András Adatbázis-technológia I. előadás Deduktív adatbázisok létrehozása Egy logikai nyelv bővítése adatbázis-szolgáltatá- sokkal, úgymint az adatelérés szabályozása, tranzakció-kezelés, adatbázis-frissítési szabályok. Ezzel lehetővé válik az adatbázisokra jellemző többfelhasználós környezet és a nagy adathalmaz. Hagyományos adatbázis-rendszerek kiegészítése logikai nyelvi konstrukciókkal - például egy ma-gas szintű szabályspecifikációs nyelvvel, - vagy egy olyan logikai nyelvvel, amely az adadefiniálás és - kezelés funkcióit is szolgáltatja.

12 12 Sramó András Adatbázis-technológia I. előadás Deduktív adatbázis felépítése Szabályok Tények extenzionális adatbázis intenzionális adatbázis

13 13 Sramó András Adatbázis-technológia I. előadás Tények A tényeket hasonlóképpen írjuk le, mint a reláció- kat, azzal a különbséggel, hogy a tulajdonság- típusoknak nem kell feltétlenül nevet adni. Egy tény egy olyan reláció-előfordulás, ahol a tulajdonság-előfordulások vannak felsorolva. Deduktív adatbázisban a tulajdonság-előfordulá-sok sorrendje kötött. A tulajdonságtípust a sorrendben elfoglalt helye azonosítja.

14 14 Sramó András Adatbázis-technológia I. előadás Szabályok A szabályok a relációs nézetekhez hasonlíthatók. Virtuális relációkat definiálnak, amelyek eredeti-leg nincsenek az adatbázisban, de a tényekből le- vezethetők egy következtetési mechanizmus alap-ján. A fő különbség a nézetek és a szabályok között, hogy a szabályok tartalmazhatnak rekurziót, ame-lyet a szokásos relációs nézetekkel nem lehet defi-niálni. A szabályokkal új ismereteket lehet előállítani.

15 15 Sramó András Adatbázis-technológia I. előadás Prolog jelölés Prologban a tények és szabályok kifejezésére egyedi elnevezésű predikátumokat használunk. Egy predikátumnak sajátos jelentése van, amelyet a neve hordoz, és rögzített számú argumentuma. Ha az összes argumentum konstans, a predikátum egy tényt fejez ki. Ha egy vagy több argumentum változó, akkor a predikátum lehet –lekérdezés; –szabály része; –feltétel.

16 16 Sramó András Adatbázis-technológia I. előadás A példa A deduktív adatbázisok- ról és a logikai progra- mozásról szóló iroda- lom szinte csak két példát ismer. Az egyik a szervezeti hi- erarchia, a másik a ro- koni kapcsolatok leírá- sa. Mi az utóbbit választjuk.

17 17 Sramó András Adatbázis-technológia I. előadás 1. részlet a példából szem(m001,”Molnár Ferenc”,1905,f). Az m001 azonosítójú személy neve Molnár Ferenc, 1905-ben született és férfi. szem(t001,”Tóth Ildikó”,1907,n). A t001 azonosítójú személy neve Tóth Ildikó, 1907-ben született és nő. szem(m002,”Molnár Mihály”,1938,f). szem(m003,”Molnár Sándor”,1931,f). szem(m004,”Molnár Lilla”,1935,n).

18 18 Sramó András Adatbázis-technológia I. előadás 2. részlet a példából gyereke(m001,m002). Az m001 azonosítójú személy (Molnár Ferenc) gye- reke az m002 azonosítójú személy (Molnár Mihály). gyereke(m001,m003). gyereke(m001,m004). gyereke(t001,m002). gyereke(t001,m003). gyereke(t001,m004). Molnár Ferenc és Tóth Ildikó gyerekeinek, azaz a Molnár családnak a definiálása

19 19 Sramó András Adatbázis-technológia I. előadás Szabályok definiálása Egy szabály alakja: fej:- törzs. ahol –a fej egyetlen predikátum, amelyet gyakran a szabály következményének neveznek; –a törzs egy vagy több, egymástól vesszővel elválasztott predikátum, amelyet a szabály premisszáinak nevezünk. A szabály azt fogalmazza meg, hogy mindazon ese- tekre, amelyekre a törzs minden premisszája igaz, a következmény is igaz.

20 20 Sramó András Adatbázis-technológia I. előadás Megjegyzés A törzsben szereplő pre- dikátumokat a logikai “és” művelet kapcsolja össze. Egy predikátum több sza- bály fejében szerepel- het. Két (vagy több) azonos fejű szabály törzsei között a logikai “vagy” művelet érvényes.

21 21 Sramó András Adatbázis-technológia I. előadás 3. részlet a példából apja(X,Y):-gyereke(Y,X),szem(Y,_,_,f). Az “apja” kapcsolat (X apja Y) definiálása két személy között. X,Y két változó. –Prologban a változók nagybetűvel, a szimbólumok kis- betűvel kezdődnek. Szimbólumban nem lehet szóköz. Az aláhúzás ( _ ) karakter a szabály megfogalma- zásában érdektelen argumentumok helyén szere-pel. anyja(X,Y):-gyereke(Y,X),szem(Y,_,_,n).

22 22 Sramó András Adatbázis-technológia I. előadás Beépített predikátumok A Prolog számos beépített predikátumot tartalmaz, amelyek implementációnként változnak. Minden Prolog implementáció tartalmazza az összehasonlító operátorokat (=,, >=, <>). –=(X,Y) helyett X=Y írható. A Prologban az aritmetikai műveletek (+, -, *, /) predikátumok argumentumaiban használhatók. –Datalogban ez nem megengedett; ez a legjelentősebb különbség a prolog és a Datalog között.

23 23 Sramó András Adatbázis-technológia I. előadás 4. részlet a példából utodja(X,Y):-gyereke(X,Y). utodja(X,Y):-gyereke(X,Z),utodja(Z,Y). Az “utódja” kapcsolat (X utódja Y) definiálásakor kettő szabályt fogalmazunk meg: –egy személy gyereke egyben az utódja; –egy személy gyerekének az utódja a személynek is utódja. A második szabály példa rekurzív kapcsolatra is.

24 24 Sramó András Adatbázis-technológia I. előadás Lekérdezések A lekérdezés egy predikátum egy vagy több változóval. A lekérdezés eredménye azok az igaz predikátu-mok, ahol a lekérdezésben szereplő argumentu-mok konstansok, és a konstansok minden lehetsé-ges kombinációja előfordul.

25 25 Sramó András Adatbázis-technológia I. előadás Példák lekérdezésekre utodja(m001,X)? m001 (Molnár Ferenc) utódjai. utodja(X,k004)? Kiknek az utódja k004 (Kovács Izabella) - azaz, kik az elődei. apja(k004,X),szem(X,Y,_,_)? Ki az apja k004-nek, és az apja nevére is kíváncsiak vagyunk.

26 26 Sramó András Adatbázis-technológia I. előadás Szabályok értelmezése I. Bizonyításelméleti értelmezés: az adatbázis n-esei tények; a szabályok axiómák, amelyek alapján az ismert tényekből újabb tényeket állíthatunk elő; minden új tény csak úgy állítható elő, hogy a jobb oldalon adott vagy bizonyított tényekkel helyette- sítünk és a bal oldalon lesz az új tény; –ez csak akkor igaz, ha nincs tagadás a szabályokban vagy a tényekben; –a tagadások nemvárt eredkményeket adhatnak.

27 27 Sramó András Adatbázis-technológia I. előadás Bizonyításelméleti értelmezés 1. utodja(X,Y):-gyereke(X,Y). (1. szabály) 2. utodja(X,Y):-gyereke(X,Z),utodja(Z,Y). (2. szabály) 3. gyereke(m004,s004). (axióma, adott) 4. gyereke(m001,m004). (axióma, adott) 5. utodja(m004,s004). (1. szabály alkalmazása 3-ra) 6. utodja(m001,s004):- gyereke(m001,m004), utodja(m004,s004). (2. szabály alkalmazása 4-re és 5-re)

28 28 Sramó András Adatbázis-technológia I. előadás Szabályok értelmezése II. Modellelméleti értelmezés: a szabályok lehetséges világokat definiálnak; az adatbázis egy predikátum igaz előfordulásai ugyanazzal a névvel mint a tábláé; az adatbázis egy értéktartománynak csak egyes értékeit tartalmazza, nem az összes előfordulást; egy modell igaz hozzárendelések halmaza (azaz egy értelmezés) amely az összes szabályt igazzá teszi attól függetlenül, hogy hogyan rendeljük hozzá az értékeket a változókhoz.

29 29 Sramó András Adatbázis-technológia I. előadás Szabályok kiértékelése I. A Prolog a szabályokat visszafelé láncolással (backward chaining) értékeli. Ez egy felülről-lefelé-haladó (top-down) megkö- zelítés, amely a szabályokból kiindulva halad a tárolt tények felé. A szabály-törzs minden predikátumát ellenőrzi úgy, hogy párosításokat keres a lekérdezés válto-zói és a más szabályoból származó tények között. Ez a módszer nem igazán jó nagyméretű adatbázi- sok esetén.

30 30 Sramó András Adatbázis-technológia I. előadás Szabályok kiértékelése II. A másik megközelítés az előre láncolás (forward chaining) amely egy alulról-felfelé-haladó (bottom- up) módszer. A szabályok alkalmazásával a létező tényekből új tényeket állít elő. Minden új tényt ellenőriz, hogy megfelel a célnak. A módszer fő hátránya, hogy az adatbázis összes következtetését előállítja, amelyek közül a legtöbb nem felel meg a célnak, hacsak nem adunk vala- milyen módszert arra, hogy csak a lekérdezés szempontjából fontos tényeket állítsa elő.


Letölteni ppt "1 Sramó András 2000. Adatbázis-technológia I. előadás Adatbázis-technológia 8. előadás Deduktív adatbázisok."

Hasonló előadás


Google Hirdetések