Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dr. Brigitte Mathiak Kapitel 11 Anfragebearbeitung.

Ähnliche Präsentationen


Präsentation zum Thema: "Dr. Brigitte Mathiak Kapitel 11 Anfragebearbeitung."—  Präsentation transkript:

1 Dr. Brigitte Mathiak Kapitel 11 Anfragebearbeitung

2 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung2 Lernziele Relationenalgebra Ablauf der Anfrageoptimierung Logische Optimierung Umwandlung von SQL in Relationenalgebra Heuristische Optimierung Physische Optimierung Unterschiedliche JOIN Algorithmen Kostenbasierte Optimierung

3 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung3 Sehr hohes Abstraktionsniveau der mengenorientierten Schnittstelle (SQL). Sie ist deklarativ, nicht-prozedural, d.h. es wird spezifiziert, was man finden möchte, aber nicht wie. Das wie bestimmt sich aus der Abbildung der mengenorientierten Operatoren auf Schnittstellen-Operatoren der internen Ebene (Zugriff auf Datensätze in Dateien, Einfügen/Entfernen interner Datensätze, Modifizieren interner Datensätze). Zu einem was kann es zahlreiche wies geben: effiziente Anfrageauswertung durch Anfrageoptimierung. i.A. wird aber nicht die optimale Auswertungsstrategie gesucht (bzw. gefunden) sondern eine einigermaßen effiziente Variante Ziel: avoiding the worst case Optimierung von Datenbank- Anfragen: Grundsätze

4 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung4 Ablauf der Anfrageoptimierung Scanner Parser Sichtenauflösung Anfrage- Optimierer Codeerzeugung Ausführung Deklarative Anfrage Algebraischer Ausdruck Auswertungs- Plan (QEP)

5 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra5 Professoren Pers Nr Name Ran g Rau m 2125SokratesC4226 2126RusselC4232 2127 Kopernik us C3310 2133PopperC352 2134 Augustin us C3309 2136CurieC436 2137KantC47 prüfen Matr Nr VorlNr Pers Nr Note 28106500121261 25403504121252 Relationenmodell revisited: Grundbegriffe DB: Relationen (tables) Ausprägung dom (PersNr) dom (Name)... dom (Raum) Schema Tupel (Record, Row) Attribut (Column)

6 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra6 Relationenmodell revisited: Definitionen Gegeben sei eine Menge von Wertebereichen primitiver Datentypen {D 1,..., D m }, die als "Domains" bezeichnet werden. Eine Relation R ist ein Paar R = (s,v) mit einem Schema s = sch(R) = {A 1,..., A n }, das aus einer Menge von Attributen (Attributnamen) besteht und für jedes Attribut A i einen Domain dom(A i ) {D 1,..., D m } festlegt, und einer Ausprägung v = val ( R ) dom(A 1 ) dom(A 2 )... dom(A n ).

7 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra7 Relationenalgebra (RA): Operationen Eine Operation der RA hat eine oder mehrere Relationen als Operanden und liefert eine Relation als Ergebnis (Abgeschlossenheit der Algebra) Operationen in RA: Mengenoperationen (Vereinigung, Durchschnitt, …) Zuweisung / Umbenennung Selektion, Projektion Joins Division

8 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra8 Mengenoperationen Für zwei Relationen R, S mit sch(R) = sch(S) sind die üblichen Mengenoperationen definiert: Vereinigung (Union) R S: Durchschnitt (Intersection) R S: Differenz (Difference) R S:

9 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra9 Zuweisung Idee: Umbenennung von Relationen und/oder einzelnen Attributen Seien R, S Relationen mit sch ( R ) = { A 1,..., A n } und sch ( S ) = { B 1,..., B n }, so dass für alle i gilt: dom ( A i ) = dom ( B i ). Die Zuweisung R := S bedeutet: val ( R ) = val ( S ). Ausführlicher schreibt man auch R ( A 1,..., A n ) := S ( B 1,..., B n ).

