DEDUKTIVNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA)



Podobné dokumenty
Ostravská univerzita, Přírodovědecká fakulta, 30. dubna 22, Ostrava,

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

DEDUKTIVNÍ PRAVIDLA V ANALÝZE A NÁVRHU DATABÁZOVÝCH APLIKACÍ

Logika a logické programování

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Dolování v objektových datech. Ivana Rudolfová

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Predikátová logika. prvního řádu

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Formální systém výrokové logiky

Objektově orientované databáze. Miroslav Beneš

Logické programy Deklarativní interpretace

Modely Herbrandovské interpretace

Predikátová logika. Teoretická informatika Tomáš Foltýnek

8.2 Používání a tvorba databází

Analýza a modelování dat 3. přednáška. Helena Palovská

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Okruh č.3: Sémantický výklad predikátové logiky

4.2 Syntaxe predikátové logiky

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Databázové systémy BIK-DBS

Matematická logika. Miroslav Kolařík

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

Výroková a predikátová logika - V

teorie logických spojek chápaných jako pravdivostní funkce

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

platné nejsou Sokrates je smrtelný. (r) 1/??

Databázové systémy BIK-DBS

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Databáze v MS ACCESS

POKROČILÉ POUŽITÍ DATABÁZÍ

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Maturitní témata Školní rok: 2015/2016

Matematická logika. Miroslav Kolařík

J. Zendulka: Databázové systémy 4 Relační model dat 1

Výroková logika. Teoretická informatika Tomáš Foltýnek

Matematika B101MA1, B101MA2

1 Pravdivost formulí v interpretaci a daném ohodnocení

TÉMATICKÝ OKRUH Softwarové inženýrství

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

5. Formalizace návrhu databáze

Výroková a predikátová logika - III

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

Výroková a predikátová logika - XII

Logika pro sémantický web

Matematická logika. Rostislav Horčík. horcik

Výroková a predikátová logika - VII

Výroková a predikátová logika - VI

DBS Konceptuální modelování

Databázové systémy trocha teorie

Umělá inteligence I. Roman Barták, KTIML.

Relační model dat (Codd 1970)

Výroková a predikátová logika - VII

Úvod do informatiky. Miroslav Kolařík

Logické programování

Výroková logika - opakování

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Výroková a predikátová logika - II

Programovací jazyk Pascal

ZÁKLADY LOGIKY A METODOLOGIE

Výroková a predikátová logika - II

Úvod do databázových systémů. Ing. Jan Šudřich

04 - Databázové systémy

ANOTACE vytvořených/inovovaných materiálů

Logika. 6. Axiomatický systém výrokové logiky

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

7.3 Diagramy tříd - základy

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

7.3 Diagramy tříd - základy

Výroková a predikátová logika - IX

Usuzování za neurčitosti

Databáze. Logický model DB. David Hoksza

6 Objektově-orientovaný vývoj programového vybavení

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

TEORIE ZPRACOVÁNÍ DAT

Programovací jazyk Prolog

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Kapitola 6: Omezení integrity. Omezení domény

Databázové systémy. Ing. Radek Holý

Databáze I. 5. přednáška. Helena Palovská

2.2 Sémantika predikátové logiky

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

RELAČNÍ DATABÁZE. Cíl:

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Ontologie. Otakar Trunda

Sémantika predikátové logiky

Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

U Úvod do modelování a simulace systémů

Výroková a predikátová logika - II

Transkript:

UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY Přírodovědecká fakulta DEDUKTIVNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová 2003 Ostravská univerzita

1 Úvod... 4 2 Teoretická východiska deduktivních databází... 6 2.1 Datový model a jazyk v DATALOGu... 7 2.2 Interpretace klauzule, model a logický důsledek... 9 2.3 Graf závislostí a rekurze... 12 2.4 Bezpečná pravidla... 12 2.5 Vyhodnocování nerekurzívních pravidel... 13 2.6 Rekurzivní pravidla... 16 2.7 Negace v pravidlech... 17 3 Deduktivně objektové systémy řízení báze dat... 19 3.1 Florid... 20 3.2 Gedblog... 20 3.3 Illustra... 21 3.4 ODE... 21 3.5 Validity... 22 3.6 RockRoll... 22 3.7 P/FDM... 22 4 Deduktivně objektový databázový systém ConceptBase a jeho základní komponenty... 24 4.1 Jazyk Telos v ConceptBase... 25 4.2 Jednoduchý model v Telos... 28 4.3 Predikátový jazyk CBL jako součást Telos... 29 4.4 Dotazování v ConceptBase... 31 4.5 Modelování a metamodelování v ConceptBase... 36 5 Využití deduktivních pravidel k zachování integrity dat... 45 5.1 Pojem deduktivní integrita... 45 5.2 Princip deduktivní integrity v relačních datových modelech... 46 5.3 Nevýhody deduktivní integrity v relačních datových modelech... 47 5.4 Integritní omezení v ConceptBase... 48 6 Metodická doporučení k integraci deduktivních pravidel do návrhu informačního systému... 51 6.1 Úvod do metodiky... 52 6.2 Analýza... 61 2

6.3 Návrh...67 6.4 Prototyping deduktivních pravidel...81 7 Demonstrační úloha...88 7.1 Analýza subsystému Komunikace účastníků vzdáleného vyučování.88 7.2 Návrh subsystému Komunikace vzdáleného vyučování...101 7.3 Prototyping deduktivních pravidel...112 8 Korespondenční úkol...115 9 Závěr...116 10 Použitá literatura...117 3

1 ÚVOD Systémy řízení báze dat jsou jednou z nejpoužívanějších technologií, které byly v oblasti informačních technologií vyvinuty. Jejich použití však zdaleka není tak snadné, jak mnohdy naznačují propagační a komerční publikace. Problémy reprezentace a zpracování dat jsou stále aktuálnější a rozhodně nelze říci, že všechny problémy uživatelů jsou řešeny a vyřešeny optimálně. Donedávna většina dat, která byla v databázové technologii zpracovávána, byla uložena ve formě jednoduchých relačních tabulek, jejichž struktura byla definována s využitím jednoduchých datových typů. Moderní databázové aplikace ovšem potřebují manipulovat s objekty, které nelze snadno transformovat do relačních tabulek. Výzkum na poli databázové technologie byl postaven před úkol, jak tento problém řešit. Jako dlouhodobě výhodná investice se jeví přechod k objektově relačním databázovým systémům. Tyto SŘBD kombinují výhody moderních objektově orientovaných programovacích jazyků s rysy relačních databází jako jsou např. vícenásobné pohledy a neprocedurální dotazovací jazyky. Objektová infrastruktura zároveň poskytuje možnost definování vlastních datových typů a funkcí. S přechodem na objektově relační databázovou technologii vznikla potřeba modifikace metodiky datového modelování. Snaha přiblížit databázové koncepty reálnému světu a potřebám složitých databázových aplikací vede k vývoji systémů řízení báze dat směrem k objektové orientaci, k aktivním databázím, deduktivním databázím, temporálním, prostorovým, textovým či multimediálním databázím. S vývojem objektově orientované databázové technologii úzce souvisí vývoj nových metodologií pro analýzu, návrh a implementaci informačních systémů s databází, které jsou založeny na objektech. Jedná se např. o metodologie OMT, Booch Method, Jacobson Methodology, Martin/Odell Methodology, Wirfs/Brock Methodology, Methodology Coada a Yourdona, Fusion, Syntropy, IDEA Methology, atd. Zjednodušeně bychom mohli konstatovat: Moderní databázové systémy, to jsou transakce, objekty a pravidla [4]. Transakce jsou klíčovým rysem databázové technologie, protože garantují integritu a konzistenci databáze. Všeobecně jsou známy vlastností transakcí, označované jako ACID (atomicity, consistency, isolation, durability). Databázové objekty jsou strukturovány do perzistentních tříd, které jsou organizovány v hierarchii generalizace specializace, které navzájem na sebe odkazují a které jsou asociovány s metodami. Velmi inovačním prvkem jsou spolu s objekty rovněž pravidla. Pravidla můžeme chápat ve dvou dimenzích. Jedná se o pravidla deduktivní a o pravidla aktivní. Deduktivní pravidla umožňují odvozovat nové informace na základě exitujících informací, uložených jako data v databázi a zároveň je možno využít deduktivních pravidel k zajištění integrity databáze. 4

