35
Vorlesung Datenbanksysteme vom 3.12.2007 Deduktive Datenbanken Grundidee Rekursion Datalog Auswertung von Datalog-Regeln Ausdruckskraft von Datalog

Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Embed Size (px)

Citation preview

Page 1: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Vorlesung Datenbanksysteme vom 3.12.2007

Deduktive Datenbanken

GrundideeRekursionDatalogAuswertung von Datalog-RegelnAusdruckskraft von Datalog

Page 2: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Grundidee

• EDB / IDB

Page 3: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

3

Grundidee einer deduktiven Datenbank

IDBintensionale Datenbasis(hergeleitete Relationen)

Regeln als Datalog Programm

EDBextensionale Datenbasis

(Basis-Relationen)

Page 4: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

4

TerminologieDie extensionale Datenbasis (EDB):

besteht aus einer Menge von Relationenentspricht einer "ganz normalen" relationalen Datenbasis.

Die Deduktionskomponente: besteht aus einer Menge von (Herleitungs-)Regeln . Die Regelsprache heißt Datalog (= Data + Prolog).

Die intensionale Datenbasis (IDB):Besteht aus einer Menge von hergeleiteten Relationen. Die IDB wird durch Auswertung des Datalog-Programms aus der EDB generiert.

Page 5: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Rekursion

• Transitive Hülle• Beispiele• Rekursion in SQL

Page 6: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

6

Transitive HülleDefinition: Transitive Hülle der 2-stelligen Relation R(A,B):

trans(R)= {(a,b) | ∃k ∈ N, ∃Γ1, ..., Γk ∈ R, Γ1.A= a ÆΓ1.B= Γ2.A ÆM

Γk-1.B= Γk.A Æ

Γk.B= b}Problem in der relationalen Algebra (und SQL-92):

Die Tiefe k der Rekursion ist a priori nicht bekannt.Beliebig tiefe Rekursion lässt sich in der relationalen Algebra (und in SQL-92) nicht ausdrücken.

Page 7: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

7

Beispiel: Pfad in einem Graph5

1 2 3 4 kante(1,2).6 7 kante(2,3).

kante(3,4).kante(3,6).kante(4,5).kante(4,6).kante(6,7).

Page 8: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

8

Beispiel: Pfad in einem Graph5

1 2 3 4 kante(1,2).6 7 kante(2,3).

kante(3,4).kante(3,6).kante(4,5).kante(4,6).kante(6,7).

Datalog Programm: Intensionale Relation "pfad":pfad(V,N) :- kante(V,N).pfad(V,N) :- kante(V,Z), pfad(Z,N).

Page 9: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

9

Weitere Beispiele:Relationale Uni-DB:

EDB-Relation: voraussetzen (Vorgänger, Nachfolger)

IDB-Relation: aufbauend (Vorl1, Vorl2), d.h.:

Vorl2 setzt Vorl1 entweder "direkt" oder "indirekt" voraus.

Komponenten eines Produkts: EDB-Relation: enthaelt (Artikel, Teil)

IDB-Relation: komponenten (Teil1, Teil2), d.h.:

Teil1 enthält Teil2 entweder "direkt" oder "indirekt".

Problem: Diese IDB-Relationen erfordern beliebig tiefe Rekursion=> Solche Anfragen lassen sich in der relationalen Algebra (und in SQL-92) nicht ausdrücken!

Page 10: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

10

Rekursion in SQL

select Vorgängerfrom voraussetzen, Vorlesungenwhere Nachfolger= VorlNr and

Titel= `Der Wiener Kreis´

21374Die 3 Kritiken4630

21342Glaube und Wissen5022

21332Der Wiener Kreis5259

gelesenVon

SWSTitelVorlNr

21374Grundzüge5001

21262Bioethik5216

21263Wissenschaftstheorie5052

21254Logik4052

21252Mäeutik5049

21263Erkenntnistheorie5043

21254Ethik5041

Vorlesungen

NachfolgerVorgänger50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzen

Page 11: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

11

Der Wiener Kreis 5259

Wissenschaftstheorie 5052

Bioethik 5216

Erkenntnistheorie

5043

Ethik 5041

Mäeutik5049

Grundzüge

5001

Page 12: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

12

Rekursion in SQL: Tiefe 2select v1.Vorgänger

from voraussetzen v1, voraussetzen v2, Vorlesungen v

where v1.Nachfolger= v2.Vorgänger and

v2.Nachfolger= v.VorlNr and

v.Titel=`Der Wiener Kreis´

