1 / 30

Adatbázis-technológia

Adatbázis-technológia. 8. előadás Deduktív adatbázisok. 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;

zizi
Télécharger la présentation

Adatbázis-technológia

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. Adatbázis-technológia 8. előadás Deduktív adatbázisok

  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Deduktív adatbázis felépítése intenzionális adatbázis Szabályok extenzionális adatbázis Tények

  13. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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ő.

More Related