Aktivní pravidla zajišťují vykonávání operací v případě, nastala-li určitá událost. Aktivní pravidla vykonávají akce (tzn. provádějí databázové operace nebo volají externí programy). Aktivní pravidla jsou často v relačních databázových systémech označována jako triggery. Ve vývoji systémů řízení bází dat se od prvopočátku jednalo o tzv. datovou nezávislost, tj. nezávislost dat na jejich fyzické implementaci a nezávislost dat na aplikačních programech. S využitím objektové orientace je možno mnoho procedur a funkcí (které byly dříve součástí aplikačních programů) převést do popisu struktury databáze, kde jsou metodami jednotlivých tříd. Chování objektu není v takovém případě záležitostí aplikačního programu, ale báze dat. Můžeme tedy hovořit o další formě nezávislosti dat na aplikacích (metody nejsou součástí aplikace, ale schémat). Deduktivní přístup k databázové problematice zavádí další typ nezávislosti. Jedná se o tzv. nezávislost znalostní (její koncept byl uveden Friesenem v roce 1994). Znalost není součástí aplikace, nýbrž součástí datového schématu. Objekty, deduktivní a aktivní pravidla hrají velkou roli v rozšíření znalostní nezávislosti dat na aplikačních programech. Hlavní výhoda znalostní nezávislosti je v tom, že objekty a pravidla se uplatňují napříč aplikacemi. Tak, jako s přechodem od relačních databází k objektovým vzešla potřeba modifikace metodiky analýzy, návrhu a implementace informačních systémů s databází, stejná potřeba vzniká s přechodem k databázím deduktivním. Jakým způsobem modifikovat, resp. rozšířit metodiku o nové koncepty založené na deduktivních pravidlech? To je základní otázka, které se budeme věnovat při studiu předkládané výukové opory. 5

2 TEORETICKÁ VÝCHODISKA DEDUKTIVNÍCH DATABÁZÍ Cíl: Po prostudování této kapitoly bude umět definovat základní pojmy, popsané v klíčových slovech, dále budete schopni: - navrhovat bezpečná pravidla, - sestavit jednoduchý logický program s využitím Hornových klauzulí, - vytvořit graf závislostí, - vyhodnotit nerekurzivní pravidla, - vyhodnotit rekurzivní pravidla. Klíčová slova: EDB, IDB, dedukce, deduktivní pravidlo, formule, klauzule, Hornovy klauzule, interpretace klauzule, graf závislostí, rekurze, bezpečnost pravidel, vyhodnocování pravidel. Deduktivní databáze jsou založeny na podpoře teorie dokazování a jsou schopné dedukce dodatečných faktů z faktů, které jsou uloženy v extenzionální databázi. Mají zabudovány speciální deduktivní axiomy a pravidla dedukce. Deduktivní pravidla společně s integritními omezeními odvozují fakta, která jsou obvykle označovány jako intenzionální databáze. Deduktivní databáze se tedy skládá ze dvou složek, extenzionální databáze (EDB) a intenzionální databáze (IDB). Deduktivní datový model využívá dvou typů konceptů. Základní koncepty jsou uloženy v databázi (EDB) a odpovídají relacím v relačním datovém modelu nebo objektům v objektovém datovém modelu. Odvozené koncepty nemusí být uloženy v databázi, jsou obvykle dočasné a uchovávají mezivýsledky operací. Tyto koncepty jsou označovány jako intenzionální koncepty. Základním stavebním kamenem deduktivních databází jsou deduktivní pravidla, vyvinuta a demonstrována na paradigmatech logického programování v programovacím jazyku Prolog (Colmerauer a Kowalski, 1979). Hlavním smyslem deduktivních pravidel je reprezentace obecných deklarativních znalostí. Uplatnění deduktivních pravidel je možné jak v relační, tak objektové databázové technologii. Jazyk SQL a podobné jazyky pro manipulaci s daty, založené na relační algebře a relačním kalkulu, nemají dostatečnou vyjadřovací sílu a nejsou schopny vyjádřit uzávěr tranzitivních závislostí a všeobecné agregace v relačním datovém modelu. Tranzitivní uzávěr (podle [17]) databáze nebo deduktivní databáze (X,R), kde X je extenzionální databáze a R je množina pravidel, je databáze Y, která zahrnuje X a veškerá fakta, odvozená použitím pravidel z R. Logická pravidla využívající funkčních symbolů 6

mohou vyjádřit jakýkoliv výpočet tak, že ten může být zapsán v konvenčním programovacím jazyku. Dokonce logická pravidla bez funkčních symbolů (např. jazyk DATALOG) mají sílu vyjádřit výpočet větší než konvenční DQL (Data Query Language). Příklad 2-1: Mějme predikát manažér(z,m) a předpokládejme, že má hodnotu true tehdy, když zaměstnanec Z odpovídá přímo manažéru M. Můžeme definovat další predikát vedoucí(z,v), který nabývá hodnoty true, když V je manažérem zaměstnance Z nebo jeho manažéra,.. Predikát vedoucí(z,v) je tranzitivním uzávěrem manažéra(z,m). Predikát vedoucí(z,m) můžeme vyjádřit: a) vedoucí(z,m) manažér(z,m) b) vedoucí(z,m) vedoucí(z,a) & manažér(a,m) Příklad ilustruje rekurzivitu deduktivních pravidel. Pravidla definují pravdivé instance predikátů. 2.1 Datový model a jazyk v DATALOGu V datalogovské interpretaci se na databázi nahlíží jako na množinu faktů, kdy faktem je instance v odpovídající relaci. Fakt je tedy logický predikát, obsahující jako své argumenty pouze konstanty. Základní predikáty odpovídají databázovým relacím a jsou definovány na úrovni definice schématu databáze, zatímco odvozené predikáty jsou definovány pravidly. Pojem schéma databáze je rozuměn ve smyslu [15], kde je schéma databáze dáno množinou schémat relací, z nichž každé lze vyjádřit zadáním jména relace a množiny atributů včetně domén a množinou integritních omezení. Datový model v DATALOGu je model založený na klauzulární logice, která je speciálním typem predikátové logiky vhodným pro logické programování, s některými omezeními. Predikátovému symbolu v DATALOGu odpovídá stejně jako v predikátové i klauzulární logice jeho interpretující relace. Na rozdíl od relační algebry, relace nemají pojmenované atributy. Komponenty relací mají fixní pozice a odkazy na sloupce jsou možné prostřednictvím této pozice. Je-li např. p predikátový symbol, pak můžeme provést odkaz p(x,y,z), kde X označuje první komponentu nějaké n-tice v relaci P, která odpovídá predikátu p. DATALOG na rozdíl od predikátové či klauzulární logiky nepovoluje funkční symboly v argumentech predikátů, argumenty mohou být pouze proměnné a konstanty. Průvodce studiem: Obecně mohou pravidla obsahovat i funkční symboly. Máte-li zájem se s touto problematikou seznámit blíže, problémem definice pravidel 7