10 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra10 Umbenennung Vereinfachte Form der Zuweisung: explizite Umbenennung von einzelnen Attributen oder Relationen Umbennung von einzelnen Attributen [Voraussetzung Vorgänger] (voraussetzen) (.. Attribut "Vorgänger" wird in "Voraussetzung" umbenannt) Umbenennung von Relationen [V 1 ] (voraussetzen ) (.. Relation "voraussetzen" wird in " V 1 " umbenannt)

11 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra11 Selektion Selektion (Filterung, Auswahl von Zeilen einer Tabelle): Das Resultat einer Selektion [ F ]( R ) auf einer Relation R ist: Die Menge der möglichen Filterformeln F ist: 1)Für Attribute A, B aus sch(R) mit dom ( A ) = dom ( B ), Konstante c dom ( A ) und Vergleichsoperationen {=,,,,, } sind A B und A c zulässige Filterbedingungen. 2) Falls F 1 und F 2 zulässige Filterbedingungen sind, dann sind auch F 1 F 2, F 1 F 2, F 1 und ( F 1 ) zulässig. 3) Nur die von 1) und 2) erzeugten Filterbedingungen sind zulässig.

12 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra12 Projektion Projektion (Auswahl von Spalten einer Tabelle): Sei A sch ( R ). Das Resultat einer Projektion [ A ]( R ) ist:

13 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra13 Selektion vs. Projektion Selektion Projektion

14 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra14 Selektion / Projektion: Beispiel MatrNrNameSemester 24002Xenokrates18 25403Jonas12 Selektion: Rang C3 C4 Projektion: [Semester > 10] (Studenten) [Rang] (Professoren) Studenten MatrNrNameSemester 24002Xenokrates18 25403Jonas12 26120Fichte10 26830Aristoxenos8 27550Schopenhauer6 28106Carnap3 29120Theophrastos2 29555Feuerbach2 Professoren PersNrNameRangRaum 2125SokratesC4226 2126RusselC4232 2127KopernikusC3310 2133PopperC352 2134AugustinusC3309 2136CurieC436 2137KantC47

15 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra15 Beispiel: Selektion/Projektion mit Umbenennung Mengendurchschnitt nur auf zwei Argumentrelationen mit gleichem Schema anwendbar. Deshalb ist die Umbenennung des Attributes gelesenVon in PersNr in der Relation Vorlesungen notwendig. Anfrage: PersNr aller C4-Professoren, die mindestens eine Vorlesung halten. Professoren PersNrNameRangRaum 2125SokratesC4226 2126RusselC4232 2127KopernikusC3310 2133PopperC352 2134AugustinusC3309 2136CurieC436 2137KantC47 Vorlesungen VorlNrTitelSWS gelesenVon 5001Grundzüge42137 5041Ethik42125 5043Erkenntnistheorie32126 5049Mäeutik22125 4052Logik42125 5052Wissenschaftstheorie32126 5216Bioethik22126 5259Der Wiener Kreis22133 5022Glaube und Wissen22134 4630Die 3 Kritiken42137

16 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra16 Natural Join Natural Join: | | Natürlicher Verbund von Relationen über gleiche Attributnamen und Attributwerte. Das Resultat von R | | S mit A = sch(R) und B = sch(S) ist : P (X 1,..., X m, Y 1,..., Y k ) Q (Y 1,..., Y k, Z 1,..., Z n ) X1X1 X2X2...XmXm Y1Y1 Y2Y2 YkYk Z1Z1 Z2Z2 ZnZn P |×| Q P Q Q P

17 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra17 Natural Join: Beispiel | Studenten MatrNrNameSemester 24002Xenokrates18 25403Jonas12 26120Fichte2 26830Aristoxenos8 27550Schopenhauer1 hören MatrNrVorlNr 240025001 254035001 240024052 240025041 268305052 MatrNrNameSemesterVorlNr 24002Xenokrates185001 24002Xenokrates184052 24002Xenokrates185041 25403Jonas125001 26830Aristoxenos85052

18 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra18 Kartesisches Produkt Kartesisches Produkt: Seien R, S Relationen mit Schemata A = sch ( R ) und B = sch ( S ). Sei A' ein Schema, bei dem alle A i, die auch in B vorkommen, unbenannt sind in R.A i, und sei B' ein analoges Schema mit Attributnamen S.A i. Das Resultat von R S ist: X1X1 X2X2...XmXm P.Y 1 P.Y 2 … P.Y k Q. Y 1 Q. Y 2 … Q. Y k Z1Z1 Z2Z2...ZnZn P (X 1,..., X m, Y 1,..., Y k ) Q (Y 1,..., Y k, Z 1,..., Z n ) P × Q