21374Die 3 Kritiken4630

21342Glaube und Wissen5022

21332Der Wiener Kreis5259

gelesenVon

SWSTitelVorlNr

21374Grundzüge5001

21262Bioethik5216

21263Wissenschaftstheorie5052

21254Logik4052

21252Mäeutik5049

21263Erkenntnistheorie5043

21254Ethik5041

Vorlesungen

NachfolgerVorgänger50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzenNachfolgerVorgänger

50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzen

Page 13: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

13

select v1.Vorgängerfrom voraussetzen v1

M

voraussetzen vn_minus_1voraussetzen vn,Vorlesungen v

where v1.Nachfolger= v2.Vorgänger andM

vn_minus_1.Nachfolger= vn.Vorgänger andvn.Nachfolger = v.VorlNr andv.Titel= `Der Wiener Kreis´

Rekursion in SQL: Tiefe n

Page 14: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

14

SELECT Vorgaenger, Nachfolger FROM voraussetzenSTART WITH Nachfolger =

( SELECT VorlNrFROM VorlesungenWHERE Titel = 'Der Wiener Kreis' )

CONNECT BY PRIOR Vorgaenger = Nachfolger;

Bemerkungen:Die "voraussetzen"-Tabelle stellt keinen Baum dar sondern einen DAG (directed acyclic graph). Hierarchische Anfragen kommen mit beliebigen Graphen (die Zyklen enthalten können) nicht zurecht!

Rekursion in Oracle 10g

Page 15: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

15

Graph-Erreichbarkeitsproblem in Oracle 10g (1)

5

1 2 3 4 6 7

CREATE TABLE Kante(von INTEGER,nach INTEGER,CONSTRAINT kantePK PRIMARY KEY(von,nach));

SELECT LEVEL as pfadlaenge, nachFROM KanteSTART WITH von = 2CONNECT BY PRIOR nach = von;

Page 16: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

16

Graph-Erreichbarkeitsproblem in Oracle 10g (2)

5

1 2 3 4 6 7

SELECT LEVEL as pfadlaenge, nachFROM KanteSTART WITH von = 2CONNECT BY PRIOR nach = von;

Bemerkung: Diese hierarchische Anfrage scheitert in Oracle, weil der Graph nun zyklisch ist.

Page 17: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Datalog

• Datalog-Regeln• Abhängigkeitsgraph

Page 18: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

18

Datalog-Regeln

Jedes qj (...) ist eine atomare Formel: q ist dabei

der Name einer Basisrelation,

der Name einer abgeleiteten Relation oder

ein eingebautes Prädikat: <,=,>,…

X1, ...,Xm sind Variablen, die mindestens einmal auch im Rumpf vorkommen müssen.

Logisch äquivalente Form der obigen Regel:p(...) ∨ ¬q1 (...) ∨... ∨ ¬qn (...)

).,...,(),...,,...,( -: ),...,( 111111 1 nnmnnmm AAqAAqXXp

Kopf (head) Rumpf (body)

Page 19: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

19

Datalog-Regelnp, q, … : Prädikate.

EDB-Prädikate: kommen nur im Rumpf von Regeln vor.IDB-Prädikate: kommen (auch) im Kopf von Regeln vor.

Beispiel: Vorlesungen von Sokrates mit mehr als 2 SWSsokLV(T,S) :- vorlesungen(V,T,S,P ),

professoren(P, 'Sokrates',R,Z ), >(S,2).

Ä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 > 2))}

Page 20: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

20

Beispiel Datalog-ProgrammgeschwisterVorl(N 1, N 2) :- voraussetzen(V, N 1),

voraussetzen(V, N 2), N 1 < N 2.

geschwisterThemen(T 1, T 2) :- geschwisterVorl(N 1, N 2),vorlesungen(N 1, T 1, S 1, R 1),vorlesungen(N 2, T 2, S 2, R 2).

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

Basis-Relationen: voraussetzen: {[Vorgänger, Nachfolger]}vorlesungen: {VorlNr, Titel, SWS, gelesenVon]}

Page 21: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

21

Abhängigkeitsgraph

geschwisterThemen

vorlesungenvoraussetzen

geschwisterVorlaufbauen

verwandt

Abhängigkeitsgraph: = "wird verwendet von"Ein Datalog-Programm ist rekursiv, wenn der Abhängigkeitsgraph einen (oder mehrere) Zyklen hat

Unser Beispielprogramm ist rekursiv wegen des Zyklusaufbauen → aufbauen

Page 22: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Auswertung von Datalog-Regeln

• nicht-rekursive Regeln• rekursive Regeln• Negation im Regel-Rumpf

Page 23: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

23

Nicht-rekursive Regeln

Auswertung der IDB-RelationengeschwisterVorl(N 1, N 2)geschwisterThemen(T 1, T 2)

mit Hilfe der Basisrelationenvorlesungen(N 2, T 2, S 2, R 2).voraussetzen(V, N 2)

geschwisterThemen

vorlesungenvoraussetzen

geschwisterVorl

Page 24: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

24

Auswertung nicht-rekursiver Datalog-Programme

1. Topologische Sortierung der Relationen, z.B.: voraussetzen, geschwVorl, vorlesungen, geschwThemen

2. Für jede Regel mit dem Kopf p(...), alsop(...) :- q1(...), ..., qn(...).

bilde eine Relation, in der alle im Regel-Rumpf vorkommenden Variablen als Attribute vorkommen, z.B.: GV(N1, N2, V).

3. Diese Relation wird im wesentlichen durch einen natürlichen Verbund der Relationen Q1, ..., Qn, die den Relationen der Prädikate q1, ..., qn entsprechen, gebildet.

4. Projektion auf die Variablen, die im Regel-Kopf vorkommen.5. Das Prädikat p kann durch mehrere Regeln definiert sein.

=> Die Relationen aus den vorigen Schritten werden vereinigt.

Page 25: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

25

Auswertung von geschwisterVorl

Ausdruck der relationalen Algebra für die Relation GV:

σN1<N2 (Vs1(V, N1) A Vs2(V, N2))

Vs1(V, N1) := ρV←$1(ρN1 ←$2 (ρVs1(Voraussetzen)))

Die dadurch definierte Relation enthält Tupel [v, n1, n2] mit:

Das Tupel [v, n1] ist in der Relation Voraussetzen enthalten,

das Tupel [v, n2] ist in der Relation Voraussetzen enthalten

und n1 < n2.

Formel zur Berechnung der Relation GV:

GV(N1, N2) := ΠN1, N2 (σN1<N2(Vs1(V, N1) A Vs2(V, N2)))

Page 26: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

26

Rekursive Regeln

Auswertung der IDB-Relationaufbauen(V,N )

mit Hilfe der Basisrelationvoraussetzen(V, N 2)

voraussetzen

aufbauen

Page 27: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

27

(Naive) Auswertung durch Iteration

A := {}: /*Initialisierung auf die leere Menge */repeat

until A' = Aoutput A;

)),(),((),(),( , NMVsMVANVVsNVA NV AΠ∪=

/* Regel zweite* /));,(),('(:/* Regel erste * /);,(:

;:'

, NMVsMVAAANVVsA

AA

NV AΠ∪===

d.h.: A = kleinster Fixpunkt

Page 28: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

28

(Naive) Auswertung durch Iteration

wie in Schritt 3 (keine Veränderung, also Terminierung

des Algorithmus

4

[5001,5041], [5001,5043], [5001,5049], [5041,5216], [5041,5052], [5043,5052],

[5052,5259][5001,5216], [5001,5052], [5041,5259], [5043,5259],

[5001,5259]

3

[5001,5041], [5001,5043], [5001,5049], [5041,5216], [5041,5052], [5043,5052],

[5052,5259][5001,5216], [5001,5052], [5041,5259], [5043,5259],

2

[5001,5041], [5001,5043], [5001,5049], [5041,5216], [5041,5052], [5043,5052],

[5052,5259]

1ASchritt

NachfolgerVorgänger

50415001

52595052

50525041

50525043

52165041

50495001

50435001

voraussetzen

Page 29: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

29

Regeln mit Negation im Rumpf

indirektAufbauen(V,N) :- aufbauen(V,N), ¬voraussetzen(V,N)

Stratifizierte Datalog-Programme:Eine Regel mit einem negierten Prädikat im Rumpf, wie z.B.p (...) :- q1 (...), ..., ¬qi (...), ..., qn (...).kann nur dann sinnvoll ausgewertet werden, wenn die Relation Qi schon vollständig materialisiert ist. Also müssen zuerst alle Regeln mit Kopf qi (...) :- ...ausgewertet sein. Das geht nur, wenn qi nicht von p abhängt.Also darf der Abhängigkeitsgraph keine Pfade von qi nach p enthalten. Wenn das für alle Regeln der Fall ist, nennt man das Datalog-Programm stratifiziert.

Page 30: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

30

( ) ( )

( ) ( ) ( )( )( ) ( )

( ) i

malk

i

NV

QDOMDOMQ

BildungKomplement

NVVsNVANVVsNVANViA

NVvsNVaNViA

−××=

−=

Π=

¬−

−444 3444 21 ...:

,,,,,

).,(,,:,

, A

Regeln mit Negation im Rumpf

Page 31: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

Ausdruckskraft von Datalog

• Datalog mit/ohne Negation und Rekursion• relationale Algebra-Operatoren in Datalog

Page 32: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

32

Ausdruckskraft von Datalog

Die Sprache Datalog mit Negation, aber eingeschränkt auf nicht-rekursive Programme, wird auch als Datalog ¬

non-recbezeichnet.

Diese Sprache Datalog ¬non-rec hat genau die gleiche

Ausdruckskraft wie die relationale Algebra. => Damit hat sie auch die gleiche Ausdruckskraft wie der relationale Tupel- und Domänenkalkül.

Datalog mit Negation und Rekursion geht natürlich über die Ausdruckskraft der relationalen Algebra hinaus, z.B.: man kann in Datalog die transitive Hülle einer Relation definieren.

Page 33: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

33

Datalog-Formulierung der relationalen Algebra-Operatoren

( )( ) ( )( ) ( ).,,"",:,,

.3,,,,:,,,

,3

RSMäeutikVnvorlesungeRSVquerySRSTVnvorlesungeRSTVquery

nVorlesungeSWSσ

−>−

>

Selektion

Projektion).,,,(:),( RaumRangNamePersNrnprofessoreRangNamequery −

Join(

( ) ( ) ( ).,,,,,,,:,

,

RaRgNRnprofessoreRSTVnvorlesungeNTquery

ProfessorennVorlesunge A gelesenVon=gelesenVonNameTitel

Π )

Page 34: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

34

Datalog-Formulierung der relationalen Algebra-Operatoren

Kreuzprodukt

nVorlesunge n Professore

).4,3,2,1( ),4,3,2,1(:)4,3,2,1,4,3,2,1(

×

−PPPPnprofessoreVVVVnvorlesungePPPPVVVVquery

Vereinigung

( ) ( )

).,,,(:),().,,,(:),(

,

RaRgNamePersNrnprofessoreNamePersNrqueryBFNamePersNrnassistenteNamePersNrquery

nProfessorenAssistente PersNr,NameNamePersNr

−−

Π∪Π

Page 35: Vorlesung Datenbanksysteme vom 3.12 · 4 Terminologie Die extensionale Datenbasis (EDB): ¾besteht aus einer Menge von Relationen ¾entspricht einer "ganz normalen" relationalen Datenbasis

35

Datalog-Formulierung der relationalen Algebra-Operatoren

Mengendifferenz

( ) ( )

( ) ( )( ) ( )

( ) ( ) ( ).,:.,:

.,,,:

VgrundlagenVvorlNrVqueryNVenvoraussetzVgrundlagen

RSTVnvorlesungeVvorlNr

enVoraussetznVorlesunge VorgängerVorlNr

¬−−

Π−Π