s použitím funkčních symbolů a především metodami vyhodnocování takových pravidel se podrobně zabývá publikace [16]. 2.1.1 Atomická formule Základním stavebním kamenem DATALOGu jsou atomické formule. Atomická formule je ve tvaru p(a 1, A 2, A n ). Argumentem může být proměnná nebo konstanta. Predikátový symbol je asociován s určitým počtem argumentů a můžeme použít p (K) k označení predikátu stupně K. Atomické formule lze konstruovat rovněž s aritmetickými porovnávacími predikáty =, <, >, V tom případě se jedná o atomickou formuli s vestavěnými predikáty a formule se zapisuje ve tvaru např. X < Y nebo <(X,Y). První způsob zápisu je označován jako infixová notace, druhý prefixová notace. Vestavěné predikáty nemusí reprezentovat konečné relace. 2.1.2 Klauzule a Hornovy klauzule Literálem se rozumí buď atomické formule nebo negované atomické formule. Negovaná atomická formule se označuje p(a 1,,A n ). Negovaná atomická formule se nazývá negativní literál. Nenegovaný literál je pozitivní literál. Klauzule je součet (logické OR) literálů. Hornova klauzule je klauzule s nejvýše jedním pozitivním literálem, tj. klauzule, která má obecně (zde s vynecháním atributů) tvar p 1 p 2... p n q. Klauzule tohoto typu lze, jak je známo, přepsat do tvaru implikace (p 1 & p 2 &...& p n ) q, který je vhodný pro formulování logických pravidel. To je totiž tvar formule umožňující vyjádřit, že q je logickým důsledkem současné platnosti předpokladů p 1, p 2,..., p n. Z toho důvodu jsou formule v Hornově klauzulárním tvaru základem pro formulování problémů v klauzulární logice, logickém programování i deduktivních databázích. Hornova klauzule je buď: Jeden pozitivní literál, např. p(x,y), který se označuje jako fakt. Jeden nebo více negativních literálů, čímž je chápáno integritní omezení. Pozitivní literál a jeden nebo více negativních literálů, což vyjadřuje deduktivní pravidlo p 1 p n q. Logickým ekvivalentem tohoto zápisu je zápis p 1 p 2 p n q. V DATALOGu se vyjádří Hornova klauzule ve tvaru: q p 1 & &p n, 8

kde: q je hlava pravidla (consequent), p 1 & &p n je tělo pravidla (antecedent). Kolekce Hornových klauzulí tvoří logický program. Proměnné, které se vyskytují pouze v těle, mohou být existenčně kvantifikovány, zatímco ostatní proměnné jsou univerzálně kvantifikovány v celém pravidle. Příklad 2-2: 1) sourozenec(x,y) rodič(x,z) & rodič(y,z) & X <>Y 2) bratranec(x,y) rodič(x,x p ) & rodič(y,y p ) & sourozenec(x p,y p ) 3) bratranec(x,y) rodič(x,x p ) & rodič(y,y p ) & bratranec(x p,y p ) 4) příbuzný(x,y) sourozenec(x,y) 5) příbuzný(x,y) sourozenec(x,y) & rodič(y,z) 6) příbuzný(x,y) příbuzný(z,y) & rodič(x,z) Například pravidlo 1) říká, že pro všechny X a Y je X sourozencem Y tehdy, jestliže existuje Z takové, že Z je rodičem obou X i Y a přitom X a Y není tentýž jedinec. 2.2 Interpretace klauzule, model a logický důsledek 2.2.1 Interpretace atomů Stejně jako v predikátové logice souvisí pojem atomu s pojmem predikátu a ten zase s pojmem relace i v klauzulární logice. Schéma syntaxe n-árního predikátu <n-ární predikátový symbol>(<atribut>, <atribut>,..,<atribut>) odpovídá schématu jeho interpretující relace stejné arity <jméno relace>(<atribut>, <atribut>,..,<atribut>). Atributy uvedené v závorkách schématu relace i schématu odpovídajícího predikátu, se stejně jako v predikátové logice i v relační teorii nazývají deskriptory, neboť slouží k popisu toho, co jednotlivé výrazy v závorce za predikátovým symbolem znamenají. Příklad schémtua predikátu : matka(<matka>, <dítě>) 9

zamezí nejasnostem, ke kterému ze dvou termů predikátu se vztahuje event. ohodnocení pomocí objektů z podmnožiny matek universa diskursu a ke kterému se vztahuje ohodnocení prvky podmnožiny dětí. Predikát může mít jakoukoliv aritu, ale pokud nějakou má, je jí pro účel interpretace přiřazena odpovídající interpretující relace stejné arity. Interpretace atomu musí postupovat na základě pravdivostní hodnoty predikátu. Je-li atomem n-ární predikátový symbol p(t 1, t 2,...,t n ), kde t 1, t 2,...,t n jsou konstanty nebo proměnné, které se po svém ohodnocení staly rovněž konstantami, nabývá atom pravdivostní hodnoty true, právě když (t 1, t 2,...,t n ) je prvkem relace R interpretující predikátový symbol p. Protože klauzule v Datalogu má tvar q p 1 & &p n, je interpretována jako false v jediném případě, a to v tom, kdy jsou všechny atomy p 1,, p n jejího těla interpretovány jako true a atom q hlavy je interpretován jako false. 2.2.2 Dedukce modelem množiny pravidel Definice 2-1 podle [15] Model množiny pravidel je množina faktů (predikátů s konstantami jako argumenty), které po dosazení do všech pravidel ohodnocují všechna pravidla hodnotou true. Je tedy nutné současné splnění všech pravidel. Příklad2-3: Jsou předpokládána pravidla: 1) p(x) q(x) 2) q(x) r(x) Tato pravidla říkají, že je-li r true, pak q je taky true a je-li q true, je taky p true. Jeden možný model je model M1 = {r(1), q(1), p(1), q(2), p(2), p(3)}. Pravidla mají hodnotu true pro argumenty uvedené v modelu. Pro všechny ostatní argumenty mají hodnotu false. Důkaz: X=1 Po dosazení do pravidla (1): true true Po dosazení do pravidla (2): true true X=2 Po dosazení do pravidla (1): true true Po dosazení do pravidla (2): true false 10

X=3 Po dosazení do pravidla (1): true false Po dosazení do pravidla (2): false false Ať je provedena jakákoli substituce, pravidla vždy nabývají hodnoty true. Z toho vyplývá, že M1 je modelem množiny pravidel {(1), (2)}. Při použití pravidel k definování operací nad databází se předpokládá, že instance databáze dává hodnotu true tehdy, když odpovídající relace obsahuje tento fakt jako svou n-tici. Nechť r je databázový predikát a p, q jsou predikáty, definované využitím r. Lze předpokládat, že r(1) je true, zatímco r(x) je false pro X <> 1. Existuje další model M2 = {r(1), q(1), p(1)}. Existuje konečný počet modelů s databází, která má pouze r(1) true. M2 je minimální model, tzn. že nelze zaměnit žádný fakt z true na false, aniž by byl porušen model dokazující databázi {r(1)}. M1 nemá tuto vlastnost minimality. Model M1 se získá použitím definice logických důsledků. 2.2.3 Formální odvozování logického důsledku Stejně jako v predikátové (klauzulární) logice i v Datalogu existují dva přístupy k prověřování, resp. generování logických důsledků databáze. První z nich je již zmíněný sémantický přístup vycházející z modelů množiny předpokladů, druhým je přístup čistě formální, pro nějž není nutné zabývat se pravdivostními hodnotami atomů klauzulí. Tato interpretace vychází z axiomů použitých v důkazu. Z faktů v databázi může být získán další fakt použitím pravidel jako jejich logický důsledek. Logickým důsledkem množiny pravidel je každý fakt, který byl z databáze formálně odvozen použitím pravidel. Všechna fakta lze odvodit použitím pravidel s axiomem if then. To znamená, že substitucí dokázaných faktů do daných faktů jsou vytvořena další fakta. V tomto smyslu lze definovat význam kolekce pravidel v existenci množiny faktů odvoditelných z daných faktů. Tvar pravidla je následující: hlava tělo resp. consequent antecedent 2.2.4 Výpočtová definice Vychází z vytvoření algoritmu pro stanovení, zda potencionální fakt (predikát s konstantami jako argumenty) je pravdivý nebo nepravdivý. Například se může jednat o algoritmus nalezení minimálního modelu pro množinu pravidel. Pravidla lze např. převést na soustavu rovnic relační 11