19 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra19 Kartesisches Produkt: Beispiel PersNrNameRangRaumMatrNrVorlNr 2125SokratesC4226261205001... 2125SokratesC4226295555001... 2137KantC47295555001 × Problem: potentiell riesige Zwischenergebnisse sch(Professoren)sch(hören) Professoren PersNrNameRangRaum 2125SokratesC4226 2126RusselC4232 2127KopernikusC3310 2133PopperC352 2134AugustinusC3309 2136CurieC436 2137KantC47 hören MatrNrVorlNr 261205001 275505001 275504052 281065041 281065052 281065216...

20 Grundlagen der Datenbanken, WS 08/09Kapitel 5: Relationale Algebra20 Äquivalenzregeln ("Rechenregeln") der RA Kommutativitätsregeln : 1) falls P nur R 1 -Attribute enthält 2) Assoziativitätsregel : 3) Idempotenzregeln : 4) 5) Distributivitätsregeln : 6) 7) 8) falls P nur R-Attribute enthält 9) falls Joinattribute 10) R 1 S 1 Invertierungsregel : 11)

21 Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra21 Ausdrucksmächtigkeit der RA Die Menge der relationenalgebraischen Ausdrücke über einer Menge von Relationen P 1,..., P n ist wie folgt definiert: (i) P 1,..., P n sind Ausdrücke. (ii) Wenn R, S, T, Q Ausdrücke sind, F eine Filterformel über sch(P) ist, A sch(R), sch(S)=sch(T) und sch(R) sch(Q) gilt, dann sind [F](R), [A](R), R |×| S, R × S, R |*| S, S T, S T, S - T, R Q auch Ausdrücke. (iii) Nur die von (i) und (ii) erzeugten Ausdrücke sind RA-Ausdrücke. Satz:,,,, –, bilden eine minimale Menge von Operationen, mit denen sich alle Operationen der RA ausdrücken lassen. Eine Anfragesprache heißt relational vollständig, wenn sich damit alle Anfragen der (minimalen) Relationenalgebra ausdrücken lassen.

22 Eigenschaften der Relationenalgebra (1/2) Satz: Alle Ergebnismengen von Operationen der relationalen Algebra sind endlich. Beweisskizze: Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra22 Man zeige für alle Operationen ×,,,, – und, dass für endliche Eingaberelationen und beliebige Filterformeln das Ergebnis auch endlich ist. Beispiel: R × S: Sei die Anzahl der Tupel in R: r = |val(R)| und in S: s=|val(S)|. Dann ist sowohl r als auch s endlich (s. oben). Die Anzahl der Tupel in R × S: rxs = |val(R × S)| kann bestimmt werden als rxs r*s, da für jedes Element in val(R) höchstens s Ausprägungen in R × S entstehen können. rxs ist also endlich.

23 Eigenschaften der Relationenalgebra (2/2) Mit ähnlichem Beweisschema gilt auch: Die Größe der Ergebnismenge von Operationen der relationalen Algebra kann sicher nach oben abgeschätzt werden, wenn die Größe der Eingaberelationen bekannt ist Die Laufzeit zur Auswertung eines Ausdrucks der Relationenalgebra kann sicher nach oben abgeschätzt werden, wenn sowohl die Größe der Eingaberelationen bekannt ist als auch die nach oben abgeschätzte Laufzeit des Berechnungsalgorithmen der eingesetzten Einzeloperationen Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra23

24 Offene Fragen: Kann SQL die Relationenalgebra abbilden? JA, SQL ist relational vollständig Kann die Relationenalgebra SQL abbilden? JEIN Es kommt auf den Dialekt an. Was bei den meisten fehlt sind Multimengen, Aggregationen, Gruppierung und transitive Hülle Diese können allerdings mit geringem Zusatzaufwand eingefügt werden Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra24

