laden - LS1 - Logik in der Informatik

Werbung
Datenbanktheorie
Sommersemester 2012 - Thomas Schwentick
Teil B: Anfragesprachen
6: Relationenkalkül: Bereichsunabhängigkeit und
Ausdrucksstärke
Version von: 8. Mai 2012 (16:01)
Inhalt
6.1 Sicherer Relationenkalkül
6.2 Ausdrucksstärke des Relationenkalküls
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 1
Semantische vs. Syntaktische Einschränkungen
• Wir haben eine Schwierigkeit des Relatio-
•
•
•
•
nenkalküls identifiziert:
– Anfrageergebnisse können vom Wertebereich abhängen, über den quantifiziert
wird
Wir haben uns für eine semantische Einschränkung von Formeln entschieden:
– die bereichsunabhängigen Anfragen des
Relationenkalküls
Es ergibt sich aber ein neues Problem:
– Wie sieht man einer Formel an, ob sie
bereichsunabhängig ist?
Wir zeigen in einem späteren Kapitel:
– Es gibt keinen Algorithmus, der entscheidet, ob eine gegebene Formel bereichsunabhängig ist
Deshalb betrachten wir nun syntaktische
Einschränkungen von Formeln:
– Wir definieren eine syntaktische Klasse
von Formeln, die genau alle Anfragen
des bereichsunabhängigen Relationenkalküls ausdrückt
DBT / Schwentick / SoSe 12
• Es gibt eine Vielzahl von syntaktischen Ein•
•
•
•
schränkungen von CALC, die genau die bereichsunabhängigen Anfragen umfassen
Wir folgen [Abiteboul, Hull, Vianu 1995]: bereichsbeschränkte Formeln
(Englisch: safe range)
Eine Alternative findet sich in [Levene, Loizou 1999] bzw. [Van Gelder, Topor 1991]:
zulässige Formeln
(Englisch: allowed)
– Jede bereichsbeschränkte Formel, die
Gleichheit nicht verwendet, ist auch zulässig
– Bei Vorhandensein von Gleichheit wird
die Definition von „zulässig“ jedoch ziemlich kompliziert
Formeln beider Klassen lassen sich in (halbwegs) effizient auswertbare Ausdrücke der
relationalen Algebra übersetzen
Das ist allerdings recht kompliziert
– Wir werden deshalb eine einfachere Methode betrachten, die nur einen ineffizienten Ausdruck erzeugt
Anfragesprachen 6. Relationenkalkül II
. Folie 2
Bereichsbeschränkte Formeln: Motivation
• Ziel: Wir stellen syntaktisch sicher, dass Variablen nur Werte aus der Datenbank annehmen können
• Wir definieren dazu für jede Formel ϕ eine Menge rr(ϕ) von freien Variablen von ϕ, für die diese Eigenschaft sichergestellt ist
Beispiel
•
•
•
•
•
•
•
= {x}
rr(¬P ROFS(„201“,„Turing“,x)) = ∅
rr(P ROFS(„201“,„Turing“,x) ∨ P ROFS(„212“,„Gödel“,y)) = ∅
rr(P ROFS(„201“,„Turing“,x) ∧ P ROFS(„212“,„Gödel“,y)) = {x,y}
rr(¬[P ROFS(„201“,„Turing“,x) ∨ P ROFS(„212“,„Gödel“,y)]) = ∅
rr(∃x P ROFS(x,„Gödel“,y)) = {y}
rr(∃x ¬P ROFS(x,„Gödel“,y)) = ∅
rr(P ROFS(„201“,„Turing“,x))
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 3
Bereichsbeschränkte Formeln: Definition
Definition
Definition
• Für jede Formel ϕ sei
SRNF(ϕ) die Formel, die aus
ϕ durch Anwendung der folgenden Regeln entsteht (bis keine
Regel mehr anwendbar ist)
– Alle quantifizierten Variablen
werden so umbenannt, dass
sie paarweise verschieden
sind und disjunkt zu den freien Variablen
– ∀x ψ wird durch ¬∃x ¬ψ
ersetzt
– ¬¬ψ wird durch ψ ersetzt
– ¬(ϕ ∨ ψ) wird durch
(¬ϕ ∧ ¬ψ) ersetzt
– ¬(ϕ ∧ ψ) wird durch
(¬ϕ ∨ ¬ψ) ersetzt
• Formeln SRNF(ϕ) sind in
safe-range-Normalform
(SRNF)
DBT / Schwentick / SoSe 12
• Für jede Formel ϕ des Relationenkalküls sei die Menge rr(ϕ) der bereichsbeschränkten Variablen gemäß der folgenden Tabelle induktiv definiert:
ϕ
rr(ϕ)
Bedingung
R(~
u)
Variablen in u
~
x=a
{x}
x 6= y
∅
ϕ1 ∧ ϕ2 rr(ϕ1 ) ∪ rr(ϕ2 )
ψ ∧ x = y rr(ψ) ∪ {x,y} rr(ψ) ∩ {x,y} =
6 ∅
ϕ1 ∨ ϕ2 rr(ϕ1 ) ∩ rr(ϕ2 )
¬ϕ
∅
rr(ϕ) 6= ⊥ (sonst:⊥)
∃x ψ
rr(ψ) − {x}
falls x ∈ rr(ψ)
∃x ψ
⊥
falls x 6∈ rr(ψ)
• ϕ ist bereichsbeschränkt, falls
rr(SRNF(ϕ)) = free(ϕ)
• {h~
ui | ϕ} ist bereichsbeschränkt, falls ϕ be•
reichsbeschränkt ist
CALCsr sei die Menge aller bereichsbeschränkten
Anfragen
Anfragesprachen 6. Relationenkalkül II
. Folie 4
Bereichsbeschränkte Formeln: Beispiele
Beispiel
• Alle Vorlesungen, die von Dozent 201 angeboten werden, oder nur von solchen
Professoren, die auch die Logik lesen:
{hxi |∃y1 VORL(y1 ,x,„201“)∨
∀y1 [∃y2 VORL(y2 ,x,y1 ) → ∃y2 VORL(y2 ,„Logik“,y1 )]
– Für diese Formel ϕ ergibt sich SRNF(ϕ) als:
∃y1 VORL(y1 ,x,„201“)∨
¬∃y1 [∃y2 VORL(y2 ,x,y1 ) ∧ ¬∃y3 VORL(y3 ,„Logik“,y1 )]
– Es gilt rr(SRNF(ϕ)) = ∅, also ist ϕ nicht bereichsbeschränkt
Beispiel
• Alle Vorlesungen, die von Dozent 201 angeboten werden, und die nur von solchen Professoren angeboten werden, die auch die Logik lesen:
{hxi |∃y1 VORL(y1 ,x,„201“)∧
∀y1 [∃y2 VORL(y2 ,x,y1 ) → ∃y2 VORL(y2 ,„Logik“,y1 )]
– Für diese Formel ϕ ergibt sich SRNF(ϕ) als:
∃y1 VORL(y1 ,x,„201“)∧
¬∃y1 [∃y2 VORL(y2 ,x,y1 ) ∧ ¬∃y3 VORL(y3 ,„Logik“,y1 )]
– Es gilt rr(SRNF(ϕ)) = {x}, also ist ϕ bereichsbeschränkt
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 5
Bereichsbeschränkte Anfragen sind bereichsunabhängig (1/4)
• Wir untersuchen jetzt das Verhältnis zwischen bereichsbeschränkten Anfragen und den anderen Anfragesprachen
• Dabei vervollständigen wir auch den Beweis von Proposition 5.3
Proposition 6.1
(a) Zu jedem Datalog-Programm P ohne Rekursion gibt es eine bereichsbeschränkte Formel ϕ,
so dass für alle passenden Datenbanken D gilt
P (D) = q(D) mit q = {h~
ui | ϕ}
(b) Für jede bereichsbeschränkte Formel ϕ ist die Anfrage {h~
ui | ϕ} bereichsunabhängig
Beweisidee
(a) Analyse der im Beweis von Proposition 5.3 konstruierten Formel
(b) Induktion nach Struktur von ϕ
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 6
Bereichsbeschränkte Anfragen sind bereichsunabhängig (2/4)
Beweisskizze für Proposition 6.1 (a)
• Sei P ein Datalog-Programm ohne Rekur′ , ϕ und ϕ
sion und seien Si , qij , qij
i
ij
•
wie im Beweis von Proposition 5.3
Wir zeigen durch Induktion nach i, dass für
alle i ≤ m gilt
rr(SRNF(ϕi )) = free(ϕi ):
–
i = 1:
∗ Jede Variable xi kommt in jeder Re′ positiv vor
gel qij
∗ Da jedes
V ϕ1j von der Form
∃~
y p Lp ist, ist eine Variable positiv in ϕ1j , wenn sie in mindestens ei-
➨
➨
➨
nem positiven Literal vorkommt (oder
durch Gleichheitsatome mit einer solchen Variablen verbunden ist)
Die freien Variablen von ϕ1j sind in
jeder Menge rr(ϕ1j )
rr(SRNF(ϕ1j )) = free(ϕ1j )
rr(SRNF(ϕ1 )) = free(ϕ1 )
DBT / Schwentick / SoSe 12
Beweisskizze für Proposition 6.1 (a) (Forts.)
• i > 1:
– In diesem Fall kann es sein, dass x
dadurch positiv in qij ist, dass es in
einem „intensionalen“ Atom Sr (~
v ) vorkommt
– Ein solches Atom entspricht in ϕij einer Formel ϕr
– Nach Induktion gilt
rr(SRNF(ϕr )) = free(ϕr )
– Da jede Variable xi in einem positiven
Literal vorkommt (oder...), folgt, analog
wie im Fall i = 1:
∗ Die freien Variablen von ϕij sind in
jeder Menge rr(ϕij )
➨ rr(SRNF(ϕij )) = free(ϕij )
➨ rr(SRNF(ϕi )) = free(ϕi )
➨ ϕm ist bereichsbeschränkt
Anfragesprachen 6. Relationenkalkül II
. Folie 7
Bereichsbeschränkte Anfragen sind bereichsunabhängig (3/4)
Beweisskizze für Proposition 6.1 (b)
• Sei ϕ(~
x) eine Formel in SR-Normalform
mit rr(ϕ) 6= ⊥
• Wir zeigen durch Induktion nach der Struktur von ϕ, dass für
– jede passende DB D ,
– jede Menge d ⊆ dom mit
adom(ϕ,D) ⊆ d,
– und jede Variablenbelegung
β : free(ϕ) 7→ d gilt:
Beweisskizze für Proposition 6.1 (b) (Forts.)
• Wir zeigen zunächst (1) für alle zusam•
mengesetzten Formeln:
Für ϕ von der Form:
– ϕ1 ∨ ϕ2 : Induktion, da
rr(ϕ) = rr(ϕ1 ) ∩ rr(ϕ2 )
– ϕ 1 ∧ ϕ2 :
∗ Falls ϕ2 von der Form x = y ist
und rr(ϕ1 ) ∩ {x,y} =
6 ∅:
· Gilt (D,β) |=d ϕ, so ist
β(x) = β(y)
· Also folgt (1) per Induktion
(1) Ist xi ∈ rr(ϕ) und gilt (D,β) |=d
¯ ϕ, so ist β(x ) ∈ adom(ϕ,D)
i
(D,β) |=d ϕ ⇐⇒
(D,β) |=adom(ϕ,D)∪β(free(ϕ)) ϕ
• Atomare Formeln: ϕ von der Form:
– R(~
u): X
– x = c: X
– x = y : Dann ist rr(ϕ) = ∅ X
∗ Andernfalls:
· Sei xi ∈ rr(ϕ)
➨ xi ∈ rr(ϕ1 ) oder xi ∈ rr(ϕ2 )
➨ β(xi ) ∈ adom(ϕ,D)
(2)
¯
DBT / Schwentick / SoSe 12
nach Induktion
–
∃y ϕ1 :
∗ Da nach Voraussetzung rr(ϕ) 6= ⊥
gilt rr(ϕ1 ) = rr(ϕ) ∪ {y}
∗ Also: rr(ϕ) ⊆ rr(ϕ1 ) und (1) folgt
nach Induktion
Anfragesprachen 6. Relationenkalkül II
. Folie 8
Bereichsbeschränkte Anfragen sind bereichsunabhängig (4/4)
Beweisskizze für Proposition 6.1 (b)
Beweisskizze für Proposition 6.1 (b)
• Jetzt zeigen wir (2) für zusammengesetzte Formeln durch Induktion über ϕ:
• (D,β) |=d ϕ ⇐⇒
(D,β) |=adom(ϕ,D)∪β(free(ϕ)) ϕ
• Sei nun ϕ bereichsbeschränkt, oBdA
– ¬ϕ1 , ϕ1 ∨ ϕ2 und ϕ1 ∧ ϕ2 : X
– Es bleibt der Fall ∃y ϕ1 :
„⇐“: folgt mit Induktion und wegen
adom(ϕ,D) ∪ β(free(ϕ))
„⇒“: ∗ Es gelte (D,β) |=d ϕ
➨ es gibt a ∈ d mit
➨ rr(ϕ) = free(ϕ)
• Seien d1 ,d2 ⊆ dom mit
adom(ϕ,D) ⊆ d1 ∩ d2 und β
eine passende Variablenbelegung
⊆d
(D,β(y/a)) |=d ϕ1
∗ Da y ∈ rr(ϕ1 ) folgt mit (1):
a ∈ adom(ϕ1 ,D)
∗ Sei nun β ′ =def β(y/a)
➨ adom(ϕ1 ,D) ∪ β ′ (free(ϕ1 )) =
adom(ϕ,D) ∪ β(free(ϕ))
∗ Mit Induktion folgt dann
(D,β ′ ) |=adom(ϕ,D)∪β(free(ϕ)) ϕ1 ]
∗ Also auch:
(D,β) |=adom(ϕ,D)∪β(free(ϕ)) ϕ
DBT / Schwentick / SoSe 12
in SRNF
• Wegen (1) wird ϕ nur für Variablenbelegungen mit Werten in adom(ϕ,D)
wahr
• Für solche Belegungen gilt wegen (2):
(D,β) |=d1 ϕ
⇐⇒
(D,β) |=adom(ϕ,D)∪β(free(ϕ)) ϕ
⇐⇒ (D,β) |=d2 ϕ
• Also auch:
JϕKd1 (D) = JϕKd2 (D)
➨ ϕ ist bereichsunabhängig
Anfragesprachen 6. Relationenkalkül II
. Folie 9
Inhalt
6.1 Sicherer Relationenkalkül
6.2 Ausdrucksstärke des Relationenkalküls
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 10
Grenzen der Ausdrucksfähigkeit: R EACH
Beispiel
• Eine Datenbank enthalte eine Relation
SFAEHRT, die Informationen über zur Zeit (!)
aktive S-Bahn-Teilstücke enthält:
SFAEHRT
Linie
Von
Nach
1
Do-Universität Do-Dorstfeld Süd
1 Do-Dorstfeld Süd Do-Dorstfeld
1 Do-Dorstfeld Süd Do-Universität
1
Do-Oespel
Do-Universität
4
Do-Dorstfeld
Do West
4
Do West
Do Möllerbrücke
• Die folgende Anfrage ergibt alle Paare (u,v),
für die die Station v von der Station u aus
zwei Stationen entfernt ist:
SELECT A.Von, B.Nach
FROM
SFAEHRT A, SFAEHRT B
WHERE A.Nach = B.Von
• Sie ist auch ausdrückbar durch:
F (x,y) ≡ ∃z ∃z1 ∃z2
SFAEHRT(z1 ,x,z) ∧ SFAEHRT(z2 ,z,y)
DBT / Schwentick / SoSe 12
• Lässt sich die folgende Anfrage
R EACH(u,v) auch ausdrücken?
– alle Paare (u,v), für die die Station v von der Station u aus (in
beliebig vielen Schritten) erreichbar ist
• Es ist nicht klar, wie diese Anfrage in
der Relationenalgebra ausgedrückt werden könnte
• Wie lässt sich beweisen, dass dies
nicht möglich ist?
– Wir wissen: wenn R EACH(u,v) in
der Relationenalgebra ausdrückbar
ist, dann auch im Relationenkalkül
– Wir werden mit Methoden der Endlichen Modelltheorie zeigen:
∗ R EACH(u,v) ist im Relationenkalkül nicht ausdrückbar
➨ R EACH(u,v) ist auch in der Relationenalgebra nicht ausdrückbar
Anfragesprachen 6. Relationenkalkül II
. Folie 11
Gaifman-Lokalität (1/4)
• Wir werden sehen: Anfragen des Relationenkalküls können Tupel t1 ,t2 nicht unterscheiden,
•
•
➞
•
wenn ihre Umgebungen gleich sind
Um diese Aussage zu präzisieren, benötigen wir
einige Grundbegriffe und etwas Notation
Wir beschränken uns vorerst auf DBs mit einer 2stelligen Relation und 2-stellige Anfragen q(x,y)
Solche DBs können wir als gerichtete Graphen
auffassen
Für einen Graphen G und Knoten u,v definieren
wir:
–
Beispiel
• G:
a
• U2G (a):
dG (u,v): Abstand von u und v in G (ohne
a
Berücksichtigung der Kantenorientierung)
–
dG (~
u,v):
Minimaler Abstand eines Knoten von u
~ und v
–
UkG (~
u):
Menge aller Knoten v mit dG (~
u,v)
–
• N2G (a):
≤k
a
NkG (~
u): der von UkG (~
u) induzierte Teilgraph von G
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 12
Gaifman-Lokalität (2/4)
Satz von Gaifman: Illustration
Satz von Gaifman: Illustration (Forts.)
• G:
• G könnte aber auch so aussehen:
a1
a1
b1
k
a2
k
a2
b1
k
b2
k
k
k
b2
k
k
• Der Satz von Gaifman sagt dann auch:
a1
• Der Satz von Gaifman sagt:
– Falls
a1
b1
k
k
so gilt ha1 ,b1 i
∼
=
– Falls
a2
b2
k
k
∈ JqK(G) ⇐⇒
ha2 ,b2 i ∈ JqK(G)
k
so gilt ha1 ,b1 i
DBT / Schwentick / SoSe 12
∼
=
b2
k
k
∈ JqK(G) ⇐⇒
ha2 ,b2 i ∈ JqK(G)
• Das heißt nicht, dass Anfrageergebnisse
• Dabei hängt der Radius k der betrachteten
Umgebungen von der Quantorentiefe der
Formel für q ab
b1
k
a2
•
nicht von globalen Eigenschaften der DB
abhängen können
Aber diese globale Abhängigkeit ist für alle
Tupel gleich
Anfragesprachen 6. Relationenkalkül II
. Folie 13
Gaifman-Lokalität (3/4)
Definition
Definition
• Sei D eine Datenbank
• Der Gaifman-Graph GD zu D hat
– adom(D) als Knotenmenge und
– eine (ungerichtete) Kante (u,v), wenn
u und v gemeinsam in einem Tupel
einer Relation von D vorkommen
• Der Abstand dD (u,v) zweier Elemente
von D ist ihr Abstand in GD
• Sei u
~ = hu1 , . . . ,uk i ein k-Tupel von
Elementen aus D
u) : minimaler Abstand zwi– dD (v,~
schen v und einem ui
–
UkD (~
u) : Menge der Elemente v von
D mit d(v,~
u) ≤ k
u) : Die von
– NkD (~
UkD (~
u) induzierte
Teildatenbank von D mit Konstanten u
~
DBT / Schwentick / SoSe 12
• Eine Anfrage q heißt Gaifman-lokal, falls
es ein k ≥ 0 gibt, so dass für jede Datenbank D und beliebige Tupel u
~, ~
v gilt:
NkD (~
u) ∼
v ) =⇒
= NkD (~
(~
u ∈ JqK(D) ⇐⇒ ~
v ∈ JqK(D))
Satz 6.2 [Gaifman 1982]
• Jede in der Prädikatenlogik ausdrückbare
Anfrage ist Gaifman-lokal
• Bemerkung: Gaifman hat eine sehr viel detailliere Normalform für die Prädikatenlogik
bewiesen, aus der die Lokalität direkt folgt
Satz 6.3
• Die R EACH-Anfrage kann nicht im Relationenkalkül ausgedrückt werden
Beweisidee
• Zeige: die R EACH-Anfrage ist nicht
Gaifman-lokal
Anfragesprachen 6. Relationenkalkül II
. Folie 14
Gaifman-Lokalität (4/4)
Beweisskizze
• Wir zeigen durch Widerspruch: Die R EACH-Anfrage ist nicht Gaifman-lokal
• Angenommen, es gäbe ein k ≥ 0, so dass für jede Datenbank D und beliebige Tupel u
~ = hu1 ,u2 i und ~
v = hv1 ,v2 i gilt:
N D (~
u) ∼
v ) =⇒ (~
u ∈ JR EACHK(D) ⇐⇒ ~
v ∈ JR EACHK(D))
= N D (~
k
k
• Wähle eine DB D , die in SFAEHRT zwei „Ketten“ der Länge 5k hat:
k
a
k
k
k
k
b1
k
k
k
k
b2
k
• Es gilt:
k a k
k b1 k
∼
=
k a k
k b2 k
• Also müssten ha,b1 i und ha,b2 i beide im Ergebnis oder beide nicht im Er➨
gebnis der Anfrage sein
Da b1 von a aus erreichbar ist, aber b2 nicht, erhalten wir einen Widerspruch
zur Annahme
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 15
Ausdrucksstärke des Relationenkalküls: Methoden
• Gaifman-Lokalität ist nicht der einzige methodische Ansatz zum Nachweis der Nichtausdrückbarkeit von Anfragen
• Einige weitere Methoden:
Hanf-Lokalität [Hanf 1965]
– Eine weitere Lokalitäts-basierte Methode, die für Ja/Nein-Anfragen hilfreich ist
Ehrenfeucht-Spiele
[Ehrenfeucht 1962, Fraïssé 1954]
– Ehrenfeucht-Spiele sind 2-PersonenSpiele auf Paaren von Datenbanken
(Strukturen)
– Der Satz von Ehrenfeucht und Fraïssé
impliziert, dass eine Ja/Nein-Anfrage
genau dann im Relationenkalkül ausdrückbar ist, wenn der erste Spieler eine
Gewinnstrategie in diesem Spiel hat
– Nicht-Ausdrückbarkeit lässt sich also
durch Nachweis einer Gewinnstrategie
für den zweiten Spieler beweisen
DBT / Schwentick / SoSe 12
Bounded-Number-of-Degrees
[Libkin, Wong 1997]
– Die Bounded-Number-of-DegreesEigenschaft sagt grob, dass falls in
einer DB alle Elemente kleinen Grad
(bezüglich GD ) haben, die Anzahl
verschiedener Grade im Anfrageergebnis auch klein ist
• Es gilt:
Hanf-lokal ⇒ Gaifman-lokal ⇒ BND
• Details hierzu sind in der Vorlesung Logik
und Komplexität zu erfahren
Anfragesprachen 6. Relationenkalkül II
. Folie 16
Ausdrucksstärke des Relationenkalküls: Fazit
• Da die R EACH-Anfrage nicht im Relationenkalkül ausgedrückt werden kann, kann sie
auch nicht in der Relationenalgebra ausgedrückt werden
• Allgemein kann die Relationenalgebra also
auch nur Gaifman-lokale (Hanf-lokale, BND)
Anfragen ausdrücken
• Eine weitere typische Schwäche der Relationenalgebra: sie kann nicht „beliebig weit
zählen“
• Zum Beispiel lässt sich die Anfrage
Welche Studierenden haben die
meisten Veranstaltungen belegt?
nicht in der Relationenalgebra ausdrücken
• SQL hat zusätzliche Operatoren zum Zählen, Gruppieren, Summieren etc.
• Wie beeinflussen diese Operatoren die Ausdrucksstärke?
– Natürlich lassen sich damit „ZählAnfragen“ wie die nach Studierenden mit
maximal vielen belegten Veranstaltungen
ausdrücken
– Aber: selbst die Hinzunahme beliebiger
arithmetischer Operationen (in einem
präzise definierten Sinne) zum Relationenkalkül ergibt wieder eine Hanf- (und
damit Gaifman-) lokale Ausdruckssprache [Libkin 2000]
• SQL3 und seine Nachfolger erlauben auch
die Spezifikation rekursiver Anfragen
➞ Rekursion betrachten wir in einem späteren
Kapitel
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 17
SQL und Tupelkalkül
• Diese Korrespondenz gilt auch für kompli-
Beispiel
ziertere Anfragen
• Wie bereits gesehen, entspricht die SQL-Anfrage
Beispiel
SELECT VorlNr, Titel
FROM
P ROFS, VORL
WHERE VORL.Dozent = P ROFS.PersNr
AND P ROFESSOREN.Name =
„Chomsky“
der Tupelkalkül-Formel
{t | ∃t1 ∃t2 P ROFS(t1 ) ∧ VORL(t2 )∧
t1 .Name = „Chomsky“∧
t1 .PersNr = t2 .Dozent∧
t.VorlNr = t2 .VorlNr ∧ t.Titel = t2 .Titel}
SELECT Name
FROM
S TUDIS, P RÜFT
WHERE S TUDIS.MatrNr = P RÜFT.MatrNr
AND PersNr NOT IN
(
SELECT PersNr
FROM
P ROFS, VORL
WHERE P ROFS.PersNr = VORL.Dozent
AND VORL.Titel = „Logik“)
entspricht der Tupelkalkül-Anfrage
• Es lässt sich die folgende Korrespondenz
beobachten:
– Die Attribute in SELECT definieren die
Komponenten des freien Tupels t
– Der FROM-Teil entspricht der existentiellen Quantifikation von Tupeln
– Der WHERE-Teil entspricht dem quantorenfreien Teil der Formel
DBT / Schwentick / SoSe 12
{t |∃t1 ∃t2 S TUDIS(t1 ) ∧ P RÜFT(t2 )∧
t1 .MatrNr = t2 .MatrNr ∧ t.Name = t1 .Name∧
¬[∃t3 ∃t4 P ROFS(t3 ) ∧ VORL(t4 )∧
t3 .PersNr = t4 .Dozent ∧ t4 .Titel = „Logik“∧
t2 .PersNr = t3 .PersNr]}
Anfragesprachen 6. Relationenkalkül II
. Folie 18
Anfragesprachen: Äquivalenzen
Active domain-Kalkül
Relational
vollständige
Anfragen
6.1
5.3
Relationale Algebra
SPJRU
4.4
Datalog ohne
Rekursion
Bereichsunabhängiger
Kalkül
5.4 (b)
5.4 (a) Bereichsbeschränkter
Kalkül
Positive Anfragen
4.2
4.2
SPCU
4.2
SPC
Positives Datalog
ohne Rekursion
Positiver bereichsb. Kalkül
Tableau
Und-Anfragen
3.7
SPJR
DBT / Schwentick / SoSe 12
3.5
Positive
Datalog-Regel
(5.3)
Anfragesprachen 6. Relationenkalkül II
Existentieller
konjunktiver Kalkül
. Folie 19
Relationenkalkül: Fazit
• Es gibt syntaktische Einschränkungen, die gerade
den bereichsunabhängigen Anfragen entsprechen,
z.B. bereichsbeschränkte Anfragen
• Der Relationenkalkül (und damit die Relationenalgebra) kann nur „lokale“ und „nicht zählende“ Anfragen
ausdrücken
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 20
Anmerkungen
• Auch dieses Kapitel basiert stark auf [AHV95]
• Weitere Literaturhinweise:
Sicherer Relationenkalkül:
– [Van Gelder, Topor 1991]: Allen Van Gelder, Rodney W. Topor: Safety and Translation of Relational Calculus Queries.
ACM Trans. Database Syst. 16(2): 235-278 (1991)
– [Levene, Loizou 1999]: Mark Levene, George Loizou: A Guided Tour of Relational Databases and Beyond. Springer, 1999
Ausdrucksstärke des Relationenkalküls:
– [Gaifman 1982]: Haim Gaifman: On local and non-local properties. Proc. Herbrand Symp. Colloquium 1981
– [Hanf 1965]: William P. Hanf: Model-theoretic methods in the
study of elementary logic. 1965.
– [Ehrenfeucht 1961]: Andrzej Ehrenfeucht: An application of
games to the completeness problem for formalized theories.
Fundamenta Mathematicae, 1961
– [Fraïssé 1954]: Roland Fraïssé: Sur quelque classifications
des systèmes de relations. 1954
– [Libkin, Wong 1997]: Leonid Libkin, Limsoon Wong: Query
Languages for Bags and Aggregate Functions. JCSS, 1997
– [Libkin 2000]: Leonid Libkin: Logics with counting and local
properties. ACM ToCL, 2000
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
. Folie 21
Änderungslog
18.4.12 Folie 9 rechts vereinfacht
8.5.12 Folie 4: rr(¬ϕ) = ∅ gilt nur, wenn rr(ϕ)
ist, andernfalls ist rr(¬ϕ) = ⊥
DBT / Schwentick / SoSe 12
Anfragesprachen 6. Relationenkalkül II
6= ⊥
. Folie 22
Herunterladen