algebry. Takto získané rovnice lze řešit iterativně, obdobně jako soustavu algebraických rovnic. Výsledek řešení soustavy rovnic relační algebry se nazývá pevný bod. 2.3 Graf závislostí a rekurze Graf závislostí obsahuje predikáty jako uzly grafu a orientované hrany grafu vyjadřují tu skutečnost, že predikát p je odvoditelný z predikátu q. To znamená, že existuje pravidlo se subcílem označeným predikátem p a s hlavou označenou predikátem q. p q Logický program je rekurzivní, jestliže jeho graf závislostí má jeden nebo více cyklů. Predikáty, které jsou součástí jednoho nebo více cyklů, se nazývají rekurzivní predikáty. V příkladu 2-2 se předpokládá, že predikát rodič je koncept obsažený v EDB a predikáty sourozenec, bratranec a příbuzný jsou součástí IDB, rodič(r,d) znamená, že R je rodičem D. Graf závislostí: příbuzný bratranec sourozenec rodič Obr. 2-1 2.4 Bezpečná pravidla Podmínkou při definování pravidel je (mají-li mít operace nad databází smysl), aby byly operace prováděny nad konečnými relacemi. Existují dva zdroje, které vedou k nekonečným relacím: Proměnná se vyskytuje pouze ve vestavěném predikátu. Proměnná se vyskytuje pouze v hlavě pravidla. Pravidla by měla mít tu vlastnost, že nebudou vytvářet z konečných relací relace nekonečné. Existují v podstatě dva způsoby, jak zabezpečit výše 12

uvedenou vlastnost. Jednou možností je limitovat každou proměnnou, která se objeví v pravidle a druhou možností je povolit pouze ordinární (ne vestavěné) predikáty, které korespondují s konečnými relacemi. 2.4.1 Formální limitování proměnných podle [15] 1) Každá proměnná, která se objeví jako argument v ordinárním predikátu v těle pravidla je limitována. 2) Každá proměnná X, která se objeví ve výrazu typu X = a nebo a = X (kde a je konstanta) je limitována. 3) Proměnná X je limitována, pokud se objeví ve výrazu typu X = Y, kde Y je limitována proměnná. Pravidlo je definováno jako bezpečné, jestliže všechny jeho proměnné jsou limitovány. Příklad pravidel, která nejsou bezpečná: p(x,y) X = Y proměnné X,Y nejsou limitovány p(x,y) q(y) proměnná Y je limitována výrazem q(y), ale proměnná X není limitována Příklad bezpečného pravidla: P(X,Y) q(x,z) & T = b & Y = T proměnné X, Z sou limitovány výrazem q(x,z), proměnná T je limitována výrazem T = b, proměnná Y je limitována výrazem Y = T. 2.5 Vyhodnocování nerekurzívních pravidel V dalším textu budou předpokládána pouze bezpečná pravidla, která neobsahují negace. Taková pravidla jsou označována jako pravidla datalogovská. V atalogovské třídě pravidel existuje způsob převedení nerekurzivních pravidel do výrazů relační algebry a lze vždy nalézt takové uspořádání ve vyhodnocovaných pravidlech, že relace v ěle zrovna vyhodnocovaného pravidla jsou k ispozici [14]. Nechť existuje pravidlo r obsahující predikáty p 1, p n. Je-li toto pravidlo nerekurzivní, pak lze vytvořit graf závislostí p 1,, p n tak, že existuje-li hrana p i p j, pak i < j. Jednotlivé relace lze vypočíst v ořadí p 1,, p n, přičemž při výpočtu relace p i se objeví pouze dříve vypočtené predikáty. Výpočet relace pro každý predikát p i lze podle [15] rozdělit do dvou kroků: 1) Pro každé pravidlo r, které má p i v lavě, se stanoví relace odpovídající tělu pravidla jako přirozené spojení dílčích relací, jejichž predikáty se vyskytují v ěle pravidla r. V ěle pravidla se vyskytují predikáty relací z BD, resp. IDB. Protože se jedná o 13

nerekurzivní pravidlo, lze předpokládat, že všechny relace z DB s redikáty p k, kde k < i jsou již vypočteny. 2) Vypočte se projekce relace získané v odě 1) dle proměnných vyskytujících se v ěle pravidla. Pokud existuje více pravidel r m, která mají p i v lavě pravidla, pak se bod 1) provede pro každé pravidlo r m a následně se provede sjednocení všech dílčích relací. Příklad 2-4: Příklad vychází z pravidla 2) v příkladu 2-2: bratranec(x,y) rodič(x,x p ) & rodič(y,y p ) & sourozenec(x p,y p ) Nechť jsou vypočteny relace R a S pro predikáty rodič a sourozenec. Pravidlo 2) lze převést na rovnici relační algebry, která má následující tvar: B(X,X p,y,y p ) = R(X,X p ) R(Y,Y p ) S(X p,y p ) Operátor je operátor přirozeného spojení, který je asociativní a komutativní, tzn. nezáleží na pořadí uvedených predikátů. Relace B(X,X p,y,y p ) se skládá ze čtveřic (a,b,c,d) takových, že: (a,b) je obsažena v R (c,d) je obsažena v R (b,d) je obsažena v S Všechny čtveřice (a,b,c,d), které po dosazení do těla pravidla ohodnocují formuli jako true, tvoří relaci B. Příklad 2-5: Příklad demonstruje vyhodnocování nerekurzivních pravidel dle [15]. Nechť existují následující čtyři pravidla. 1) p(a,y) r(x,y) 2) p(x,y) s(x,z) & r(z,y) 3) q(x,x) p(x,b) 4) q(x,y) p(x,z) & s(z,y) Predikáty r a s jsou EDB predikáty, z čehož lze předpokládat existence relací R a S. Predikáty p a q jsou IDB predikáty, pro které je nutné vypočítat relace P a Q. Nejdříve je třeba vylepšit pravidla 1) a 3) odstraněním konstanty a opakované proměnné v hlavách pravidel. Pravidla lze upravit následovně: 1) p(x,y) r(z,y) & X=a 2) p(x,y) s(x,z) & r(z,y) 14

3) q(x,y) p(x,b) & X=Y 4) q(x,y) p(x,z) & s(z,y) Výpočet relace P se provede převedením pravidel na operace relační algebry: kde: P(X,Y) = π X,Y (R(Z,Y) {a}) π X,Y (S(X,Z) R(Z,Y)) π X,Y je projekce atributů X,Y, {a} je unární konstantní relace, je operace přirozeného spojení, je operace sjednocení. Dále se vypočte relace Q: Výraz pro dílčí relaci p(x,b) je: kde: Z je libovolně zvolená proměnná, σ Z=b je podmínka selekce, π X je projekce atributu X. π X (σ Z=b (P(X,Z)) Výše uvedený výraz přinese do relace q(x,y) pouze atribut X. Relace však obsahuje i atribut Y, jehož hodnoty se rovnají hodnotám atributu X. Atribut Y do relace přinese výraz π Y (P(Y,W)), kde W je opět libovolně zvolená proměnná. Kartézský součin (označený operátoren x) těchto dvou projekcí za podmínky, že X = Y je vyjádřením pravidla 3). Pravidlo 4) lze zapsat výrazem: Výsledná relace Q je: σ X=Y (π X (σ Z=b (P(X,Z))) x π Y (P(Y,W))) π X,Y (P(X,Z) S(Z,Y)) Q(X,Y) = σ X=Y (π X (σ Z=b (P(X,Z))) x π Y (P(Y,W))) π X,Y (P(X,Z) S(Z,Y)) 15

