Teil 1: Deduktive Datenbanken Gerd Stumme Christoph Schmitz Wintersemester 004/05
Deduktive Datenbanken Grundkonzepte einer deduktiven Datenbank IDB intensionale Datenbasis (hergeleitete Relationen) Regeln als Datalog Programm EDB extensionale Datenbasis (Basis-Relationen) Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05
Terminologie Die extensionale Datenbasis (EDB), die manchmal auch Faktenbasis genannt wird. Die EDB besteht aus einer Menge von Relationen(Ausprägungen) und entspricht einer ganz normalen relationalen Datenbasis. Die Deduktionskomponente, die aus einer Menge von (Herleitungs-)Regeln besteht. Die Regelsprache heißt Datalog abgeleitet von dem Wort Data und dem Namen der Logikprogrammiersprache Prolog. Die intensionale Datenbasis (IDB), die aus einer Menge von hergeleiteten Relationen(Ausprägungen) besteht. Die IDB wird durch Auswertung des Datalog-Programms aus der EDB generiert. Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 3
Datalog Regel: soklv(t,s) :-vorlesungen(v,t,s,p ), professoren(p, Sokrates,R,Z ), >(S,). Äquivalenter Domänenkalkül-Ausdruck: {[t,s] v,p ([v,t,s,p] Vorlesungen n,r,z ([p,n,r,z] Professoren n = Sokrates s > ))} Grundbausteine der Regeln sind atomare Formeln oder Literale: q(a 1,..., A m ). q ist dabei der Name einer Basisrelation, einer abgeleiteten Relation oder eines eingebauten Prädikats: <,=,>, Beispiel: professoren(s, Sokrates,R,Z ). Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 4
Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 5 Raum Rang Name PersNr 6 C4 Sokrates 15 7 C4 Kant 137 36 C4 Curie 136 309 C3 Augustinus 134 5 C3 Popper 133 310 C3 Kopernikus 17 3 C4 Russel 16 Professoren Semester Name MatrNr 18 Xenokrates 400 Feuerbach 9555 Theophrastos 910 3 Carnap 8106 6 Schopenhauer 7550 8 Aristoxenos 6830 10 Fichte 610 1 Jonas 5403 Studenten 137 4 Die 3 Kritiken 4630 134 Glaube und Wissen 50 133 Der Wiener Kreis 559 gelesenv on SWS Titel VorlNr 137 4 Grundzüge 16 Bioethik 516 16 3 Wissenschaftstheorie 505 15 4 Logik 405 15 Mäeutik 5049 16 3 Erkenntnistheorie 5043 15 4 Ethik 5041 Vorlesungen Nachfolger Vorgänger 5041 559 505 505 5041 505 5043 516 5041 5049 5043 voraussetzen 516 8106 50 5403 50 9555 5049 910 5041 910 VorlNr MatrNr 610 910 559 8106 505 8106 5041 8106 405 7550 7550 hören Boss Fachgebiet Name PerslNr 15 Ideenlehre Platon 300 16 Gott und Natur Spinoza 3007 17 Keplersche Gesetze Newton 3006 17 Planetenbewegung Rhetikus 3005 16 Sprachtheorie Wittgenstein 3004 15 Syllogistik Aristoteles 3003 Assistenten Note PersNr VorlNr MatrNr 1 16 8106 137 4630 7550 15 5041 5403 prüfen
Eine Datalog-Regel p( X,..., X m): - q1( A11,..., A1 m ),..., qn( An 1,..., A 1 1 nmn ). Jedes q j (...) ist eine atomare Formel. Die q j werden oft als Subgoals bezeichnet. X 1,...,X m sind Variablen, die mindestens einmal auch auf der rechten Seite des Zeichens :- vorkommen müssen. Logisch äquivalente Form obiger Regel: p(...) q 1 (...)... q n (...) Wir halten uns an folgende Notation: Prädikate beginnen mit einem Kleinbuchstaben. Die zugehörigen Relationen seien es EDB- oder IDB-Relationen werden mit gleichem Namen, aber mit einem Großbuchstaben beginnend, bezeichnet. Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 6
Beispiel Datalog-Programm Zur Bestimmung von (thematisch) verwandten Vorlesungspaaren geschwistervorl(n 1, N ) :- voraussetzen(v, N 1), voraussetzen(v, N )), N 1 < N. geschwisterthemen(t 1, T ) :- geschwistervorl(n 1, N ), vorlesungen(n 1, T 1, S 1, R 1), Vorlesungen(N, T, S, R ). aufbauen(v,n ) :- voraussetzen(v,n ) aufbauen(v,n ) :- aufbauen(v,m ), voraussetzen(m,n ). verwandt(n,m ) :- aufbauen(n,m ). verwandt(n,m ) :- aufbauen(m,n ). verwandt(n,m ) :- aufbauen(v,n ), aufbauen(v,m ). Voraussetzen: {[Vorgänger, Nachfolger]} Vorlesungen: {VorlNr, Titel, SWS, gelesenvon]} Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 7
Analogie zur EDB/IDB in rel. DBMS Basis-Relationen entsprechen der EDB. Sichten entsprechen der IDB: Aufbauen als Regeln in einem deduktiven DBMS: aufbauen(v,n ) :- voraussetzen(v,n ) aufbauen(v,n ) :- aufbauen(v,m ), voraussetzen(m,n ). Aufbauen als Sichtdefinition in DB: create view aufbauen(v,n) as (select Vorgaenger, Nachfolger from voraussetzen union all select a.v, v.nachfolger from aufbauen a, voraussetzen v where a.n = v.vorgaenger) select * from aufbauen Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 8
Der Wiener Kreis Wissenschaftstheorie Bioethik Erkenntnistheorie Ethik Mäeutik Grundzüge Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 9
Rekursion in DB/SQL99: gleiche Anfrage with TransVorl (Vorg, Nachf) as (select Vorgänger, Nachfolger from voraussetzen union all select t.vorg, v.nachfolger from TransVorl t, voraussetzen v where t.nachf= v.vorgänger) select Titel from Vorlesungen where VorlNr in (select Vorg from TransVorl where Nachf in (select VorlNr from Vorlesungen where Titel= `Der Wiener Kreis ) ) Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 10
Es gibt unsichere Regeln, wie z.b. Sicherheit von Datalog-Regeln ungleich(x, Y) :- X Y. Diese definieren unendliche Relationen. Eine Datalog-Regel ist sicher, wenn alle Variablen im Kopf beschränkt (range restricted) sind. Dies ist für eine Variable X dann der Fall, wenn: die Variable im Rumpf der Regel in mindestens einem normalen Prädikat also nicht nur in eingebauten Vergleichsprädikaten vorkommt oder ein Prädikat der Form X = c mit einer Konstante c im Rumpf der Regel existiert oder ein Prädikat der Form X = Y im Rumpf vorkommt, und man schon nachgewiesen hat, dass Y eingeschränkt ist. Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 11
Ausdruckskraft von Datalog Die Sprache Datalog, eingeschränkt auf nicht-rekursive Programme aber erweitert um Negation, wird in der Literatur manchmal als Datalog non-rec bezeichnet Diese Sprache Datalog non-rec hat genau die gleiche Ausdruckskraft wie die relationale Algebra und damit ist sie hinsichtlich Ausdruckskraft auch äquivalent zum relativen Tupel- und Domänenkalkül Datalog mit Negation und Rekursion geht natürlich über die Ausdruckskraft der relationalen Algebra hinaus man konnte in Datalog ja z.b. die transitive Hülle der Relation Voraussetzen definieren. Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 1
Datalog-Formulierung der relationalen Algebra- Operatoren Selektion query V query V σ Vorlesungen, SWS 3, T, S, R : vorlesungenv, T, S, R, S 3., S, R : vorlesungenv," Mäeutik ", S, R. Projektion query( Name, Rang) : professoren( PersNr, Name, Rang, Raum). Join Titel, Name Vorlesungen A gelesenvon PersNr Professoren query T, N : vorlesungen V, T, S, R, professoren R, N, Rg, Ra. Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 13
Datalog-Formulierung der relationalen Algebra- Operatoren Kreuzprodukt query( V1, V, V 3, V 4, P1, P, P3, P4) : vorlesungen( V1, V, V 3, V 4), professore n( P1, P, P3, P4). Professoren Vorlesungen Vereinigung PersNr, Name Assistente n Professoren PersNr,Name query( PersNr, query( PersNr, Name) : Name) : assistenten( PersNr, Name, F, B). professoren( PersNr, Name, Rg, Ra). Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 14
Datalog-Formulierung der relationalen Algebra- Operatoren Mengendifferenz VorlNr vorlnr query Vorlesungen Voraussetzen V : vorlesungen V, T, S, R. V : voraussetzen V, N. V : vorlnr V, grundlagen V. grundlagen Vorgänger Deduktive und objektorientierte Datenbanken, Kassel, WS 004/05 15