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