2.6 Rekurzivní pravidla Pravidlo je rekurzivní, pokud ve své hlavě obsahuje predikát shodný s predikátem v těle pravidla. Rekurzivní pravidla se vyskytují v dotazech na tranzitivní uzávěr množiny závislostí (chápaný ve smyslu [17]). Takový dotaz se skládá ze dvou pravidel. Startovacího pravidla, které je nerekurzivní a zabezpečuje bázi rekurze a rekurzivního pravidla, které zabezpečuje indukci. 2.6.1 Vyhodnocování rekurzívních pravidel Při vyhodnocování rekurzivních pravidel (tj. v grafu závislostí jednotlivých predikátů se vyskytuje cyklus) je situace složitější v tom, že výpočet dílčí relace obsahuje výraz, který ještě není vyhodnocen. Základní myšlenkou deduktivních databází je možnost odvozování faktů použitím pravidel a další využití těchto faktů k odvozování dalších faktů. Existuje-li konečná databáze EDB, na kterou se použijí datalogovská pravidla, existuje pouze konečný počet různých faktů, která mohou být odvozena. Tato fakta musí být ve tvaru p(a 1,, a k ), kde p je IDB predikát a a 1,,a k jsou konstanty databáze. Pomocí pravidel lze vyjádřit graf závislostí uvedený na obr.2-1 a to s následujícím označením relací pro uvedené predikáty: R rodič S sourozenec B bratranec P příbuzný Graf závislostí pak lze podle [15] vyjádřit následujícími pravidly: 1) S(X,Y) = π X,Y (σ X<>Y (P(X,Z) P(Y,Z))) 2) B(X,Y) = π X,Y (R(X,X p ) R(Y,Y p ) S(X p,y p )) π X,Y (R(X,X p ) R(Y,Y p ) B(X p,y p )) 3) P(X,Y) = S(X,Y) π X,Y (P(X,Z) R(Y,Z)) π X,Y (P(Z,Y) R(X,Z)) Výpočet relace B z pravidla 2) vyžaduje znalost B(X p,y p ), ovšem tato relace ještě není vypočtena. Pravidlo 2) je třeba transformovat do soustavy rovnic relační algebry. Takto získané rovnice lze řešit iterativně, obdobně jako soustavu algebraických rovnic. Řešením soustavy rovnic relační algebry je tzv. pevný bod. Metoda pevného bodu je jedna z metod odvozování faktů z pravidel obsahujících rekurze. Vstupem do metody je kolekce datalogovských pravidel s EDB predikáty r 1,., r k a IDB predikáty p 1,, p k včetně příslušných relací R 1,.R k. Výstupem je nejmenší pevný bod, který představuje množinu faktů odvoditelných z dané množiny pravidel. Pevný bod se získá řešením datalogovských rovnic získaných z pravidel. 16

2.7 Negace v pravidlech Situace, kdy je potřeba do těla pravidla umístit negativní literál je celkem frekventovaná. Čistě teoreticky již takové pravidlo není Hornovou klauzulí. Při přepisu takového pravidla do relační algebry by bylo nejjednodušší použít operace doplňku, který ovšem není základní operací relační algebry, a proto je vhodnější použít operaci rozdílu. Doplněk konečné množiny může být nekonečný a tato situace není přípustná z hlediska bezpečnosti deduktivních pravidel. Z uvedeného důvodu nelze nad doplňkem provádět operace selekce a spojení. Problém může nastat, pokud se v těle pravidla vyskytne proměnná pouze v negativním literálu. V takovém případě je třeba proměnnou eliminovat. Příklad 2-6: Nechť existují predikáty muž(x), rodič(x,y) a pomocí deduktivních pravidel je odvozen predikát není_otec(x). není_otec(x) muž(x) rodič(x,y) Odstranění proměnné Y: otec(x) muž(x) rodič(x,y) není_otec(x) otec(x) Přepis do relační algebry: není_otec(x) = muž(x) - π X (rodič(x,y)) V souvislosti s výskytem negace v těle pravidla vyvstává problém stratifikace. Stratifikace může být dosaženo pouze tehdy, lze-li pravidla rozdělit do takových vrstev, že k vyhodnocení každé vyšší vrstvy jsou vyžadována pouze fakta vyhodnocena v nižší vrstvě. Stratifikace nemůže být dosaženo, pokud se v pravidle vyskytuje koncept závislý na sobě samém jak negativně, tak rekurzivně. Nechť existuje množina pravidel, ve které se vyskytují predikáty p, q. Existuje-li pravidlo ve tvaru p q a zároveň existuje v grafu závislostí hrana z p do q, je daná množina pravidel nestratifikovatelná. Pro zjištění, zda daná množina pravidel je či není stratifikovatelná existuje jednoduchý algoritmus, který zároveň rozdělí pravidla do vrstev, ve kterých mají být vyhodnocována. Algoritmus je např. popsán v [15]. Pojmy k zapamatování: EDB, IDB, 17

dedukce, deduktivní pravidlo, formule, klauzule, Hornovy klauzule, interpretace klauzule, graf závislostí, rekurze, bezpečnost pravidel, vyhodnocování pravidel Úkoly k zamyšlení: 1. Navrhněte pravidlo, které nebude bezpečné. Zdůvodněte, proč je tomu tak. 2. Navrhněte soubor pravidel, která budou obsahovat rekurzi. 3. Vytvořte praktický příklad pro odvození faktu z množiny faktů a pravidel. Kontrolní otázky: 1. Jaké mohou být argumenty predikátů v Datalogu? 2. Uveďte příklad atomické formule s vestavěným predikátem. 3. Co je logickým ekvivalentem k zápisu p 1 p n q a jak vypadá zápis takovéto Hornovy klauzule v Datalogu? 4. Vytvořte graf závislostí k příkladu 2-1. 18

3 DEDUKTIVNĚ OBJEKTOVÉ SYSTÉMY ŘÍZENÍ BÁZE DAT Cíl: Po prostudování kapitoly 3 budete lépe rozumět důvodům k přechodu od relačních databází k databázím objektovým a deduktivním, resp. objektovědeduktivním. Dále budete umět krátce charakterizovat některé systémy řízení báze dat založené na objektově-deduktivních paradigmatech. Klíčová slova: Deduktivní databáze, objektově-orientované systémy řízení báze dat, Florid, Gedblog, Illustra, ODE, Validity, RockRoll, P/FDM. Průvodce studiem: Problémy spojené s klasickým návrhem informačních systémů lze rozdělit do dvou skupin. Hlavní problém přináší ta skutečnost, že reálný svět je mnohem složitější než je schopen postihnout jeho model (informační systém). Dalším problémem je korektnost informačního systému a uspokojivá transformace dotazů sestavených v přirozeném jazyce do jazyka umělého, včetně interpretace odpovědí. Snaha řešit tyto problémy posouvá výzkum a vývoj v oblasti databázových technologií směrem k technologiím objektovým a deduktivním. Deduktivní databáze reprezentují přístup, který vznikl z požadavku rozšíření vyjadřovací síly relačního jazyka a zároveň zachování jeho neprocedurality. Nezanedbatelná výhoda deduktivních databází ovšem spočívá rovněž v redukci dat, kdy je možno nahradit velké množství dat několika deduktivními pravidly. Zajímavý je příklad F.Bryho, který realizoval informační systém veřejné dopravy s využitím deduktivní databáze. Pravidlo: Je-li svátek, platí jízdní řád jako v neděli nahradí mnoho konkrétních denních jízdních řádů [14]. Zajištění větší flexibility při řešení multimediálních a distribuovaných požadavků je problém, jehož řešení se spojuje se vznikem objektověorientovaných databází. Objektově-orientované systémy řízení báze dat by měly zajistit větší flexibilitu při práci s velkými objemy dat, při práci s komplikovanými transakcemi a při zakomponování databází do moderních distribuovaných architektur (např. COBRA). Současné trendy ve vývoji databázové technologie ukazují, že vedle tradičních databázových systémů 2. generace budou vyvíjeny systémy pro bohatší podporu struktur objektů a pravidel. Požadavky jsou kladeny na správu objektů a implementaci pravidel. Ve většině deduktivně objektových systémů řízení báze dat jsou pravidla zabudována do metod tříd, což vede k duplicitním kódům. Vhodnější přístup k využití deduktivních pravidel je možné spatřovat v udržování pravidel zvlášť (jako samostatné objekty) a 19

