Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Logische Optimierung Dr. Thomas Gottron Wintersemester 2012/13
Ablauf der Deklarative Anfrage Scanner Parser Sichtenauflösung Algebraischer Ausdruck Auswertungs- Plan (QEP) Anfrage- Optimierer Codeerzeugung Ausführung SQL Spezifikation der Anfrage RA was gehört zur Ergebnismenge? Operatorbaum wie wird die Ergebnismenge berechnet? Thomas Gottron GLDB 2012/13 2
Abstraktionsebenen Konzeptuelle Ebene Keine Abfragen Logische Ebene Logische Optimierung (Modellabhängig) Physische Ebene Physische Optimierung (Implementation) Thomas Gottron GLDB 2012/13 3
Logische Optimierung Thomas Gottron GLDB 2012/13 4
Ziele der logischen Optimierung Reduktion der Datenmenge Reduktion der Zugriffe auf Hintergrundspeicher Nur benötigte Daten laden Reduktion der Notwendigkeit der Auslagerung So wenig Daten wie nötig vorhalten Reduktion der auszuführenden Vergleiche So wenig Arbeitsschritte wie möglich Umformung einer einfachen Algebraischen Ausgangsform Rechenregeln der Relationalen Algebra Optimale Lösung kann i.d.r. nicht effizient bestimmt werden Heuristiken (Vermeiden des schlimmsten Falls) Thomas Gottron GLDB 2012/13 5
Kanonische Übersetzung SELECT A1,..., An FROM R1,..., Rk WHERE P Rk R3 R1 R2 Thomas Gottron GLDB 2012/13 6
Beispiel: Kanonische Übersetzung SELECT Titel FROM Professoren, Vorlesungen WHERE Name = Popper AND PersNr = gelesenvon 2 Zeilen 1 Spalten 2 Zeilen 15 Spalten 54612 Zeilen 15 Spalten Professoren 164 Zeilen 5 Spalten Vorlesungen 333 Zeilen 10 Spalten Thomas Gottron GLDB 2012/13 7
Erste Optimierungsidee: frühe Selektion SELECT Titel FROM Professoren, Vorlesungen WHERE Name = Popper AND PersNr = gelesenvon 2 2 333 1 Professoren 164 Vorlesungen 333 π[titel] σ PersNr=gelesenVon σ Name= Popper Professoren Vorlesungen Thomas Gottron GLDB 2012/13 8
Zweite Optimierungsidee: Projektionen einfügen SELECT Titel FROM Professoren, Vorlesungen WHERE Name = Popper AND PersNr = gelesenvon 3 1 3 1 π[persnr] 2 π[titel, gelesenvon] 5 Professoren 5 Vorlesungen 10 π[titel] σ PersNr=gelesenVon π PersNr σ Name= Popper Professoren π Titel,gelesenVon Vorlesungen Thomas Gottron GLDB 2012/13 9
Dritte Optimierungsidee: Join statt Kreuzprodukt SELECT Titel FROM Professoren, Vorlesungen WHERE Name = Popper AND PersNr = gelesenvon 1 1 π[persnr] 2 1 2 3 π[titel, gelesenvon] 333 2 1 5 Professoren 164 5 Vorlesungen 333 10 π[titel] π PersNr σ Name= Popper Professoren π Titel,gelesenVon Vorlesungen Thomas Gottron GLDB 2012/13 10
Vierte Optimierungsidee: Reihenfolge der Joins SELECT x FROM A, B, C WHERE A.y = B.y AND B.z= C.z Gute Abschätzung nötig π[x] 3 π[x] 3 80 4 A B C 1000 100 5 A B C 1000 100 5 π[x] A B C π[x] A B C Thomas Gottron GLDB 2012/13 11
Heuristik: durch Umformung σ σ 1 σ 2 σ 1. Selektionen aufbrechen 2. Selektionen nach unten schieben σ 3. Selektion und Kreuzprodukt zu Join zusammenfassen 4. Joinreihenfolge optimieren π π 5. Projektionen einfügen 6. Projektionen nach unten schieben Thomas Gottron GLDB 2012/13 12
Äquivalenzerhaltende Umformungsregeln Aufbrechen von Konjunktionen in Selektionen σ P1 P 2 R = σ P1 σ P2 R σ σ 1 σ 2 Selektionen sind kommutativ σ P1 σ P2 R = σ P2 σ P1 R σ Projektionskaskaden π A 1 π A 2 π A n R = π A 1 R π Kaskade nur definiert, wenna 1 A 2 A n Vertauschen von Projektion und Selektion π A σ P R = σ P π A R σ π Wenn die Attribute aus P in A liegen Thomas Gottron GLDB 2012/13 13
Äquivalenzerhaltende Umformungsregeln Selektion an Join / Kreuzprodukt vorbeischieben σ P R 1 R 2 = σ P R 1 R 2 σ σ P R 1 R 2 = σ P R 1 R 2 Wenn P nur Attribute aus R 1 betrifft Projektion an Join vorbeischieben π A R 1 R 2 = π A π A 1 R 1 π A 2 R 2 π Wobei A 1 nur Attribute aus R 1 betrifft und Joinattribute erhält (ebenso für A 2 ). Joinattribute werden nachgelagert über π A ausgeblendet. Vertauschen von Projektion und Vereinigung π A R 1 R 2 = π A R 1 π A R 2 π Thomas Gottron GLDB 2012/13 14
Äquivalenzerhaltende Umformungsregeln Kommutativität: R 1 R 2 = R 2 R 1 R 1 R 2 = R 2 R 1 R 1 R 2 = R 2 R 1 R 1 R 2 = R 2 R 1 Assoziativität: R 1 R 2 R 3 = R 1 R 2 R 3 R 1 R 2 R 3 = R 1 R 2 R 3 R 1 R 2 R 3 = R 1 R 2 R 3 R 1 R 2 R 3 = R 1 R 2 R 3 Konkrete Ausführung benötigt Kostenmodelle und Größenabschätzungen Thomas Gottron GLDB 2012/13 15
Äquivalenzerhaltende Umformungsregeln Selektion und Kreuzprodukt zusammenfassen σ R1.A=R 2.B R 1 R 2 = R 1 R1.A=R 2.B R 2 σ DeMorgan sche Umformungen in Selektionsbedingungen: σ P Q = σ P Q σ P Q = σ P Q σ σ 1 σ 2 Erlaubt dadurch das Verschieben von Negationen Thomas Gottron GLDB 2012/13 16
Zusammenfassung Logische Optimierung Ausgangspunkt: kanonische Übersetzung Heuristische Umformungsregeln Optimum nicht garantiert Äquivalenzerhaltende Umformungsregeln der RA Ergebnis darf nicht verändert werden Ergebnis: Relationaler Ausdruck als Operatorbaum Unabhängig von physischer Umsetzung Thomas Gottron GLDB 2012/13 17
Fragen? gottron@uni-koblenz.de http://west.uni-koblenz.de/teaching/ws1213/datenbanken Thomas Gottron GLDB 2012/13 18