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

Adatbázis-technológia

Hasonló előadás


Az előadások a következő témára: "Adatbázis-technológia"— Előadás másolata:

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


Letölteni ppt "Adatbázis-technológia"

Hasonló előadás


Google Hirdetések