umožnit na ně konstruovat i dotazy. Vzhledem k univerzalitě a širokému využívání jazyka SQL se dá předpokládat, že zůstane zachován i ve většině budoucích databázových systémů. To ovšem nebrání implementaci objektových a deduktivních jazyků, jak jsou toho příkladem jazyky O-Telos a Chimera, jejichž charakteristice se budeme ještě v této opoře věnovat. I když spojení deduktivně objektová databáze není jediné možné a bylo vyvinuto několik deduktivně relačních systémů řízení báze dat, založených na DATALOGu (LDL, NAIL!, POSTGRES), výzkum a vývoj se v současné době zaměřuje především na spojení těchto dvou přístupů, tj. objektového a deduktivního. V této souvislosti lze jmenovat např. systémy ConceptBase, Florid, Gedblog, Illustra, ODE, Validity RockRoll, P/FDM. Systém ConceptBase je podrobně popsán v kapitole 4 a je snadno dosažitelný v plně funkční podobě na Internetu včetně nezbytné dokumentace. (http://www-i5.informatik.rwth-aachen.de/cbdoc/cbaccess.html). Následuje krátká charakteristika ostatních, výše uvedených systémů řízení báze dat. Podrobnější popis by byl nad rámec předkládané výukové opory. Pro bližší seznámení se s popisovanými systémy jsou uváděny odkazy na další materiály, vesměs na URL adresy. 3.1 Florid Florid je deduktivně objektový databázový systém, který využívá jazyka F- logic k definování datových struktur a dotazování. F-logic je navržen jako logický, deklarativní jazyk, který akceptuje objektově-orientované modelování dat, a který kombinuje deklarativní sémantiku a expresivitu deduktivních databázových jazyků s bohatými modelovacími schopnostmi objektově-orientovaných datových modelů. Systém Florid podporuje definice schémat databáze včetně vícenásobné dědičnosti. Vyhodnocování logických programů je založeno na postupu zdola-nahoru vycházejícího z DATALOGu. Florid umožňuje komunikaci s web servery a tudíž zabezpečuje přístup k web dokumentům. Florid byl vyvinut na univerzitě v Mannheimu a Freiburgu. Více informací o jazyku F-logic lze získat na URL adrese: http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?f-logic nebo na adrese http://www.cs.sunysb.edu/~kifer/dood/. 3.2 Gedblog Gedblog je logický systém řízení báze dat (založený na logické databázové teorii), který má schopnost zpracovávat ne-grafické i grafické informace. Byl vyvinut jako rozšíření systému Edblog právě o možnost zpracování grafických informací. Gedblog využívá logické teorie založené na různých typech klauzulí: 20

Hornovy klauzule (pravidla pro vyjádření intenzionální databáze a fakta pro extenzionální databázi). Integritní omezení jsou interpretována tak, že instance hlavy pravidla jsou dedukovány, jestliže tělo pravidla je vyhodnoceno jako true. Kontroly podmínek platnosti (check). Syntaxe podmínek platnosti je: A 1 &.&A n B 1 &.&B m Transakce, které představují vykonání modifikace extenzionálních dat za situace, jsou-li splněny stanovené podmínky. Více informací o systému lze získat na adrese: http://rep1.iei.pi.cnr.it/projects/gedb/. 3.3 Illustra Illustra je vcelku nový systém řízení báze dat (z r. 1995), který spojuje relační systém s objektovou orientací a s aktivními pravidly. Illustru bychom mohli označit jako objektově relační systém řízení báze dat, který disponuje relačním datovým modelem, jazykem SQL a který je rozšířen o objektovou orientaci (dědičnost, metody, ). Pro definování struktur databáze. Illustra disponuje vestavěnými datovými typy a jakýmikoli uživatelem definovanými datovými typy. Dědičnost se vztahuje jak na atributy, tak na funkce. Funkce v Illustře jsou části kódu, zapsaného v SQL nebo v C, které mohou být uchovávány v databázi a mohou být volány. Pravidla využívá Illustra k tomu, aby přebírala zodpovědnost za správnost manipulace s daty (jednoduché operace Insert, Delete, Update), tzn. pravidla slouží převážně k definování integritních omezení. 3.4 ODE Systém ODE je založen na databázovém programovacím jazyku O++, který je rozšířením jazyka C++ o podporu řízení dat jako jsou transakce, perzistentní objekty a aktivní pravidla. V ODE je koncept aplikační domény modelován prostřednictvím tříd, jejichž syntaxe a sémantika je inspirována jazykem C++. ODE využívá jak perzistentních, tak volativních objektů (pozn. perzistence, resp. volativnost není vlastnosti tříd, nýbrž vlastností objektů). Deduktivní pravidla systém ODE nepodporuje, pouze pravidla aktivní, která se v ODE nazývají triggery. Pokud chceme možností deduktivních pravidel využít i v systému ODE, je třeba je transformovat do triggerů. To znamená převést deklarativní výraz na O++ funkci. Transformovat lze rovněž rekurzivní pravidlo využitím rekurzivní funkce jazyka O++. Generická integritní omezení systémem ODE přímo podporována nejsou. Integritní omezení jsou přeložena do aktivních pravidel (triggerů). Při překladu je třeba replikovat všechna aktivní pravidla, která vznikla transformací deduktivních pravidel, v příslušných třídách, protože ODE nepodporuje necílené koncepty (pozn. pojem cílený resp. necílený koncept bude vysvětlen dále). 21

Pro více informací lze sáhnout na adresu: http://www.nada.kth.se/~sam/pim/db/userguide.html. 3.5 Validity Validity patří do skupiny deduktivně objektových databázových systémů. Často se vyskytuje termín deduktivní a objektově-orientované databáze (DOOD). Současný výzkum v oblasti deduktivních databází je zaměřen na spojení deduktivních schopností s objektově orientovanými databázemi za účelem kombinace výhod expresivity objektových datových modelů a deklarativního stylu logického programování. Validity je prvním komerčním produktem na tomto poli výzkumu a vývoje. Deduktivní jazyk implementovaný v systému Validity se nazývá DEL (Datalog Extended Language). DEL umožňuje uživatelem definované typy, jednoduchou i vícenásobnou dědičnost, metody. Deklarativní DEL je jazykem pro psaní formulí, které jsou používány jako deduktivní pravidla a integritní omezení. Příkazový DEL je databázový programovací jazyk, umožňující zapisovat aplikační transakce, těla funkcí a metody. Současná verze systému Validity neumožňuje zapisovat aktivní pravidla. Více informací o systému Validity lze získat např. z článku Oris Friesen, Alexandre Lefebvre, Laurent Vieille: VALIDITY: Applications of a DOOD System. EDBT 1996: 131-134, Springer. 3.6 RockRoll RockRoll je deduktivní a objektově-orientovaný databázový systém, který disponuje příkazovým databázovým jazykem ROCK a deduktivním dotazovacím jazykem ROLL. ROCK může být použit pro definování schématu databáze a pro manipulaci s daty, zatímco ROLL se využívá k tvorbě dotazů a k definování deklarativních metod. Více informací lze nalézt na adrese: http://www.cee.hw.ac.uk/databases/rnr.html. 3.7 P/FDM P/FDM je systém řízení báze dat, který byl navržen pro řešení netradičních aplikací, jako jsou aplikace pro návrh databází. Jedná se o systém založený na datovém modelu v Prologu, který je rozšířen o některé rysy objektověorientovaných datových modelů. Manipulace s daty je realizována jednoduchými operacemi, implementovanými jako procedury v Prologu. Kromě Prologu je součástí P/FDM i kompilátor jazyka Daplex (jazyk pro definice dat a manipulaci s daty). Daplex je deklarativní jazyk vysoké úrovně. Výstupem z kompilátoru Daplexu je prologovský program, který obsahuje vložená volání jednoduchých databázových operací. Daplex obsahuje optimalizátor dotazů, který využívá heuristické vyhledávání. Kompilátor je schopen přeložit generická integritní omezení vyjádřená v Daplexu do fragmentů programu v Prologu, který hlídá integritu dat 22

při aktualizaci databáze. P/FDM disponuje grafickým uživatelským rozhraním, založeným na formulářích. Ve vývoji je verze systému, která bude využívat tří-rozměrnou grafiku. Systém pracuje ve vyspělém víceuživatelském režimu. Ucelenou představu o systému lze získat prostudováním web stránek na adrese http://www.csd.abdn.ac.uk/~pfdm/. Průvodce studiem: Kromě výše zmíněných SŘBD existují a jsou více méně ověřovány i další systémy, jako např. Algres, LDL++, Quixote, Aditi, Coral, XSB a další. Některé z nich jsou volně dostupné na Internetu, v některých z nich již byly vytvořeny četné aplikace. Většinou se jedná o systémy vyvinuté na západoevropských a amerických univerzitách. Pojmy k zapamatování: Deduktivní databáze, objektově-orientované systémy řízení báze dat, Florid, Gedblog, Illustra, ODE, Validity, RockRoll, P/FDM. Úkoly k zamyšlení: Pokuste se najít na Internetu některé další systémy řízení báze dat, které vykazují charakteristiky deduktivních databází. Krátce je popište včetně tříd aplikací, na kterých již byly využity. Kontrolní otázky: 1. Co je hlavní výhodou deduktivních databází? 2. Jaké jsou základní charakteristiky deduktivních systémů pro řízení báze dat (SŘBD)? 3. Jaké znáte deduktivní SŘBD? 23

4 DEDUKTIVNĚ OBJEKTOVÝ DATABÁZOVÝ SYSTÉM CONCEPTBASE A JEHO ZÁKLADNÍ KOMPONENTY Cíl: Po prostudování této kapitoly budete umět: - vyjmenovat klíčové charakteristiky ConceptBase, - vyjmenovat a popsat vzory tvrzení v ConceptBase, - vyjmenovat a vysvětlit Telosovské axiomy, - sestavit jednoduchý model v Telos, - sestavovat literály a formule v Telos, - sestavovat dotazy v Telos, - převést E-R diagram na CB graf. Klíčová slova: ConceptBase, Logický, rámcový a grafický formát, Telos, vzory tvrzení, třídy znalostní báze, Telosovské axiomy, CBL, dotazování, model, metamodel. Systém ConceptBase je rozšířením relačních databázových systémů ve dvou směrech. Jednou oblastí je zavedení objektově orientovaných abstrakcí do datového modelu, dalším rozšířením je zabudování deduktivních abstrakcí a v tomto ohledu je systém ekvivalentem logických a sémantických sítí. Co se týká architektury, systém ConceptBase je systémem s architekturou klient - server. V ConceptBase je implementován jazyk pro reprezentaci znalostí Telos. Databáze v ConcetBase je objektovou databází s pravidly jako atributy tříd. Hlavní rozšíření je v přidání komplexních domén, sdílených objektů a procedur do databáze. Znalostní reprezentace vychází z deduktivních databází nebo ze sémantických datových modelů. Jazyk Telos umožňuje integrovat deduktivní a objektově-orientované datové modely. Průvodce studiem: Veškeré definice, axiomy a vzorce, použité v této kapitole, jsou přebrány od autorů systému ConceptBase (Lehrstuhl Prof. Dr. Matthias Jarke, c/o ConceptBase Team). Většina literatury pro zpracovní této kapitoly byla získána prostřednictvím Internetu na zdrojové adrese http://wwwi5.informatik.rwth-aachen.de/cbdoc/. 24

Definice 4-1 podle[25] ConceptBase je deduktivní objektově orientovaný systém řízení metadatabází, zaměřený především na konceptuální modelování. Systém má implementován jazyk Telos. Klíčové charakteristiky: Logický, rámcový a grafický pohled na uložené objekty. Neomezená možnost rozšiřování hierarchie tříd. Deduktivní pravidla a integritní omezení jako atributy tříd. Dotazy jako třídy s omezeným členstvím. Komplexní pohledy. Aktivní pravidla se schopností aktualizovat databáze a spouštět externí programy. Perzistentní objekty s možným přístupem k historii objektů. Úroveň meta pravidel a integritních omezení pro axiomatické rozšíření jazyka. Optimalizace dotazů. Grafický prohlížeč. Interface pro deklaraci dotazů a tvorbu Telosovských objektů. Všechny třídy, meta třídy, instance, atributy, pravidla, integritní omezení a dotazy jsou reprezentovány jako objekty. Každý objekt může být aktualizován po dobu životního cyklu objektové báze. Dokonce členství ve třídě je reprezentováno jako objekt. Sémantika Telosu je založena na DATALOGu. Schopnost metamodelování dovoluje využívat heterogenní modelovací jazyky jako E-R diagram, OMT, atd. jako Telosovské metatřídy, jejichž pravidla a integritní omezení zakóduje do axiomů např. procesem generalizace. Metatřídy mohou existovat v rámci stejné objektové báze. Objekt popsaný v jednom modelovacím jazyku může být spojen s objektem popsaným v jiném modelovacím jazyku. ConceptBase sleduje klient-server architekturu. Klientský program se může spojit s ConceptBase serverem a měnit data s využitím komunikačního protokolu Internetu. Programovací interface umožňuje uživateli vytvářet vlastní klientské aplikace v Jave, C nebo Prologu. ConceptBase využívá X11 interface, který nabízí grafické, tabulkové a textové nástroje pro editování a prohlížení objektové báze. 4.1 Jazyk Telos v ConceptBase Model vytvořený v jazyce Telos zevšeobecňuje dřívější datové modely a znalostní reprezentace, jako E-R diagram nebo sémantické sítě a spojuje je s predikátovými tvrzeními a dočasnými informacemi. 25

Příklad 4-1: Následuje stručné popsání reality, na které budou demonstrovány některé příklady kapitoly 4. Společnost má zaměstnance, někteří z nich mohou být manažéry. Zaměstnanci mají jméno a plat, které se může občas měnit. Jsou přiřazeni k oddělení, které je vedeno manažérem. Vedoucí zaměstnance může být odvozen od oddělení zaměstnance a manažéra oddělení. Žádnému zaměstnanci není dovoleno vydělat více, než vydělává jeho vedoucí. Telos podporuje tři různé formáty pro zápis příkazů. Základním formátem je formát logický, který umožňuje začlenit jazyk predikátových tvrzení pro deduktivní pravidla, dotazy a integritní omezení. Dalšími formáty je formát grafický (sémantická síť) a formát rámcový (frame). Oba formáty jsou založeny na formátu logickém a jsou z něho odvozeny. 4.1.1 Logická interpretace znalostní báze Znalostní báze v Telosu je založena na konečné množině vzájemně propojených tvrzení, která jsou zde chápána jako objekty. kde: KB = {P(oid, x, l, y, tt) oid, x, y, tt ID, l LABEL }, oid je identifikátor, který je klíčem v znalostní bázi, ID je neprázdná množina identifikátorů, LABEL je neprázdná podmnožina jmen, x je zdroj, l je jméno, y je cíl, tt je doba trvání. Objek x má vztah s objektem y, kde jméno vztahu je l. Vztah se předpokládá do doby tt. 4.1.2 Vzory tvrzení V ConceptBase jsou rozeznávány čtyři vzory tvrzení a jsou jim dávána následující jména: 1) Individuals P(oid, oid, l, oid, tt) Toto tvrzení vytváří objekt oid se jménem l, jehož trvání se předpokládá do doby tt. 2) InstanceOf relationship (instantiations) 26