25 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung25 Logische Optimierung 1.Übersetzen der SQL-Anfrage in die Relationenalgebra 2.Äquivalentes Umformen der RA um die Anfragebearbeitung zu beschleunigen

26 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung26 Allgemeingültige Übersetzung SELECT A1,..., An FROM R1,..., Rk WHERE P R1R2 R3 Rk

27 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung27 Allgemeingültige Übersetzung (Beispiel) SELECT Titel FROM Professoren, Vorlesungen WHERE Name = ´Popper´ AND PersNr = gelesenVon Professoren Vorlesungen Problem: Professoren Vorlesung hat ist ein sehr großes Zwischenergebnise

28 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung28 Erste Optimierungsidee Professoren Vorlesungen SELECT Titel FROM Professoren, Vorlesungen WHERE Name = ´Popper´ AND PersNr = gelesenVon Das Zwischenergebnis ist nun deutlich kleiner.

29 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung29 Zur Erinnerung: Äquivalenzregeln der RA Kommutativitätsregeln : 1) falls P nur R 1 -Attribute enthält 2) Assoziativitätsregel : 3) Idempotenzregeln : 4) 5) Distributivitätsregeln : 6) 7) 8) falls P nur R-Attribute enthält 9) falls Joinattribute 10) R 1 S 1 Invertierungsregel : 11)

30 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung30 1. Mittels Regel 1 werden konjunktive Selektionsprädikate in Kaskaden von -Operationen zerlegt. 2. Mittels Regeln 2, 4, 6, und 9 werden Selektionsoperationen soweit "nach unten" propagiert wie möglich. 3. Mittels Regel 8 werden die Blattknoten so vertauscht, dass derjenige, der das kleinste Zwischenergebnis liefert, zuerst ausgewertet wird. 4. Forme eine -Operation, die von einer -Operation gefolgt wird, wenn möglich in eine Join-Operation um 5. Mittels Regeln 3, 4, 7, und 10 werden Projektionen soweit wie möglich nach unten propagiert. 6. Versuche Operationsfolgen zusammenzufassen, wenn sie in einem Durchlauf ausführbar sind (z.B. Anwendung von Regel 1, Regel 3, aber auch Zusammenfassung aufeinanderfolgender Selektionen und Projektionen zu einer Filter-Operation). Heuristische Anwendung der Transformationsregeln Selektion nach unten Kleine Zwischenergebnisse Besser Join als Kartesisch Projektionen nach unten (jedoch über die Selektionen) Operationen zusammenfassen

31 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung31 Anwendung der Transformationsregeln SELECT distinct s.Semester FROM Studenten s, hören h Vorlesungen v, Professoren p WHERE p.Name = ´Sokrates´ AND v.gelesenVon = p.PersNr AND v.VorlNr = h.VorlNr AND h.MatrNr = s.MatrNr sh v p

32 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung32 Aufspalten der Selektionsprädikate s h v p sh v p

33 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung33 Verschieben der Selektionsprädikate sh v p s h v p

34 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung34 Zusammenfassung von Selektionen und Kreuzprodukten zu Joins s h v p sh v p

35 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung35 Optimierung der Joinreihenfolge Kommutativität und Assoziativität ausnutzen s h v p s h v p

36 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung36 Was bringt das ? s h v p s h v p 13 4 1 3 4

37 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung37 Einfügen von (zusätzlichen) Projektionen s h v p s h v p

38 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung38 Physische Optimierung Ziel ist es gute Algorithmen für die Ausführung auswählen Bei Join: Nested-Loop-Join Index-Nested-Loop-Join Merge-Join Hash-Join Indexe und Vorsortierungen sollten möglichst gut ausgenutzt werden. Nach Bedarf werden Indexe und Sortierungen akut erstellt.

39 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung39

40 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung40 J1 nested (inner-outer) loop brute force-Algorithmus foreach r R foreach s S if s.B = r.A then Res := Res (r s) Laufzeit: O(|R|*|S|) ~ O(n²) Keine Vorbedingungen Auch geeignet für das kartesische Produkt Fazit: Der einfachste und flexibelste Join Implementierung von Join: Strategien

41 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung41 Implementierung von Join: Strategien

