Adatbázis-technológia

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

Adatbázisrendszerek elméleti alapjai 2. előadás
ADATBÁZISOK.
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Diagnosztika szabályok felhasználásával, diagnosztikai következtetés Modell alapú diagnosztika diszkrét módszerekkel.
Delphi programozás alapjai
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Műveletek logaritmussal
2009 Bevezetés a programozásba Krankovits Melinda.
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Euklidészi gyűrűk Definíció.
Csoport részcsoport invariáns faktorcsoport részcsoport
Rekurzív SQL Rekurzió: Hierarchikus lekérdezések
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Kétértékűség és kontextusfüggőség Kijelentéseink igazak vagy hamisak (mindig az egyik és csak az egyik) Kijelentés: kijelentő mondat (tartalma), amivel.
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Logika Érettségi követelmények:
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
MI 2003/7 - 1 Az egyesítési algoritmus Minden kapitalista kizsákmányoló. Mr. Smith kapitalista. Mr. Smith kizsákmányoló.
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
Halmazok, relációk, függvények
Logikai programozás Prolog.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
Bevezetés a matematikába I
6. SZÁMELMÉLET 6.1. Oszthatóság
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
A számfogalom bővítése
Halmazelmélet és matematikai logika
Objektumorientált tervezés és programozás II. 3. előadás
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
Operátorok Értékadások
Logika 2. Klasszikus logika Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék február 17.
Érvelés, bizonyítás, következmény, helyesség
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Atomi mondatok FOL-ban Atomi mondat általában: amiben egy vagy több dolgot megnevezünk, és ezekről állítunk valamit. Pl: „Jóska átadta a pikk dámát Pistának”
(nyelv-családhoz képest!!!
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
Adatbázis kezelés.
Logikai programozás 2..
Határozatlan integrál
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
Objektum orientált programozás
Adatbázisok gyakorlat
Adatbázis alapfogalmak
Adatbázis-kezelés. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
MI 2003/6 - 1 Elsőrendű predikátumkalkulus (elsőrendű logika) - alapvető különbség a kijelentéslogikához képest: alaphalmaz. Objektumok, relációk, tulajdonságok,
Henkin-Hintikka-játék szabályai, kvantoros formulákra, még egyszer: Aki ‘  xA(x)’ igazságára fogad, annak kell mutatnia egy objektumot, amire az ‘A(x)’
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
C Programozási alapok.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
előadások, konzultációk
Algoritmizálás, adatmodellezés
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Adatbázisszintű adatmodellek
2. gyakorlat INCK401 Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2015/2016. I. félév AZ INFORMATIKA LOGIKAI ALAPJAI.
Programozási nyelvek csoportosítása.
Kifejezések C#-ban.
A házi feladatokhoz: 1.5: Azonosság Jelölések a feladatszám alatt:
Atomi mondatok Nevek Predikátum
Programozási nyelvek alapfogalmai
Bevezetés a matematikába I
ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
Előadás másolata:

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

Deduktív adatbázis felépítése intenzionális adatbázis Szabályok extenzionális adatbázis Tények

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.

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.

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.

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.

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

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

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.

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.

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

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.

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.

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.

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.

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.

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)

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.

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.

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