P(oid, x, *instanceof, y, tt) Toto tvrzení vytváří instanci x třídy y do doby tt. 3) IsA relationships (specializations) P(oid, x, *isa, y, tt) Toto tvrzení vytváří třídu x jako specializaci třídy y do doby tt. 4) Attribute Všechna další tvrzení. 4.1.3 Předdefinované třídy Telosovské znalostní báze Telos využívá strukturální axiomy, jejichž úplný výčet je uveden v publikaci [18]. Tyto axiomy jsou spojeny s předdefinovanými třídami, které jsou automatickou součástí každé Telosovské znalostní báze. Individual obsahuje všechny individualy jako instance InstanceOf obsahuje všechny konkretizace jako instance IsA obsahuje všechny specializace jako instance Attribute obsahuje všechny atributy jako instance Proposition obsahuje všechna tvrzení jako instance Class obsahuje všechny třídy (včetně sebe) jako instance Token obsahuje ty individualy, které již nemohou mít instance SimpleClass jsou Token MetaClass Metameta Class obsahuje individualy, které mohou mít instance, které obsahuje individualy, které mohou mít instance, které jsou SimpleClass obsahuje individualy, které mohou mít instance, které jsou MetaClass Navíc Telos využívá vestavěných tříd jako Integer, Real a String. 4.1.4 Některé Telosovské axiomy Uživatelé nepracují přímo s tvrzeními, ale s jejich textovou (frame) nebo grafickou (sémantická síť) podobou. Tyto formáty nejsou založeny na oid objektů, ale na jejich komponentě label. Aby bylo garantováno jednoznačné mapování, musí platit axiom pojmenování. Axiom pojmenování Jméno individualu musí být jednoznačné, jména všech atributů společného zdrojového objektu musí být rovněž jednoznačná. 27