42 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung42 J3 Merge-Join Vorbedingung: Beide Relationen sind passend sortiert. 2 pointer r, s =0 while (R[r].exists() && S[s].exists()) { if (R[r] == S[s]) { output.add(R[r]);r++;s++; } else if (r< s) r++; else s++; } falls A oder B Schlüsselattribut ist, wird jedes Tupel in R und S nur genau einmal gelesen -> O(|R|+|S|) ~O(n) Kann sich sogar lohnen, wenn R oder S erst sortiert werden müssen Implementierung von Join: Strategien 136791113 246781113

43 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung43 J4 Hash-Join R und S werden mittels der gleichen Hashfunktion h – angewendet auf R.A und S.B – auf (dieselben) Hash- Buckets abgebildet Hash-Buckets sind i.Allg. auf dem Hintergrundspeicher (abhängig von der Größe der Relationen) Zu verbindende Tupel befinden sich dann im selben Bucket Wird (nach praktischen Tests) nur von J3 geschlagen, wenn die Relationen schon vorsortiert sind Implementierung von Join: Strategien

44 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung44 Übersetzung der logischen Algebra RS A R.A=S.B RS HashJoin R.A=S.B RS MergeJoin R.A=S.B [Sort R.A ][Sort S.B ] R S IndexJoin R.A=S.B [Hash S.B | Tree S.B ] R S NestedLoop R.A=S.B [Bucket]

45 Implementierung von Select: Strategien S1 Select Brute-Force: Jedes Tupel wird einzeln überprüft O(n) S2 IndexSelect Der Index wird benutzt um die Anfrage schneller zu beantworten O(1) bei Hash Index und Gleichheit O(log n) bei B-Baum und Gleichheit O(log n) bei B-Baum und Bereichsanfrage Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung45

46 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung46 Übersetzung der logischen Algebra P R Select P R IndexSelect P R

47 Implementierung der Projektion Wenn mit dem Projektionsergebnis weitergerechnet wird, muss das Zwischenergebnis dupliziert werden. Die Duplikation sollte nach Möglichkeit einen Index oder eine Sortierung erhalten, wenn diese noch weiter benötigt werden. Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung47

48 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung48 Übersetzung der logischen Algebra l R [NestedDup] Project l R [SortDup] Sort Project l R [IndexDup] [Hash | Tree] Project l R

49 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung49 Wiederholung der Optimierungsphasen select distinct s.Semester from Studenten s, hören h Vorlesungen v, Professoren p where p.Name = ´Sokrates´ and v.gelesenVon = p.PersNr and v.VorlNr = h.VorlNr and h.MatrNr = s.MatrNr sh v p p.Name = ´Sokrates´ and... s.Semester

50 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung50 s h v s h v

51 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung51 Kostenbasierte Optimierung Generiere alle denkbaren Anfrageauswertungspläne Enumeration Bewerte deren Kosten Kostenmodell Statistiken Histogramme Kalibrierung gemäß verwendetem Rechner Abhängig vom verfügbaren Speicher Aufwands-Kostenmodell -Durchsatz-maximierend -Nicht Antwortzeit-minimierend Behalte den billigsten Plan

52 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung52 Tuning von Datenbanken Statistiken (Histogramme, etc.) müssen explizit angelegt werden Anderenfalls liefern die Kostenmodelle falsche Werte In Oracle … analyze table Professoren compute statistics analyze table Professoren estimate statistics In DB2 … runstats on table …

53 Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung53 Analysieren von Leistungsengpässen Geschätzte Kosten von Oracle

54 Fazit Datenbanken für Mathematiker, WS 11/12Kapitel 11: Anfragebearbeitung54 Datenbankoptimierung ist recht kompliziert Die Besonderheiten der Anfragesprache erlauben es weitgehende Optimierungen durchzuführen. Dabei ist vor allem die Reihenfolge der Operationen relevant. Indexe ermöglichen es schnellere Operationen zu verwenden. Über Verschachtelungen hinweg, kann es allerdings schneller sein, sie nicht zu benutzen.


Herunterladen ppt "Dr. Brigitte Mathiak Kapitel 11 Anfragebearbeitung."

Ähnliche Präsentationen


Google-Anzeigen