Datenbanktheorie Sommersemester 2012 - Thomas Schwentick Teil C: Anfrageauswertung und Statische Analyse 8: Anfrageauswertung: Komplexität Version von: 19. Mai 2012 (09:24) Inhalt 8.1 Auswertungskomplexität: Und-Anfragen 8.1.1 Vorüberlegungen 8.1.2 Worst-Case-Komplexität 8.1.3 Parametrisierte Komplexität 8.2 Auswertungskomplexität: Relationale Algebra DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 1 Und-Anfragen: Auswertung • Wie effizient lassen sich Und-Anfragen auswerten? („CQ“ steht für „conjunctive queries“) • Um diese Frage zu präzisieren wiederholen wir die folgende Definition für beliebige Klassen C von Anfragen und Anfragen q • Statt „Und-Anfragen“ sagen wir manchmal auch „konjunktive Anfragen“ • Präzisere Fragen: – Wie effizient lässt sich das Problem KOMBI(CQ) lösen? – Wie effizient lässt sich für Und-Anfragen q das Problem DATA(q) lösen? Definition: DATA(q) Gegeben: Datenbank D Gesucht: • CQ : Menge aller Und-Anfragen JqK(D) Definition: KOMBI(C) Gegeben: Datenbank D , Anfrage q Gesucht: ∈C JqK(D) DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 2 Auswertung von Und-Anfragen: Vorüberlegungen (1/4) Definition: KOMBI(CQ) Gegeben: Datenbank D , Und-Anfrage q Gesucht: JqK(D) • Wir betrachten zunächst das Problem KOMBI(CQ) • Wünschenswert: Anfragen effizient auswerten – Was heißt effizient berechenbar? – Antwort aus GTI: in polynomieller Zeit – Also: Das Ergebnis JqK(D) sollte in Zeit O((|q| + |D|)k ) berechnet werden (für ein festes k, das von D und q unabhängig ist) – Dabei: ∗ |q|: Länge der Anfrage (als Zeichenkette) ∗ |D|: Größe von D (Anzahl aller „Tabellenfelder“) DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 3 Auswertung von Und-Anfragen: Vorüberlegungen (2/4) Beispiel • Wir betrachten eine Beispielanfrage q : R ESULT(x1 , . . . ,xm ) :- R(x1 ), . . . ,R(xm ) – |q| = θ(m log m) – Sei D eine DB, die nur die Relation RD mit n Tupeln enthält – Dann enthält JqK(D) genau nm Tupel ➞ nm Tupel lassen sich nicht in Zeit O((n + m log m)k ), für ein festes k, ausgeben (zumindest nicht ohne Kodierung der Ausgabe) ➞ Auswertung in polynomieller Zeit im Allgemeinen nicht möglich erreichbar ➞ Modifizierte Frage: – Sei BCQ die Menge der konjunktiven ja/neinAnfragen (BCQ steht für „Boolean Conjunctive Queries“) – Wie effizient lässt sich das Problem KOMBI(BCQ) lösen? DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 4 Auswertung von Und-Anfragen: Vorüberlegungen (3/4) • Beispielanfrage q1 : „Bietet Gödel eine LogikVorlesung an?“: – R ESULT() :- P ROFESSOREN(y1 ,„Gödel“,y2 ), VORLESUNGEN(y3 ,„Logik“,y1 ) • Wir verwenden im Folgenden die folgende (teilweise schon definierte) Notation: adom(D) =def Menge aller in der Datenbank D vorkommenden Werte (adom steht für „active domain“) adom(q) =def Menge aller in der Anfrage q vorkommenden Werte (adom(q1 ) = {„Gödel“,„Logik“}) adom(q,D) =def adom(q) ∪ adom(D) var(q) =def Menge aller in q vorkommenden Variablen (var(q1 ) = {y1 ,y2 ,y3 }) DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 5 Auswertung von Und-Anfragen: Vorüberlegungen (4/4) • Nach Definition gilt hi ∈ JqK(D) genau dann, wenn es eine Belegung v der Variablen von q gibt, die alle Relationsatome im Rumpf von q wahr macht • Also: hi ∈ Jq1 K(DUni ), falls es Werte für y1 ,y2 ,y3 gibt, die P ROFESSOREN(y1 ,„Gödel“,y2 ) und VORLESUNGEN(y3 ,„Logik“,y1 ) wahr machen • Nebenbei bemerkt: das zeigt, dass unsere Entscheidung, die Antwortrelation {hi} als „ja“ zu werten, sinnvoll war • Klar: nur Werte, die in DUni vorkommen, kommen für y1 ,y2 ,y3 in Frage • Es gibt also nur |DUni |3 Variablenbelegun- • Ein naiver Algorithmus: – Teste systematisch alle diese Variablenbelegungen (3 verschachtelte FOR-Schleifen) • Allgemein: – |adom(q,D)||var(q)| ≤ (|q| + |D|)|q| Variablenbelegungen – (var(q) verschachtelte FOR-Schleifen) ➨ Grober Aufwand des naiven Algorithmus: O(|D||q| |q||D|) • Geht das nicht deutlich besser? Wahrscheinlich nicht... gen, die in Frage kommen DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 6 Inhalt 8.1 Auswertungskomplexität: Und-Anfragen 8.1.1 Vorüberlegungen 8.1.2 Worst-Case-Komplexität 8.1.3 Parametrisierte Komplexität 8.2 Auswertungskomplexität: Relationale Algebra DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 7 Wiederholung aus Logik: Aussagenlogische Formeln • Aussagenlogische Formeln: – x1 ,x2 ,x3 , . . . seien Variablen – Jedes xi ist eine aussagenlogische Formel – Ist ϕ eine aussagenlogische Formel, so auch ¬ϕ – Sind ϕ,ψ aussagenlogische Formeln, so auch ϕ ∧ ψ und ϕ ∨ ψ • Eine Wahrheitsbelegung θ : {x1 ,x2 , . . .} → {0,1} ordnet jeder Variablen einen Wahrheitswert zu • θ |= ϕ : Die Formel ϕ erhält durch die Wahrheitsbelegung θ den Wert 1 • Eine Formel ϕ ist erfüllbar, wenn es ein θ gibt mit θ |= ϕ DBT / Schwentick / SoSe 12 • Beispiel: (x3 ∨ x1 )∧ (¬x2 ∨ ((x3 ∧ ¬x1 ) ∨ (x2 ∨ ¬x1 ))) • Wir beschränken uns auf Formeln in konjunktiver Normalform (KNF): (x3 ∨ x1 ) ∧ (¬x2 ∨ x3 ∨ x2 )∧ (¬x2 ∨ ¬x3 ∨ x2 ) ∧ (¬x2 ∨ x3 ) • Die xi und ¬xi heißen Literale • Die Disjunktionen heißen Klauseln Definition: 3-SAT Gegeben: Aussagenlogische Formel ϕ in KNF mit ≤ 3 Literalen je Klausel Frage: Ist ϕ erfüllbar? C 8. Anfrageauswertung: Komplexität . Folie 8 Wiederholung aus GTI: NP • Ein Problem L ist in NP , falls (intuitiv) – es für jede Eingabe x eine Menge polynomiell großer Lösungskandidaten y gibt, – x ∈ L genau dann gilt, wenn einer dieser Lösungskandidaten eine Lösung ist, – in polynomieller Zeit getestet werden kann, ob ein String eine Lösung (und ein Lösungskandidat) ist Beispiel • Beispiel: 3-SAT ∈ NP, denn: – Zu jeder Formel ϕ mit Variablen x1 , . . . ,xm ist jede Wahrheitsbelegung θ von {x1 , . . . ,xm } ein Lösungskandidat, – ϕ ∈ 3-SAT ⇐⇒ es gibt eine Lösung θ , also eine Belegung mit θ |= ϕ, und – es kann in polynomieller Zeit getestet werden, ob für gegebene, ϕ, θ gilt: θ |= ϕ DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 9 Auswertungskomplexität von Und-Anfragen: obere Schranke Proposition 8.1 • KOMBI(BCQ) ∈ NP Beweisskizze • Sei q eine sichere regelbasierte Boolesche UndAnfrage der Form R() :- L1 , . . . ,Lk • Sei D eine passende Datenbank • hi ∈ JqK(D) gilt genau dann, wenn es eine Variablenbelegung β gibt, die alle Relationsatome von q wahr macht • Eine Variablenbelegung β hat die Größe O(k|D|), wobei k die Anzahl der Variablen von q ist • Ein Algorithmus kann also die Zusatzeingabe der Größe O(k|D|) als Variablenbelegung β interpretieren und dann in Zeit O(|q||D|) testen, ob β alle Atome von q wahr macht. ➨ KOMBI(BCQ) ∈ NP • Wir sehen jetzt: das ist optimal DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 10 Wiederholung aus GTI: NP-vollständige Probleme • L ist NP-schwierig, falls gilt: • L ist NP-vollständig, falls: – intuitiv: Kein Problem L′ ∈ NP ist – L ∈ NP und „schwieriger“ als L – L ist NP-schwierig – formal: Jedes Problem L′ ∈ NP • Beispiel: 3-SAT ist NP-vollständig lässt sich in polynomieller Zeit auf • Um zu zeigen, dass ein Problem L NP-vollständig L reduzieren – Noch formaler: Für jedes L′ ∈ NP gibt es eine Funktion f : Σ∗ → Σ∗ , so dass: ∗ für alle x ∈ Σ∗ : L′ ist, genügt es zu zeigen: – L ∈ NP – es gibt ein NP-vollständiges L′ mit L′ ≤p L • Die Begriffe „NP-schwierig“ und „NP-vollständig“ ⇐⇒ f (x) ∈ L, lassen sich für beliebige Komplexitätsklassen C x∈ ∗ und f ist in polynomieller Zeit berechenbar – Falls es eine solche Funktion zu L′ ,L gibt schreiben wir: L′ ≤ p L verallgemeinern Definition • Sei C eine Komplexitätsklasse (= Menge von Sprachen) und L eine Sprache • L ist C -schwierig, wenn für jedes L′ ∈ C gilt: L′ ≤ p L • L ist C -vollständig, wenn es in C und C schwierig ist DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 11 Auswertung von Und-Anfragen: Komplexität (1/5) Satz 8.2 [Chandra, Merlin 77] • KOMBI(BCQ) ist NP-vollständig Beweisidee • Noch zu zeigen: KOMBI(BCQ) ist NPschwierig • Dazu: Reduktion von 3-SAT auf KOMBI(BCQ): – Aus 3-SAT-Formel ϕ konstruiere q und D – Die Datenbank D ist dabei völlig unabhängig von ϕ: Beweisidee (Forts.) • Intuition: – Wir verwenden für jede Variable x von ϕ zwei Variablen y + ,y − in q – Mithilfe von R1 wird dafür gesorgt, dass y + = 1 − y − ist – Mithilfe von R2 wird dafür gesorgt, dass keine Klausel unerfüllt bleibt ∗ Zu diesem Zweck ist h0,0,0i nicht in R2 R1 R2 A1 A2 B1 B2 B3 1 0 0 1 DBT / Schwentick / SoSe 12 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 C 8. Anfrageauswertung: Komplexität . Folie 12 Auswertung von Und-Anfragen: Komplexität (2/5) Beispiel • Sei ϕ die Formel (x3 ∨ ¬x2 ∨ x1 ) ∧ (¬x3 ∨ x2 ∨ ¬x1 )∧ (x2 ∨ x1 ∨ ¬x3 ) ∧ (¬x2 ∨ ¬x1 ∨ x3 ) – q : R ESULT() :R1 (y1+ ,y1− ), R1 (y2+ ,y2− ), R1 (y3+ ,y3− ), R2 (y3+ ,y2− ,y1+ ), R2 (y3− ,y2+ ,y1− ), R2 (y2+ ,y1+ ,y3− ), R2 (y2− ,y1− ,y3+ ) – DB D mit Relationen R1 R2 A1 A2 B1 B2 B3 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 • Die Wahrheitsbelegungelegung x1 7→ 1, x2 7→ 0, x3 7→ 0, die ϕ wahr macht, entspricht der Variablenbelegung y1+ 7→ 1, y1− 7→ 0, y2+ 7→ 0, y2− 7→ 1, y3+ 7→ 0, y3− 7→ 1 DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 13 Auswertung von Und-Anfragen: Komplexität (3/5) Satz 8.2 [Chandra, Merlin 77] • KOMBI(BCQ) ist NP-vollständig Beweisskizze • Sei ϕ = C1 ∧ · · · ∧ Cm eine 3-SATFormel mit Variablen x1 , . . . ,xn – Jedes Cj ist eine Klausel 2 ∨ L3 ) (L1 ∨ L j j j – Jedes Lij ist ein Literal xl oder ¬xl • Wir konstruieren q und D • DB D besteht aus den Relationen: Beweisskizze (Forts.) • Die Anfrage q verwendet die Variablen + ,y − , . . . ,y − y1+ , . . . ,yn 1 n • q hat Kopf Ans() und enthält im Rumpf + − – R1 (yi ,yi ) für jedes xi und – R2 (L̂1j ,L̂2j ,L̂3j ) für jedes Cj , wobei ( + i = x y falls L l j l L̂ij =def yl− falls Lij = ¬xl • Bleibt zu zeigen: ϕ ist erfüllbar ⇐⇒ JqK(D) = {hi} R1 R2 A1 A2 B1 B2 B3 1 0 0 1 DBT / Schwentick / SoSe 12 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 C 8. Anfrageauswertung: Komplexität . Folie 14 Auswertung von Und-Anfragen: Komplexität (4/5) Beweisskizze (Forts.) Beweisskizze (Forts.) • Behauptung: ϕ ist erfüllbar ⇐⇒ JqK(D) = {hi} • „⇒“ – Sei ϕ erfüllbar und θ : {x1 , . . . ,xn } → {0,1} eine erfüllende Wahrheitsbelegung für ϕ – Wir setzen, für alle i ≤ n: ∗ β(yi+ ) =def θ(xi ) ∗ β(yi− ) =def 1 − θ(xi ) – Klar: für alle i,j ist β(L̂ij ) ∈ {0,1} ➨ für jedes i ≤ n: β(hyi+ ,yi− i) ∈ R1 – Sei nun j ≤ m – Zu zeigen: es gibt ein i ∈ {1,2,3} mit β(L̂ij ) = 1 2 ,L̂3 i) – Dann: β(hL̂1 , L̂ j j j DBT / Schwentick / SoSe 12 ∈ R2 • Da θ die Klausel Cj wahr macht, gibt es ein i ∈ {1,2,3} mit θ(Lij ) = 1 • 1. Fall: Lij = xl (dann: θ(xl ) = 1): ➨ β(L̂ij ) = β(yl+ ) = θ(xl ) = 1 • 2. Fall: Lij = ¬xl (dann: θ(xl ) = 0): ➨ β(L̂ij ) = β(yl− ) = 1 − θ(xl ) = 1 • In beiden Fällen ist β(L̂ij ) = 1 • Also ist β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2 ➨ für alle j ≤ m ist β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2 ➨ hi ∈ JqK(D) C 8. Anfrageauswertung: Komplexität . Folie 15 Auswertung von Und-Anfragen: Komplexität (5/5) Beweisskizze (Forts.) Beweisskizze (Forts.) • Es bleibt zu zeigen: JqK(D) = {hi} ⇒ ϕ ist erfüllbar • Sei also JqK(D) = {hi} ➨ Es gibt eine Variablenbelegung β , die alle Relationsatome von q wahr macht: – Für alle i ≤ n ist β(hyi+ ,yi− i) ∈ R1 ➨ insbesondere: für alle i ist β(yi+ ) ∈ {0,1} und β(yi− ) = 1 − β(yi+ ) – Für alle j ≤ m ist β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2 ➨ Für jedes j ≤ m gibt es ein i ∈ {1,2,3}, so dass β(L̂ij ) = 1 • Sei nun Cj eine Klausel von ϕ • Zu zeigen: θ macht Cj wahr • Da β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2 gibt es ein i ∈ {1,2,3} mit β(L̂ij ) = 1 • 1. Fall: Lij = xl (dann: β(yl+ ) = 1): ➨ θ(Lij ) = θ(xl ) = β(yl+ ) = 1 • 2. Fall: Lij = ¬xl (dann: β(yl− ) = 1): ➨ θ(Lij ) = 1 − θ(xl ) = 1 − β(yl+ ) = 1 − 0 = 1 • Also: jede Klausel von ϕ wird durch θ ➨ wahr gemacht ϕ ist erfüllbar • Wir definieren für jedes i ≤ n: θ(xi ) =def β(yi+ ) DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 16 Auswertung von Und-Anfragen: Bemerkungen • Satz 8.2 steht im Gegensatz zur Alltagserfahrung • Wie ist das zu erklären? – Im Beweis der NP-Schwierigkeit wurde eine feste Datenbank gewählt – Nur die Anfrage q hing von ϕ ab ➞ Die Kompliziertheit und Größe der Anfragen steigt mit der Kompliziertheit und Größe von ϕ – In der Praxis sind von Menschen gestellte Und-Anfragen meistens sehr einfach und relativ kurz DBT / Schwentick / SoSe 12 • Was ist mit DATA(q) für Und-Anfragen q ? – Dann ist k =def var(q) eine Konstante – Also hat der naive Algorithmus die polynomielle Laufzeit O(|D|k |q||D|) – Die Variablenbelegungen können unabhängig voneinander getestet werden ➞ Der naive Algorithmus lässt sich sogar hochgradig parallelisieren – Sehr befriedigend ist das k im Exponenten aber nicht • Auf alle diese Aspekte werden wir nochmal zurückkommen C 8. Anfrageauswertung: Komplexität . Folie 17 Inhalt 8.1 Auswertungskomplexität: Und-Anfragen 8.1.1 Vorüberlegungen 8.1.2 Worst-Case-Komplexität 8.1.3 Parametrisierte Komplexität 8.2 Auswertungskomplexität: Relationale Algebra DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 18 Wiederholung aus KT: Dr. O Beispiel • Dr. O hat ca. 1000 Experimente durchgeführt • Einige Ergebnisse widersprechen sich • Er sucht eine möglichst kleine Zahl von Ex- B A perimenten, deren Elimination alle Widersprüche beseitigt • Vermutung: es genügt 20-50 Experimente zu entfernen – Ungerichteter Graph G = (V,E) – V = Menge der Experimente – (u,v) ∈ E : Experimente u und v haben widersprüchliche Ergebnisse Definition: M IN -V ERTEX C OVER = (V,E) Gesucht: Menge U ⊆ V , so dass gelten: (1) (u,v) ∈ E ⇒ u ∈ U oder v ∈ U (2) |U | minimal? DBT / Schwentick / SoSe 12 C D G F Definition: V ERTEX C OVER Gegeben: Graph G • Modellierung: Gegeben: Graph G E = (V,E), k Frage: Gibt es U ⊆ V , so dass gelten: (1) (u,v) ∈ E ⇒ u ∈ U oder v ∈ U (2) |U | ≤ k? • Schlechte Nachrichten: – V ERTEX C OVER ist NP-schwierig – Für festes k ist k-V ERTEX C OVER zwar in polynomieller Zeit O(nk ) lösbar: ∗ Teste alle Teilmengen der Größe ≤ k – Aber das ist für etwas größere k schon nicht praktikabel C 8. Anfrageauswertung: Komplexität . Folie 19 Wiederholung aus KT: Algorithmus für V ERTEX C OVER • Frage: Gibt es Algorithmen für V ERTEX C OVER, deren Aufwand wesentlich besser als O(nk ) ist? • Beobachtung: Ist (u,v) eine Kante von G, so muss u oder v (oder beide) in U vorkommen ➞ Das legt eine Verzweigung zu zwei Teilproblemen nahe: ∗ (G−u,k−1) und (G−v,k−1) ∗ Dabei bezeichnet G−u den Graphen, der aus G durch Entfernen von u und allen Kanten mit u entsteht – (G,k) hat genau dann eine Lösung, wenn eines • Der Algorithmus ist also immer noch nicht polynomiell • Aber: die exponentielle Abhängigkeit der Laufzeit ist auf den Parameter k eingeschränkt • Diese Art der „Isolation“ von kritischen Parametern werden wir in diesem Kapitel systematisch betrachten der beiden Teilprobleme eine Lösung hat – Die Rekursionstiefe dieses Algorithmus ist k ➞ Suchbaum mit 2k Blättern ➞ Aufwand O(2k n2 ) DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 20 Wiederholung aus KT: Parametrisierte Probleme und FPT Definition: Parametrisiertes Problem Definition: FPT • Ein parametrisiertes Problem ist eine Menge L von Paaren (x,k), wobei x ∈ Σ∗ und k ∈ N • Ein parametrisiertes Problem L • Lk =def {(x,i) ∈ L | i = k ∈ L} „k-te Scheibe“ von L Definition: P-V ERTEX C OVER Gegeben: Graph G = (V,E), k Parameter: k Frage: Gibt es U ⊆ V , so dass gelten: (1) (u,v) ∈ E ⇒ u ∈ U oder v ∈ (2) |U | ≤ k? U • Bei der Definition parametrisierte Probleme werden wir im Folgenden den ausgewählten Parameter gesondert ausweisen heißt fp-effizient („fixed parameter tractable“), falls es einen Algorithmus A, ein Polynom p und eine berechenbare Funktion f : N → N gibt, so dass gilt: (a) A entscheidet L (b) A hat bei Eingabe (x,k) Laufzeit f (k)p(|x|) • FPT ist die Klasse aller fpeffizienten parametrisierten Probleme • Also: P-V ERTEX C OVER ∈ FPT • Dem Problemnamen stellen wir ein P- vor • Zu beachten: algorithmische Probleme lassen sich in der Regel auf verschiedene Weisen parametrisieren DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 21 P-KOMBI(CQ) • Da wir erwarten, dass Anfragen deutlich klei- • P-KOMBI(CQ) scheint nicht in FPT zu sein ner als Datenbanken sind, ist die folgende • Es ist vollständig für die parametrisierte Parametrisierung von KOMBI(CQ) sinnvoll Komplexitätsklasse W [1] Definition: P-KOMBI(CQ) Gegeben: Datenbank D , Und-Anfrage q |q| Gesucht: JqK(D) Parameter: DBT / Schwentick / SoSe 12 – (und damit äquivalent zum parametrisierten Clique-Problem) • Intuitiv bedeutet dies: – Wenn FPT 6= W [1] – dann gibt es keinen Algorithmus (beliebiger Komplexität), der Anfragen q in äquivalente „optimierte“ Anfragen q ′ umwandelt, so dass Jq ′ K(D) in polynomieller Zeit in |D| ausgewertet werden kann C 8. Anfrageauswertung: Komplexität . Folie 22 Inhalt 8.1 Auswertungskomplexität: Und-Anfragen 8.2 Auswertungskomplexität: Relationale Algebra DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 23 Komplexität der Anfrageauswertung: DATA(q) • Wie ist die Komplexität von DATA(q) für Anfragen der Relationenalgebra? – Jeder einzelne Operator der Relationenalgebra hat höchstens quadratische Komplexität – Wenn die Anfrage fest ist, müssen also nur konstant viele Operatoren mit jeweils polynomieller Laufzeit hintereinander ausgeführt werden ➨ Polynomielle Laufzeit • Aus Sicht der Komplexitätstheorie lässt sich das aber noch sehr verbessern: – Bei der Auswertung kann sehr stark parallel gearbeitet werden – Intuitiv kann ein Quantor des Relationenkalküls als ein (Und- oder Oder-) Gatter eines Schaltkreises aufgefasst werden – Zu beachten: Für DATA(q) kann die günstigste Repräsentation der Anfrage angenommen werden (da die Anfrage ja nicht Teil der Eingabe ist!) DBT / Schwentick / SoSe 12 • Etwas genauer: – Wir betrachten Schaltkreise mit Und-, Oder- und Nicht-Gattern – Die Und- und Oder-Gatter dürfen beliebig viele Eingänge haben – AC0 : ∗ Klasse aller Probleme, die sich durch eine Familie C1 ,C2 , . . . von Schaltkreisen mit konstanter Tiefe und polynomieller Größe berechnen lassen ∗ Schaltkreis Ci verarbeitet Eingaben mit i Bits ∗ Zusätzlich: Schaltkreise müssen einem „einheitlichen Konstruktionsprinzip“ folgen Satz 8.3[Immerman 89] • Für jede Anfrage q der relationalen Algebra ist DATA(q) ∈ AC0 C 8. Anfrageauswertung: Komplexität . Folie 24 Wiederholung aus KT: QBF und PSPACE (1/3) • Wir betrachten jetzt die Komplexität von KOMBI(RAlg) • Dazu müssen wir zunächst die Komplexitätsklasse PSPACE definieren • Wie soll Speicherplatz gemessen werden? – wir zählen die benutzten „Felder“ der Strings einer TM • Komplikation: – Zuweilen sind Berechnungen mit sehr kleinem Speicherplatz interessant (O(log n)) – Aber: allein die Eingabe nimmt n Felder in Anspruch ➞ Deshalb zählen wir den Eingabestring nicht mit und erlauben der TM keine Änderungen auf dem Eingabestring DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 25 Wiederholung aus KT: QBF und PSPACE (2/3) Definition Definition • Eine k-string TM mit read-only Eingabestring (RO-TM) ist eine k-string TM M = (Q,Σ,Γ,δ,s) mit folgenden • S : N 7→ R heißt Platzschranke für M , falls es ein n0 gibt, so dass für alle x mit |x| > n0 gilt: sM (x) ≤ S(|x|) Eigenschaften: – Ist δ(q,σ1 , . . . ,σk ) so ist = (q ′ ,σ1′ , . . . ,σk′ ,d1 , . . . ,dk ), ′ , und (a) σ1 = σ1 (b) falls σ1 = ⊔, so d1 =←. • Ist (q,(u1 ,σ1 ,v1 ), . . . ,(uk ,σk ,vk )) die Haltekonfiguration von M bei Eingabe x so ist der Speicherplatzaufwand von M bei Eingabe x: Pk sM (x) =def i=2 |ui σi vi | DBT / Schwentick / SoSe 12 • SPACEk (S) =def Menge aller Sprachen L, die von RO-k-TM mit Platzschranke O(S) entschieden werden [ • SPACE(S) =def SPACEk (S) k≥2 • PSPACE =def C 8. Anfrageauswertung: Komplexität [ SPACE(n c ) c≥1 . Folie 26 Wiederholung aus KT: QBF und PSPACE (3/3) • Die Frage, ob die SAT-Formel ϕ = (x1 ∨ x2 ) ∧ (¬x1 ∨ ¬x2 ) erfüllbar ist, ist äquivalent zu der Frage, ob ∃x1 ∃x2 ϕ wahr ist – wobei die Quantoren über {0,1} „laufen“ • Wir erlauben nun auch Allquantoren in aussagenlogischen Formeln, z.B.: ∀x1 ∃x2 (x1 ∨ x2 ) ∧ (¬x1 ∨ ¬x2 ) • Die Menge der wahren quantifizierten aussagenlogischen Formeln (in Pränex-Normalform) bezeichnen wir mit QBF – Auf eine formale Definition der Semantik von QBF-Formeln verzichten wir Satz 8.4 [Stockmeyer, Meyer, 1973] • QBF ist vollständig für PSPACE DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 27 Komplexität der Anfrageauswertung: KOMBI(RAlg) (1/3) Beweisskizze • Hinsichtlich der kombinierten Komplexität verhalten sich die bisher betrachteten Anfragen weniger günstig • Wir haben schon gesehen: – KOMBI(BCQ) ist NP-vollständig • Für relational vollständige Anfragen sieht es noch etwas schlimmer aus: Satz 8.5 [Stockmeyer, Meyer, 1973] • KOMBI(BCALCsr ) ist vollständig für PSPACE • BCALC: Boolesche Anfragen Beweisidee • KOMBI(BCALCsr ) ∈ PSPACE: Alle Belegungen der quantifizierten Variablen ausprobieren • KOMBI(BCALCsr ) ist PSPACEschwierig: Reduktion von QBF DBT / Schwentick / SoSe 12 • KOMBI(BCALCsr ) ∈ PSPACE: – Wichtig: in polynomieller Zeit testbar, ob eine eingegebene Anfrage aus BCALCsr ist – Idee: Probiere alle Variablenbelegungen aus – s(ϕ,D) bezeichne den maximal benötigten zusätzlichen Speicherplatz zur Auswertung von JϕK(D) – Behauptung: s(ϕ,D) = O(|ϕ||D|) – Beweis durch Induktion nach ϕ: ∗ (Hier nur ∧ und ∃) ∗ ϕ = ψ ∧ θ : Teste, für jedes Tupel u ~, D |= ψ(~ u) und D |= θ(~ u) unter Verwendung des selben Platzes ➞ s(ϕ,D) = max(s(ψ,D),s(θ,D)) ∗ ∃x ψ : Teste für jedes a ∈ adom(ϕ,D), ob D |= ψ(~ u[x/a]) ➞ s(ϕ,D) = O(|D| + s(ψ,D)) – (gilt auch für höherstellige Anfragen) C 8. Anfrageauswertung: Komplexität . Folie 28 Komplexität der Anfrageauswertung: KOMBI(RAlg) (2/3) Beispiel • Die Formel ∀y1 (∃y2 VORL(y2 ,x,y1 ) → ∃y3 VORL(y3 ,„Logik“,y1 )) lässt sich wie folgt auswerten: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: Algorithmus CALC-Auswertung for all a in adom(ϕ,D) do {Mögliche Ergebniswerte} OK1 := TRUE for all a1 in adom(ϕ,D) do {∀y1 · · · } OK2 := FALSE for all a2 in adom(ϕ,D) do {∃y2 · · · } if ha2 ,a,a1 i ∈ VORL then OK2 := TRUE if OK2 then OK3 := FALSE for all a3 in adom(ϕ,D) do {∃y3 · · · } if ha3 ,„Logik“,a1 i ∈ VORL then OK3 := TRUE if OK2 AND NOT OK3 then OK1 := FALSE if OK1 then Ausgabe a DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 29 Komplexität der Anfrageauswertung: KOMBI(RAlg) (3/3) Beispiel Beweisskizze (Forts.) • KOMBI(BCALCsr ) ist schwierig für PSPACE: – Reduktion von QBF – Sei also θ = ∃p1 ∀p2 ∃p3 · · · χ eine quantifizierte Boolesche Formel (χ quantorenfrei) – Dabei können die pi nur die Werte TRUE und FALSE annehmen – Sei ϕ die Formel ∃x1 ∀x2 ∃x3 · · · χ′ wobei χ′ aus χ durch Ersetzen jedes pi durch das Atom R1 (xi ) entsteht – Sei D die Datenbank mit der 1-stelligen Relation R1 , die das Tupel h1i enthält, und der 1-stelligen Relation R2 , die das Tupel h0i enthält – Dann gilt: θ hat den Wert TRUE ⇐⇒ • Für θ = ∀p1 ∃p2 ∃p3 ∀p4 ∃p5 (p1 ∨ ¬p2 ) ∧(¬p3 ∨ p4 ) ∧ (p5 ∨ ¬p1 ) • ist ϕ = ∀x1 ∃x2 ∃x3 ∀x4 ∃x5 (R1 (x1 ) ∨ ¬R1 (x2 )) ∧(¬R1 (x3 ) ∨ R1 (x4 )) ∧(R1 (x5 ) ∨ ¬R1 (x1 )) J{hi | ϕ}K(D) 6= ∅ • Da ϕ in polynomieller Zeit in |θ| berechnet werden kann, ist dies eine polynomielle Reduktion von QBF auf KOMBI(BCALCsr ) DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 30 P-KOMBI(RAlg) Definition: P-KOMBI(RAlg) Gegeben: Datenbank D , RAlg-Anfrage q |q| Gesucht: JqK(D) Parameter: • P-KOMBI(RAlg) ist vollständig für die parametrisierte Klasse AW [∗] DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 31 Auswertungskomplexität: Fazit C DATA(C) KOMBI(C) Para Und-Anfragen AC0 NP-vollst. W [1]-vollst. Semijoin AC0 in P in P RelAlg AC0 PSPACE-vollst. AW [∗]-vollst. DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 32 Literaturhinweise • Wie immer: [AHV95] • Weitere Literaturhinweise: – KOMBI(BCQ) ist NP-vollständig ∗ A. Chandra and P. Merlin. Optimal implementation of conjunctive queries in relational data bases. In Proceedings 9th ACM Symposium on Theory of Computing, pages 77–90. ACM, 1977 – DATA(CALCsr ) ist in AC0 : ∗ N. Immerman. Expressibility and parallel complexity. SIAM Journal on Computing, 18:625–638, 1989 – QBF und KOMBI(CALCsr ) sind vollständig für PSPACE: ∗ L. J. Stockmeyer and A. R. Meyer. Word problems requiring exponential time: Preliminary report. pages 1–9, 1973 • P-KOMBI(RAlg) ist AW [∗]-vollständig: – Rodney G. Downey, Michael R. Fellows, and Udayan Taylor. The parameterized complexity of relational database queries and an improved characterization of W[1]. In Combinatorics, Complexity, and Logic, volume 39 of Proceedings of DMTCS, pages 194–213. Springer-Verlag, 1996 • P-KOMBI(CQ) ist W [1]-vollständig: – Christos H. Papadimitriou and Mihalis Yannakakis. On the complexity of database queries. Journal of Computer and System Sciences, 58(3):407–427, 1999 DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 33 Änderungslog 19.5.12 Auf Folie 28 BCALC statt CALC DBT / Schwentick / SoSe 12 C 8. Anfrageauswertung: Komplexität . Folie 34