Specializační axiom Cílový objekt specializace dědí všechny instance svého zdroje. Dle příkladu 4-1 všechny instance třídy Manažér jsou zároveň instancemi třídy Zaměstnanec. Konkretizační axiom Jestliže p je tvrzení, které je instancí tvrzení P, pak zdroj p musí být instancí zdroje P a cíl p musí být instancí cíle P. 4.2 Jednoduchý model v Telos Nechť existuje následující jednoduchý model: Osoba Pacient Lék Jakub Penicilín Obr. 4-1 Pak tvrzení, korespondující s uvedenými objekty a vztahy, jsou následující: 1) Proposition(Osoba, Osoba, -, Osoba) 2) Proposition(Pacient, Pacient, -, Pacient) 3) Proposition(#1, Pacient, *isa, Osoba) 4) Proposition(Lék, Lék, -, Lék) 5) Proposition(#2, Pacient, bere, Lék) 6) Proposition(Penicilín, Penicilín, -, Penicilín) 7) Proposition(#3, Penicilin, *instanceof, Lék) 8) Proposition(Jakub, Jakub, -, Jakub) 9) Proposition(#4, Jakub, *instanceof, Pacient) 10) Proposition(#5, Jakub, lék1, Penicilín) 11) Proposition(#6, #5, *instanceof, #2) 28

Oid, výše označováno #, je generováno systémem. Objekty, korespondující s tvrzeními 1), 2) a 4), jsou individualy. Ostatní objekty se nazývají atributy a to atributy instanční, které mají třetí komponentu *instanceof a atributy specializační, které mají třetí komponentu *isa. Je-li tvrzení ve formě Proposition(oid, x, *instanceof, c), pak x je instancí c (c je třídou x). Je-li tvrzení ve formě Proposition(oid, c, *isa, d), pak c je subclass d (d je superclass c). 4.3 Predikátový jazyk CBL jako součást Telos Predikátový jazyk CBL se využívá k vyjádření integritních omezení, deduktivních pravidel a dotazů. Proměnné, použité ve formulích, musí být kvantifikovány a spojeny s typem, který limituje rozsah možných instancí z množiny instancí dané třídy. Obvykle je znalostní báze omezena do doby rollbacku, která závisí na typu formule. KB rbt = {P(oid, x, l, y, tt) in KB rbt during tt} Integritní omezení je vyhodnocováno v aktuální KB (rbt představuje aktuální čas prováděné transakce). Rollback pro dotaz je dán dobou vyhodnocení dotazu. Význam použitých symbolů je shodný s významem odpovídajících symbolů v kapitole 4.1.1. 4.3.1 Literály, umožňující přístup k Telos objektům 1) (x in c) resp. in(x,c) infixová, resp. prefixová notace Objekt x je instancí třídy c. 2) (c isa d) resp. IsA(c,d) Objekt c je specializací třídy d. 3) (x m y) resp. A(x,m,y) Objekt x má atribut, jehož hodnoty jsou instance objektu y. Takto definovaný vztah je instancí kategorie atributů s označením m. 4) From(p, x) Objekt p má zdroj v objektu x. 5) To(p, y) Objekt p má cíl v objektu y. 6) Label(p, l) Objekt p má jméno l. Následující literály definují druhou třídu formulí: 7) x < y, x > y, x <= y, x >= y, x = y, x <> y, kde x,y musí být instance třídy Integer nebo Real. 8) x = = y 29

Objekty x a y jsou totožné. 4.3.2 Kvantifikovatelné proměnné Formule s univerzálním kvantifikátorem má tvar: Forall x c F nebo forall x(x in c) F Pro všechny instance x třídy c platí formule F. Formule s existenčním kvantifikátorem má tvar: Exists x c F nebo exists x (x in c) and F Existuje instance x třídy c, pro kterou platí formule F. 4.3.3 Restrikce pro formule Každá konstanta, obsažená ve formuli F, musí být jméno existujícího objektu v Telosovské znalostní bázi nebo je to konstanta vestavěné třídy Integer, Real nebo String. Každý atribut (x m y) obsažený ve formuli musí mít unikátní jméno m ve znalostní bázi. Definice 4-2 podle[25] Legální integritní omezení je CBL formule, která splňuje uvedené restrikce. Příklad 4-2: Zapišme integritní omezení pro plat zaměstnance/manažéra (vycházeje z příklady 4-1), když platí, že plat zaměstnance/manažéra nesmí být větší než 10.000,- Kč Forall x Zaměstnanec y Integer (x plat y) y <= 10000 30