Kapitel 8 Anfragebearbeitung. Logische Optimierung Physische Optimierung Kostenmodelle Tuning

Größe: px
Ab Seite anzeigen:

Download "Kapitel 8 Anfragebearbeitung. Logische Optimierung Physische Optimierung Kostenmodelle Tuning"

Transkript

1 Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning

2 Ablauf der Anfrageoptimierung Deklarative Anfrage Scanner Parser Sichtenauflösung Algebraischer Ausdruck Anfrage- Optimierer Auswertungs- Plan (QEP) Codeerzeugung Ausführung

3 Logische Optimierung

4 Kanonische Übersetzung π A1,..., An σ P select A1,..., An from R1,..., Rk where P Rk R R1 R 4

5 Kanonische Übersetzung select Titel from Professoren, Vorlesungen where Name = Popper and PersNr = gelesenvon π Titel σ Name = Popper and PersNr=gelesenVon Professoren Vorlesungen π Titel (σ Name = Popper and PersNr=gelesenVon (Professoren Vorlesungen))

6 Erste Optimierungsidee select Titel from Professoren, Vorlesungen where Name = Popper and PersNr = gelesenvon π Titel σ PersNr=gelesenVon σ Name = Popper Vorlesungen Professoren π Titel (σ PersNr=gelesenVon ((σ Name = Popper Professoren) Vorlesungen)) 6

7 Optimierung von Datenbank- Anfragen Grundsätze: 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 wie s geben: effiziente Anfrageauswertung durch Anfrageoptimierung. i.allg. wird aber nicht die optimale Auswertungsstrategie gesucht (bzw. gefunden) sondern eine einigermaßen effiziente Variante Ziel: avoiding the worst case 7

8 Äquivalenzerhaltende Transformationsregeln 1. Aufbrechen von Konjunktionen im Selektionsprädikat σ (R ) σ (σ ( (σ c (R )) )) 1 c... cn c1 c cn. σ ist kommutativ σ (σ ((R )) σ (σ c ((R )) 1 c c c1. π -Kaskaden: Falls L 1 L L n, dann gilt π (π ( (π (R )) )) π (R ) L 1 L Ln L1 4. Vertauschen von σ und π Falls die Selektion sich nur auf die Attribute A 1,, A n der Projektionsliste bezieht, können die beiden Operationen vertauscht werden π A 1,, (σ An c (R )) σ c (π A1,, (R )) An.,, und A sind kommutativ R A c S S A c R 8

9 Äquivalenzerhaltende Transformationsregeln 6. Vertauschen von σ mit A Falls das Selektionsprädikat c nur auf Attribute der Relation R zugreift, kann man die beiden Operationen vertauschen: σ c (R A j S) σ c (R) A j S Falls das Selektionsprädikat c eine Konjunktion der Form c 1 c ist und c 1 sich nur auf Attribute aus R und c sich nur auf Attribute aus S bezieht, gilt folgende Äquivalenz: σ c (R A j S) σ c1 (R) A j (σ c (S)) 9

10 Äquivalenzerhaltende Transformationsregeln 7. Vertauschung von π mit A Die Projektionsliste L sei: L = {A 1,,A n, B 1,,B m }, wobei A i Attribute aus R und B i Attribute aus S seien. Falls sich das Joinprädikat c nur auf Attribute aus L bezieht, gilt folgende Umformung: π L (R A c S) (π A 1,, An (R)) A c (π B1,, Bn (S)) Falls das Joinprädikat sich auf weitere Attribute, sagen wir A 1 ',, A p ', aus R und B 1 ',, B q ' aus S bezieht, müssen diese für die Join-Operation erhalten bleiben und können erst danach herausprojiziert werden: π L (R A c S) π L (π A 1,, An, A1,, An (R) A c π B 1,, Bn, B1,, Bn (R)) Für die -Operation gibt es kein Prädikat, so dass die Einschränkung entfällt. 10

11 Äquivalenzerhaltende Transformationsregeln 8. Die Operationen A,,, sind jeweils (einzeln betrachtet) assoziativ. Wenn also Φ eine dieser Operationen bezeichnet, so gilt: (R ΦS ) ΦT R Φ(S ΦT ) 9. Die Operation σ ist distributiv mit,,. Falls Φ eine dieser Operationen bezeichnet, gilt: σ c (R ΦS) (σ c (R)) Φ (σ c (S)) 10. Die Operation π ist distributiv mit. π c (R S) (π c (R)) (π c (S)) 11

12 Äquivalenzerhaltende Transformationsregeln 11. Die Join- und/oder Selektionsprädikate können mittels de Morgan's Regeln umgeformt werden: (c 1 c ) ( c 1 ) ( c ) (c 1 c ) ( c 1 ) ( c ) 1. Ein kartesisches Produkt, das von einer Selektions- Operation gefolgt wird, deren Selektionsprädikat Attribute aus beiden Operanden des kartesischen Produktes enthält, kann in eine Joinoperation umgeformt werden. Sei c eine Bedingung der Form A θ B, mit A ein Attribut von R und B ein Attribut aus S. σ c (R S ) R A c S 1

13 Heuristische Anwendung der Transformationsregeln 1. Mittels Regel 1 werden konjunktive Selektionsprädikate in Kaskaden von σ-operationen zerlegt.. Mittels Regeln, 4, 6, und 9 werden Selektionsoperationen soweit nach unten propagiert wie möglich.. 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 A-Operation um. Mittels Regeln, 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, aber auch Zusammenfassung aufeinanderfolgender Selektionen und Projektionen zu einer Filter -Operation). 1

14 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 π s.semester σ p.name = Sokrates and... p v s h 14

15 Aufspalten der Selektionsprädikate π s.semester π s.semester σ p.name = Sokrates and... σ p.persnr=v.gelesenvon σ v.vorlnr=h.vorlnr σ s.matrnr=h.matrnr s h v p s h σ p.name = Sokrates v p 1

16 Verschieben der Selektionsprädikate Pushing Selections π s.semester σ p.persnr=v.gelesenvon π s.semester σ v.vorlnr=h.vorlnr σ p.persnr=v.gelesenvon σ s.matrnr=h.matrnr σ p.name = Sokrates s h v p s h σ v.vorlnr=h.vorlnr σ s.matrnr=h.matrnr v σ p.name = `Sokrates` p 16

17 Zusammenfassung von Selektionen und Kreuzprodukten zu Joins π s.semester σ p.persnr=v.gelesenvon π s.semester A p.persnr=v.gelesenvon s h σ v.vorlnr=h.vorlnr σ s.matrnr=h.matrnr v σ p.name = Sokrates p A v.vorlnr=h.vorlnr σ p.name = Sokrates A s.matrnr=h.matrnr v p s h

18 Optimierung der Joinreihenfolge Kommutativität und Assoziativität ausnutzen π s.semester π s.semester A p.persnr=v.gelesenvon A s.matrnr=h.matrnr A v.vorlnr=h.vorlnr s A v.vorlnr=h.vorlnr σ p.name = Sokrates A s.matrnr=h.matrnr v p A p.persnr=v.gelesenvon h s h σ p.name = Sokrates v p 18

19 Was hat s gebracht? 4 π s.semester 4 π s.semester A s.matrnr=h.matrnr 1 A p.persnr=v.gelesenvon 4 A v.vorlnr=h.vorlnr s 1 A v.vorlnr=h.vorlnr σ p.name = Sokrates A s.matrnr=h.matrnr v p 1 A p.persnr=v.gelesenvon h s h σ p.name = Sokrates v p 19

20 Einfügen von Projektionen π s.semester π s.semester A s.matrnr=h.matrnr A s.matrnr=h.matrnr A v.vorlnr=h.vorlnr s π h.matrnr A v.vorlnr=h.vorlnr s A p.persnr=v.gelesenvon A p.persnr=v.gelesenvon h h σ p.name = Sokrates v σ p.name = Sokrates v p p 0

21 Eine weitere Beispieloptimierung 1

22

23

24 4

25

26 6

27 7

28 Physische Optimierung 8

29 Anwendungsprogramm 9

30 Pull-based Query Evaluation next open Return Ergebnis 0

31 Pipelining vs. Pipeline-Breaker R S T 1

32 Pipelining vs. Pipeline-Breaker R S T

33 Pipeline-Breaker Unäre Operationen sort Duplikatelimination (unique,distinct) Aggregatoperationen (min,max,sum,...) Binäre Operationen Mengendifferenz Je nach Implementierung Join Union

34 Implementierung der Verbindung (JOIN) Beispiele: Op6 Employee A DNO = Dnumber Department Op7 Department A MgrSSN = SSN Employee Zu betrachten allgemein: Implementierungs-Varianten für R A A=B S 4

35 Optimierung zentralisierter Anfragen Literatur: E. Elmasri and S. Navathe: Fundamentals of Database Systems. Benjamin Cummings, 1999, Redwood City, CA. G. Moerkotte: Konstruktion von Anfrageoptimierer für Objektbanken. Shaker-Verlag, 199, Aachen. G. Graefe: Query Evaluation Techniques for Large Databases, ACM Computing Surveys, 199, volume, number, pages 7-0. Ein ganz toller Übersichtsartikel Pflichtlektüre

36 6

37 Implementierung der Verbindung: Strategien J1 nested (inner-outer) loop brute force -Algorithmus foreach r R foreach s S if s.b = r.a then Res := Res (r o s) 7

38 8

39 Implementierung der Verbindung: Strategien Block-Nested Loop Algorithmus R m-k m-k m-k m-k m-k S k k k k k k 9

40 Implementierung der Verbindung: Strategien J Zugriffsstruktur auf S Index Nested Loop Join in jedem Durchlauf von R werden nur die in S qualifizierenden Tupel gelesen dazu ist ein Index auf B erforderlich foreach r R foreach s S[B=r.A] Res := Res (r o s) 40

41 41

42 Implementierung der Verbindung: Strategien J Sort-Merge Join erfordert zwei Sortierungen 1. R muss nach A und. S nach B sortiert sein sehr effizient falls A oder B Schlüsselattribut ist, wird jedes Tupel in R und S nur genau einmal gelesen R A S B Ergebnis: A B

43 4

44 Implementierung der Verbindung: Strategien 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 Hintergrundspeicher (abhängig von der Größe der Relationen) Zu verbindende Tupel befinden sich dann im selben Bucket Wird (nach praktischen Tests) nur von J geschlagen, wenn die Relationen schon vorsortiert sind 44

45 Implementierung der Verbindung: Strategien R A r 1 r 7 r 8 r 4 S B 7 s 1 s 10 s s 4 h(a) h(b ) r 1 r 4 s 1 r 7 7 s r 8 s 4 10 s Bucket 1 Bucket Bucket 4

46 Normaler blockierender Hash-Join mit Überlauf: Partitionieren P1 P1 P Partition h(r.a) Partition h(s.a) P P receive receive P Send Send R S 46

47 Normaler blockierender Hash-Join mit Überlauf: Build/Probe P1 Lade Blöcke von P1 Hashtabelle build P1 P Partition h(r.a) probe P P P Send R Send S 47

48 48

49 49

50 0

51 1

52 Hybrid Hash-Join Fange so an, als wenn der Build-Input S vollständig in den Hauptspeicher passen würde Sollte sich dies als zu optimistisch herausstellen, verdränge eine Partition nach der anderen aus dem Hauptspeicher Mindestens eine Partition wird aber im Hauptspeicher verbleiben Danach beginnt die Probe-Phase mit der Relation R Jedes Tupel aus R, dessen potentielle Join-Partner im Hauptspeicher sind, wird sogleich verarbeitet Hybrid Hash-Join ist dann besonders interessant, wenn der Build-Input knapp größer als der Hauptspeicher ist Kostensprung beim normalen Hash-Join Wird oft auch Grace-Hash-Join genannt, weil er für die Datenbankmaschine Grace in Japan erfunden wurde

53 Hybrid Hash-Join Hashtabelle P1 P P R S

54 Hybrid Hash-Join Hashtabelle P1 P P R S 4

55 Hybrid Hash-Join Hashtabelle P1 P P R S

56 Hybrid Hash-Join Hashtabelle P Partition h(r.a) probe P P P R Wenn r zur ersten Partition gehört 6

57 Parallele Anfragebearbeitung: Hash Join sp lit sp lit sp lit sp lit me rge me rge me rge me rge scan scan scan scan join join A B A B Ai Bi Aj Bj 7

58 Paralleler Hash Join im Detail 1. An jeder Station werden mittels Hash-Funktion h1 die jeweiligen Partitionen von A und B in A1,...,Ak und B1,...,Bk zerlegt h1 muss so gewählt werden, dass alle Ai s aller Stationen in den Hauptspeicher passen. Für alle 1 <= i <= n: Berechne jetzt den Join von Ai mit Bi wie folgt a. Wende eine weitere Hash-Funktion h an, um Ai auf die l Stationen zu verteilen Sende Tupel t an Station h(t) b. Eintreffende Ai-Tupel werden in die Hash-Tabelle an der jeweiligen Station eingefügt c. Sobald alle Tupel aus Ai verschickt sind, wird h auf Bi angewendet und Tupel t an Station h(t) geschickt d. Sobald ein Bi-Tupel eintrifft, werden in der Ai-Hashtabelle seine Joinpartner ermittelt. 8

59 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R R S Nested Loop: O(N ) Sortieren: O(N log N) Partitionieren und Hashing S

60 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R R S S

61 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R R S S Mod S

62 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R R S S Mod S

63 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R R S 6 7 Hashtabelle Mod Build- Phase S

64 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R S = {, } Probe- Phase 6 7 S

65 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R R S = {, } 1 4 Build-Phase. Partition Mod S

66 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R S = {, } 1 4 Probe-Phase. Partition S

67 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R S = {, 1 } 1 4 Probe-Phase. Partition S

68 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R Mod R S = {, 1,, 44, } R S Mod S

69 Prallelausführung von Aggregat- Operationen Min: Min(R.A) = Min ( Min(R1.A),..., Min(Rn.A) ) Max: analog Sum: Sum(R.A) = Sum ( Sum(R1.a),..., Sum(Rn.A) ) Count: analog Avg: man muß die Summe und die Kardinalitäten der Teilrelationen kennen; aber vorsicht bei Null-Werten! Avg(R.A) = Sum(R.A) / Count(R) gilt nur wenn A keine Nullwerte enthält. 69

70 Join mit Hashfilter (Bloom-Filter) R1 S1 R partitionieren partitionieren S Bit (realistisch R *k Bits) False drops 70

71 Join mit Hashfilter (False Drop Abschätzung) Wahrscheinlichkeit, dass ein bestimmtes Bit j gesetzt ist W. dass ein bestimmtes r R das Bit setzt: 1/b W. dass kein r R das Bit setzt: (1-1/b) R W. dass ein r R das Bit gesetzt hat: 1- (1-1/b) R j b

72 Vergleich: Sort/Merge-Join versus Hash-Join merge R run run S merge R partiti on partiti on S 7

73 Illustration: Externes Sortieren

74 Illustration: Externes Sortieren

75 Illustration: Externes Sortieren

76 Illustration: Externes Sortieren sort 76

77 Illustration: Externes Sortieren sort run 77

78 Illustration: Externes Sortieren run 78

79 Illustration: Externes Sortieren sort run 79

80 Illustration: Externes Sortieren run 80

81 Illustration: Externes Sortieren sort run 81

82 Illustration: Externes Sortieren merge run 8

83 Illustration: Externes Sortieren merge run 8

84 Illustration: Externes Sortieren merge run 84

85 Illustration: Externes Sortieren merge run 8

86 Illustration: Externes Sortieren merge run 86

87 Illustration: Externes Sortieren run 87

88 Externes Sortieren: Merge mittels Heap/Priority Queue merge run 88

89 Externes Sortieren: Merge mittels Heap/Priority Queue merge run 89

90 Externes Sortieren: Merge mittels Heap/Priority Queue run 90

91 Externes Sortieren: Merge mittels Heap/Priority Queue Ganz wichtig: aus dem grünen Run nachladen (also aus dem Run, aus dem das Objekt stammte) run 91

92 Externes Sortieren: Merge mittels Heap/Priority Queue run 9

93 Externes Sortieren: Merge mittels Heap/Priority Queue run 9

94 Externes Sortieren: Merge mittels Heap/Priority Queue run 94

95 Externes Sortieren: Merge mittels Heap/Priority Queue run 9

96 Mehrstufiges Mischen / Merge Level 0 m Level 1 m Level 96

97 Replacement Selection während der Run-Generierung Ersetze Array durch Einen Heap

98 Replacement Selection während der Run-Generierung Heap

99 Replacement Selection während der Run-Generierung Heap

100 Replacement Selection während der Run-Generierung Heap

101 Replacement Selection während der Run-Generierung Heap

102 Replacement Selection während der Run-Generierung Heap

103 Replacement Selection während der Run-Generierung Heap

104 Replacement Selection während der Run-Generierung Heap

105 Replacement Selection während der Run-Generierung Heap

106 Replacement Selection während der Run-Generierung Heap

107 Replacement Selection während der Run-Generierung Heap

108 Replacement Selection während der Run-Generierung Heap

109 Replacement Selection während der Run-Generierung Heap

110 Replacement Selection während der Run-Generierung Heap - 16 Nächster Run, kleiner als

111 Replacement Selection während der Run-Generierung Heap - 16 Nächster Run, kleiner als

112 Replacement Selection während der Run-Generierung Heap

113 Replacement Selection während der Run-Generierung Heap

114 Replacement Selection während der Run-Generierung Heap

115 Replacement Selection während der Run-Generierung Heap

116 Replacement Selection während der Run-Generierung Heap

117 Replacement Selection während der Run-Generierung Heap

118 Replacement Selection während der Run-Generierung Heap

119 Replacement Selection während der Run-Generierung Heap

120 Replacement Selection während der Run-Generierung Heap

121 Replacement Selection während der Run-Generierung Heap

122 Implementierungs-Details Natürlich darf man nicht einzelne Datensätze zwischen Hauptspeicher und Hintergrundspeicher transferieren Jeder Round-Trip kostet viel Zeit (ca 10 ms) Man transferiert größere Blöcke Mindestens 8 KB Größe Replacement Selection ist problematisch, wenn die zu sortierenden Datensätze variable Größe habe Der neue Datensatz passt dann nicht unbedingt in den frei gewordenen Platz, d.h., man benötigt eine aufwendigere Freispeicherverwaltung Replacement Selection führt im Durchschnitt zu einer Verdoppelung der Run-Länge Beweis findet man im [Knuth] Komplexität des externen Sortierens? O(N log N)?? 1

123 Algorithmen auf sehr großen Datenmengen R R S Nested Loop: O(N ) Sortieren: O(N log N) Partitionieren und Hashing S

124 Übersetzung der logischen Algebra NestedLoop R.A=S.B MergeJoin R.A=S.B R [Bucket] [Sort R.A ] [Sort S.B ] S R S A R.A=S.B R S IndexJoin R.A=S.B R [Hash S.B Tree S.B ] S HashJoin R.A=S.B R S 14

125 Übersetzung der logischen Algebra IndexSelect P R σ P R Select P R 1

126 Übersetzung der logischen Algebra [IndexDup] [Hash Tree] Project l R π l R [NestedDup] [SortDup] Sort Project l R Project l R 16

127 Ein Auswertungsplan Ein Auswertungsplan 17

128 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 π s.semester σ p.name = Sokrates and... p v s h 18

129 π s.semester A s.matrnr=h.matrnr A v.vorlnr=h.vorlnr s A p.persnr=v.gelesenvon h σ p.name = Sokrates v p 19

130 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 10

131 11

132 Selektivität Sind verschiedene Strategien anwendbar, so benötigt man zur Auswahl eine Kostenfunktion. Sie basiert auf dem Begriff der Selektivität. Die Selektivität eines Suchprädikats schätzt die Anzahl der qualifizierenden Tupel relativ zur Gesamtanzahl der Tupel in der Relation. Beispiele: die Selektivität einer Anfrage, die das Schlüsselattribut einer Relation R spezifiziert, ist 1/ #R, wobei #R die Kardinalität der Relation R angibt. Wenn ein Attribut A spezifiziert wird, für das i verschiedene Werte existieren, so kann die Selektivität als (#R/i) / #R oder 1/i abgeschätzt werden. 1

133 1

134 Abschätzung für einfache Fälle 14

135 Parametrisierte Verteilung Histogramm 1

136 16

137 I/O-Kosten: Block Nested Loop Join

138 Tuning von Datenbanken Statistiken (Histogramme, etc.) müssen explizit angelegt werden Anderenfalls liefern die Kostenmodelle falsche Werte In Oracle analyze table Professoren compute statistics for table; Man kann sich auch auf approximative Statistiken verlassen Anstatt compute verwendet man estimate In DB runstats on table 18

139 Analysieren von Leistungsengpässen Geschätzte Kosten von Oracle 19

140 Baumdarstellung 140

141 Beispiel Anfrage Auswertungsplan SELECT * FROM A, B, C WHERE A.a = B.a AND B.b = C.a ; HashJ 1 ship client IdxNLJ 1 idxscan Blätter Tabellen innere Knoten Operatoren Annotation Ausführungsorte fscan 1 fscan C A 1 B 141

142 Algorithmen - Ansätze Erschöpfende Suche Dynamische Programmierung (System R) A* Suche Heuristiken (Planbewertung nötig) Minimum Selectivity, Intermediate Result,... KBZ-Algorithmus, AB-Algorithmus Randomisierte Algorithmen Iterative Improvement Simulated Annealing 14

143 Problemgröße Suchraum (Planstruktur) 1. # Bushy-Pläne mit n Tabellen [Ganguly et al. 199]: n e n ((n-1))!/(n-1)! ((n-1))! (n-1)! ,76* ,8 * ,* Plankosten unterscheiden sich um Größenordnungen. Optimierungsproblem ist NP-hart [Ibaraki 1984] 14

144 Dynamische Programmierung II Identifikation von Phasen 1. Access Root - Phase: Aufzählen der Zugriffspläne. Join Root - Phase: Aufzählen der Join-Kombinationen. Finish Root - Phase: sort, group-by, etc. 144

145 Optimierung durch Dynamische Programmierung Standardverfahren in heutigen relationalen Datenbanksystemen Voraussetzung ist ein Kostenmodell als Zielfunktion I/O-Kosten CPU-Kosten DP basiert auf dem Optimalitätskriterium von Bellman Literatur zu DP: D. Kossmann und K. Stocker: Iterative Dynamic Programming, TODS, 000 to appear (online) Opti male r Sub plan O S - O Opti male r Sub plan 14

146 DP - Beispiel 1. Phase: Zugriffspläne ermitteln Index Pläne {ABC} {BC} {AC} {AB} {C} {B} {A} 146

147 DP - Beispiel 1. Phase: Zugriffspläne ermitteln Index Pläne {ABC} {BC} {AC} {AB} {C} {B} {A} scan(c) scan(b), iscan(b) scan(a) 147

148 DP - Beispiel Index {ABC} {BC} {AC} {AB} {C} {B} {A}. Phase: Join-Pläne ermitteln (-fach,...,n-fach) Pläne Pruning... s(a) A s(c), s(c) A s(a) s(a) A s(b), s(a) A is(b), is(b) A s(a),... scan(c) scan(b), iscan(b) scan(a) 148

149 DP - Beispiel. Phase: Finalisierung Index {ABC} {BC} {AC} {AB} Pläne (is(b) A s(a)) A s(c)... s(a) A s(c) s(a) A is(b), is(b) A s(a) {C} scan(c) {B} scan(b), iscan(b) {A} scan(a) 149

150 Enumeration Effiziente Enumeration [Vance 96] anstatt zunächst alle -elem, -elem,..., n-elem Pläne sequentiell zu enumerieren: effizientes Interleaving nur Pläne aus bereits berechneten Zeilen notwendig Beispiel: 1. A. B. AB 4. C. AC 6. BC 7. ABC 10

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Anfragebearbeitung Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Ablauf der Anfrageoptimierung Deklarative Anfrage (SQL) Scanner Parser Sichtenauflösung Algebraischer Ausdruck

Mehr

Kapitel 8 Anfragebearbeitung. Logische Optimierung Physische Optimierung Kostenmodelle Tuning

Kapitel 8 Anfragebearbeitung. Logische Optimierung Physische Optimierung Kostenmodelle Tuning Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning Ablauf der Anfrageoptimierung Deklarative Anfrage Scanner Parser Sichtenauflösung Algebraischer Ausdruck Auswertungs-

Mehr

Kapitel 8 Anfragebearbeitung

Kapitel 8 Anfragebearbeitung Kapitel 8 Anfragebearbeitung Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu öffnen, oder das Bild ist beschädigt. Starten Sie

Mehr

Kapitel 8 Anfragebearbeitung. Logische Optimierung Physische Optimierung Kostenmodelle Tuning

Kapitel 8 Anfragebearbeitung. Logische Optimierung Physische Optimierung Kostenmodelle Tuning Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning Ablauf der Anfrageoptimierung Deklarative Anfrage Scanner Parser Sichtenauflösung Algebraischer Ausdruck AnfrageOptimierer

Mehr

Anfrageoptimierung Physische Optimierung

Anfrageoptimierung Physische Optimierung Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Physische Optimierung Dr. Thomas Gottron Wintersemester 01/1 Ziel der phyischen Optimierung Konkrete Implementation der Operatoren

Mehr

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 21.11.2016 Anfragebearbeitung 2 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Physische Optimierung Iterator: einheitliche Schnittstelle

Mehr

Physische Anfrageoptimierung

Physische Anfrageoptimierung Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Dr. Jérôme Kunegis Wintersemester 201/14 Ziel der physischen Optimierung π[titel] Konkrete Implementation der

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 9.1.2008 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 16.11.016 Anfragebearbeitung 1 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Architektur eines DBMS SW-Komponenten der Anfragebearbeitung

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 22.6.2009 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

Anfrageoptimierung Kostenabschätzung

Anfrageoptimierung Kostenabschätzung Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Kostenabschätzung Dr. Thomas Gottron Wintersemester 2012/13 Regel vs. Kostenbasierte Optimierung Bisher: Regeln, wie Optimierung

Mehr

Anfrageoptimierung Kostenmodelle

Anfrageoptimierung Kostenmodelle Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Anfrageoptimierung Kostenmodelle Dr. Jérôme Kunegis Wintersemester 2013/14 Regel vs. Kostenbasierte Optimierung

Mehr

Anfrageoptimierung Logische Optimierung

Anfrageoptimierung Logische Optimierung 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

Mehr

Architektur eines DBMS Logische Optimierung

Architektur eines DBMS Logische Optimierung Vorlesung Datenbanksysteme vom 16.11.2015 Anfragebearbeitung 1 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Architektur eines DBMS SW-Komponenten der Anfragebearbeitung

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung. 27.6.2011 Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung. 27.6.2011 Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 27.6.2011 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis Anfragebearbeitung Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis Übersetzung SQL ist deklarativ, Übersetzung für Laufzeitsystem in etwas prozedurales DBMS übersetzt SQL in eine interne Darstellung

Mehr

Kostenmodelle und Tuning. Anfragebearbeitung 3. Kostenmodelle. Kostenbasierte Optimierung. VL Datenbanksysteme

Kostenmodelle und Tuning. Anfragebearbeitung 3. Kostenmodelle. Kostenbasierte Optimierung. VL Datenbanksysteme Kostenmodelle und Tuning Anfragebearbeitung 3 VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Grundidee

Mehr

Kapitel 10: Relationale Anfragebearbeitung

Kapitel 10: Relationale Anfragebearbeitung Ludwig Maimilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 201/2016 Kapitel 10: Relationale Anfragebearbeitung Vorlesung:

Mehr

Kapitel 10: Relationale Anfragebearbeitung

Kapitel 10: Relationale Anfragebearbeitung Ludwig Maimilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Datenbanksysteme I Wintersemester 2017/2018 Kapitel 10: Relationale Anfragebearbeitung

Mehr

Indexstrukturen in SQL

Indexstrukturen in SQL Indestrukturen in SQL Anlegen eines Primärinde in SQL: Anlegen eines Sekundärinde in SQL: Bsp: create table Dozenten ( DNr integer primary key, Name varchar(0), Geburt date, ) create [Unique] inde indename

Mehr

6. Anfragebearbeitung

6. Anfragebearbeitung 6. Anfragebearbeitung 6.1 Einleitung 6.2 Indexstrukturen 6.3 Grundlagen der Anfrageoptimierung 6.4 Logische Anfrageoptimierung 6.5 Kostenmodellbasierte Anfrageoptimierung 55 Fokus: Effiziente Berecnung

Mehr

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN Joins 1 Literatur IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN A. Kemper, A. Eickler: Datenbanksysteme Eine Einführung, 8. Auflage Oldenburg Verlag, 2011, ISBN 978-3-486-59834-6 (als E-Book mit dem Übungsbuch

Mehr

Anfragebearbeitung. Ablauf der Anfrageoptimierung. Kanonische Übersetzung. Kanonische Übersetzung. Deklarative Anfrage (SQL)

Anfragebearbeitung. Ablauf der Anfrageoptimierung. Kanonische Übersetzung. Kanonische Übersetzung. Deklarative Anfrage (SQL) Anfragebearbeitung Ablauf der Anfrageotimierung Deklaratie Anfrage (SQL) Logice Otimierung ( Pyice Otimierung Kotenmodelle Tuning ) Scanner Parer Sictenauflöung Algebraicer Audruck Anfrage- Otimierer Auwertung-

Mehr

[W, T4, D, 15] [start_transaction, T3] [W, T3, C, 30] [W, T4, A, 20] [commit, T4] [W, T2, D, 25] System Crash

[W, T4, D, 15] [start_transaction, T3] [W, T3, C, 30] [W, T4, A, 20] [commit, T4] [W, T2, D, 25] System Crash Übungen Aufgabe 1 Geben ist die folgende Logdatei: [start_transaction, T1] [W, T1, D, 20] [commit, T1] [checkpoint] [start_transaction, T2] [W, T2, B, 12] [start_transaction, T4] [W, T4, D, 15] [start_transaction,

Mehr

Datenbanken 2. Anfragebearbeitung. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg. Version 1.

Datenbanken 2. Anfragebearbeitung. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg. Version 1. Datenbanken 2 Anfragebearbeitung Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Version 1. Juni 2017 Wintersemester 2017/18 Augsten (Univ. Salzburg) DB2 Anfragebearbeitung

Mehr

Anfragebearbeitung 3

Anfragebearbeitung 3 Anfragebearbeitung 3 VL Datenbanksysteme, WS 2014/5 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Kostenmodelle und

Mehr

Inhalt. Datenbanken Vertiefung. Literatur und Quellen. Inhalt. Anfragebearbeitung. Nikolaus Augsten. Wintersemester 2013/14

Inhalt. Datenbanken Vertiefung. Literatur und Quellen. Inhalt. Anfragebearbeitung. Nikolaus Augsten. Wintersemester 2013/14 Inhalt Datenbanken Vertiefung Anfragebearbeitung Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg 1 Einführung 2 Anfragekosten anschätzen 3 4 Wintersemester 2013/14

Mehr

Inhalt. Datenbanken 2. Literatur und Quellen. Inhalt. Anfrageoptimierung. Nikolaus Augsten. Wintersemester 2014/15

Inhalt. Datenbanken 2. Literatur und Quellen. Inhalt. Anfrageoptimierung. Nikolaus Augsten. Wintersemester 2014/15 Inhalt Datenbanken 2 Anfrageoptimierung 1 Nikolaus Augsten 2 nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2014/15 3 4 Augsten (Univ. Salzburg) DB2 Anfrageoptimierung

Mehr

Inhalt. Datenbanken 2. Literatur und Quellen. Inhalt. Anfragebearbeitung. Nikolaus Augsten. Wintersemester 2017/18

Inhalt. Datenbanken 2. Literatur und Quellen. Inhalt. Anfragebearbeitung. Nikolaus Augsten. Wintersemester 2017/18 Inhalt Datenbanken 2 Anfragebearbeitung 1 Einführung Nikolaus Augsten 2 Anfragekosten anschätzen nikolausaugsten@sbgacat FB Computerwissenschaften Universität Salzburg Version 1 Juni 2017 Wintersemester

Mehr

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov. 2007 Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Aufgabe 1: SQL-Queries Datenbanksysteme I a) Geben Sie

Mehr

Diskussion: Personal (1)

Diskussion: Personal (1) Diskussion: Personal (1) ER-Diagramm: Abteilung ist beschäftigt in [0, n] [0, 1] Person Umsetzung ins Relationenmodell? Diskussion: Personal (2) Zusätzliche Regel: In jeder Abteilung (Person) muss mindestens

Mehr

Fortsetzung: Projektion Selektion. NULL Werte

Fortsetzung: Projektion Selektion. NULL Werte Fortsetzung: Anfragen mit SQL Bisher: Projektion Selektion Duplikatbehandlung NULL Werte Professoren PersNr Name Rang Raum 2125 Sokrates 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134

Mehr

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520 Kapitel 7 Anfragebearbeitung 285 / 520 Übersicht Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis 286 / 520 Übersetzung Übersetzung SQL ist deklarativ, irgendwann muß Anfrage aber für Laufzeitsystem

Mehr

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017) Übung 4 Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017) Dennis Fischer dennis.fischer@tum.de http://home.in.tum.de/~fischerd/ Technische Universität München Fakultät für Informatik

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2) Vorlesung #4 SQL (Teil 2) Fahrplan Eine weitere Aggregation: median Geschachtelte Anfragen in SQL Korrelierte vs. Unkorrelierte Anfragen Entschachtelung der Anfragen Operationen der Mengenlehre Spezielle

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

Mehr

Datenbanken Vertiefung

Datenbanken Vertiefung Datenbanken Vertiefung Anfrageoptimierung Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Augsten (Univ. Salzburg) DBV / Anfrageoptimierung

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 30.5.2016 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Datentypen character (n),

Mehr

Aufgabe 1: Verschachtelte Anfragen

Aufgabe 1: Verschachtelte Anfragen Aufgabe 1: Verschachtelte Anfragen (1 P.) (a) Betrachten Sie folgenden Ausschnitt des TPC-H Schemas: CREATE TABLE partsupp ( ps_ availqty INT, ps_ partkey INT ); CREATE TABLE lineitem ( l_ partkey INT,

Mehr

Datenbanken Vertiefung Wintersemester 2013/ Matrikelnummer: Hinweise. Unterschrift

Datenbanken Vertiefung Wintersemester 2013/ Matrikelnummer: Hinweise. Unterschrift Fachbereich für Computerwissenschaften Prof. Dr. Nikolaus Augsten Jakob-Haringer-Str. 2 5020 Salzburg, Austria Telefon: +43 662 8044 6347 E-Mail: nikolaus.augsten@sbg.ac.at Datenbanken Vertiefung Prüfung

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof Alfons Kemper, PhD Blatt Nr 2 Übung zur Vorlesung Grundlagen: Datenbanken im WS5/6 Harald Lang, Linnea Passing (gdb@intumde) http://www-dbintumde/teaching/ws56/grundlagen/

Mehr

9 Auswertung von Anfrageoperatoren 9.1 Selektion

9 Auswertung von Anfrageoperatoren 9.1 Selektion 9. Auswertung von Anfrageoperatoren 9.1. Selektion Seite 1 9 Auswertung von Anfrageoperatoren 9.1 Selektion Auswertung von σ[a op val]r. Index zu A, Sortierung zu A, Operator op. Auswertung von Formeln

Mehr

Anfrageverarbeitung. Einführung

Anfrageverarbeitung. Einführung Anfrageverarbeitung Prof. Dr. T. Kudraß 1 Einführung Wir betrachten die Implementierung der Operatoren der Relationenalgebra: Basis-Operationen: Selektion ( σ ) Auswahl einer Teilmenge von Tupeln aus der

Mehr

Wiederholung: Relationale Algebra

Wiederholung: Relationale Algebra Vorlesung Datenbanksysteme vom 7.10.01 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D 1, D,,

Mehr

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN Joins 1 IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN Literatur Priti Mishara, Maragaret H. Eich, Join Processing in Relational Databases, ACM Computing Surveys, Vol. 24, No. 1, March 1992 Goetz Graefe,

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

Vorlesung Datenbanksysteme vom

Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 27.10.2008 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D 1,

Mehr

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II Star Join & Kostenbasierte Optimierung Architektur von Datenbanksystemen II Star Join Übungsaufgabe zum 09.06.2015 JOIN-ALGORITHMUS für folgendes Scenario Große Faktentabelle F mit sehr vielen Einträgen

Mehr

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung Rückblick SQL bietet viele Möglichkeiten zur Anfrageformulierung mathematische Funktionen (z.b. ABS(A) und SIGN(A)) Aggregatfunktionen (z.b. MIN(A) und SUM(A)) Boole sche Operatoren (AND, OR, EXCEPT) Verknüpfungen

Mehr

Wintersemester 2016/ Matrikelnummer: Hinweise. Unterschrift

Wintersemester 2016/ Matrikelnummer: Hinweise. Unterschrift Fachbereich für Computerwissenschaften Prof. Dr. Nikolaus Augsten Jakob-Haringer-Str. 2 5020 Salzburg, Austria Telefon: +43 662 8044 6347 E-Mail: nikolaus.augsten@sbg.ac.at Datenbanken II Prüfung Wintersemester

Mehr

Entity Relationship Modell

Entity Relationship Modell Entity Relationship Modell 2 Entity/Relationship (ER) Modell Legi Name Semester Entity = Gegenstandstyp Relationship = Beziehungstyp Schlüssel (Identifikation) Studenten hören Hörer Kurs Vorlesungen Attribut

Mehr

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien Kapitel 5 Dr. Jérôme Kunegis SQL: Grundlagen WeST Institut für Web Science & Technologien Lernziele Kenntnis der Grundkonzepte von SQL Fähigkeit zur praktischen Anwendung von einfachen SQL-Anweisungen

Mehr

Joins / Implementierung von Joins

Joins / Implementierung von Joins Join wichtigste Operation, insbesondere in relationalen DBS: komplexe Benutzeranfragen (Star-Joins) Normalisierung der Relationen (Snowflake-Schema) verschiedene Sichten ( views ) auf die Basisrelationen

Mehr

Grundlagen: Datenbanken

Grundlagen: Datenbanken Grundlagen: Datenbanken 3. Zentralübung / Fragestunde Linnea Passing Harald Lang gdb@in.tum.de Diese Folien finden Sie online. Die Mitschrift stellen wir im Anschluss online. Agenda Hinweise zur Klausur

Mehr

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung Logische Optimierung Höhere, nichtprozedurale Abfragesprachen (SQL, QBE,...) verlangen keine Kenntnisse des Benutzers über die Implementierung, müssen aber in prozedurale Form (z. B. Relationenalgebra)

Mehr

DATENBANKSYSTEME: SQL

DATENBANKSYSTEME: SQL Datendefinitions-, Manipulations- und Anfrage-Sprache SQL, Datendefinition, Veränderung am Datenbestand, Einfache SQL Abfrage, Anfragen über mehrere Relationen, Mengenfunktionen, Aggregatfunktion und Gruppierung,

Mehr

Datenbanken Vertiefung Wintersemester 2014/ Matrikelnummer: Hinweise. Unterschrift

Datenbanken Vertiefung Wintersemester 2014/ Matrikelnummer: Hinweise. Unterschrift Fachbereich für Computerwissenschaften Prof. Dr. Nikolaus Augsten Jakob-Haringer-Str. 2 5020 Salzburg, Austria Telefon: +43 662 8044 6347 E-Mail: nikolaus.augsten@sbg.ac.at Datenbanken II Prüfung Datenbanken

Mehr

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück Datenbanksysteme 2015 noch Kapitel 7: SQL Vorlesung vom 12.05.2015 Oliver Vornberger Institut für Informatik Universität Osnabrück SQL: Schlüsselworte select from where order by asc desc as like upper

Mehr

Anfragebearbeitung und Optimierung

Anfragebearbeitung und Optimierung In diesem Kapitel geht es darum, wie ein DBMS eine SQL-Anfrage verarbeitet. Also: 1. Schritte der Anfragebearbeitung 2. Parsen und Validieren 3. Optimieren und Erstellen des Zugriffsplans Schritte der

Mehr

Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank

Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank 8. Datenbanktuning Motivation Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank Beliebige SQL-Anfragen können auf den Daten ausgewertet

Mehr

Rückblick: Relationale Normalisierung

Rückblick: Relationale Normalisierung Rückblick: Relationale Normalisierung Gute Relationenschema vermeiden Redundanz und führen nicht zu Anomalien beim Einfügen, Löschen oder Ändern Relationale Normalformen (1NF, 2NF, 3NF, BCNF, 4NF) charakterisieren

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

Rückblick: Relationales Modell

Rückblick: Relationales Modell Rückblick: Relationales Modell Relationales Modell als vorherrschendes Datenmodell Relationen (Tabellen) besitzen Attribute (Spalten) mit Wertebereichen und beinhalten Tupel (Zeilen) Umsetzung eines konzeptuellen

Mehr

6. Formaler Datenbankentwurf 6.1. Definitionen

6. Formaler Datenbankentwurf 6.1. Definitionen 6. Formaler Datenbankentwurf 6.1. Definitionen Minimale Überdeckung Eine Menge funktionaler Abhängigkeiten F min ist eine minimale Überdeckung zu F, wenn wir sie durch Anwendung der folgenden Schritte

Mehr

Übung Datenbanksysteme II Anfrageausführung

Übung Datenbanksysteme II Anfrageausführung Übung Datenbanksysteme II Anfrageausführung Leon Bornemann Folien basierend auf Maximilian Jenders, Thorsten Papenbrock Einleitung: Themen 2 Iterator-Operatoren Algorithmen-Klassen Sort-basierte Hash-basierte

Mehr

Das Relationale Modell

Das Relationale Modell Kapitel 3 Das Relationale Modell 1 / 50 Generelle Anmerkungen Wurde in den Siebzigern von E.F.Codd entwickelt (er bekam den Turing Award dafür) Im Moment das am weitesten verbreitete Datenmodell Hat die

Mehr

Wiederholung: Relationale Algebra

Wiederholung: Relationale Algebra Vorlesung Datenbanksysteme vom 1.11.016 Wiederholung: Relationale Algebra Relationale Algebra Join-Operatoren Eigenschaften der relationalen Operatoren Grundlagen des relationalen Modells Seien D1, D,,

Mehr

7.3 Baum-Indexstrukturen

7.3 Baum-Indexstrukturen 7. Physischer Datenbankentwurf 7.3. Baum-Indexstrukturen Seite 1 7.3 Baum-Indexstrukturen B-Baum der Ordnung (m, l); m > 2, l > 1. Die Wurzel ist entweder ein Blatt oder hat mindestens zwei direkte Nachfolger.

Mehr

Übungsblatt 8 Lösungsvorschläge

Übungsblatt 8 Lösungsvorschläge Prof. Dr. T. Härder Fachbereich Informatik Arbeitsgruppe Datenbanken und Informationssysteme Universität Kaiserslautern Übungsblatt 8 Lösungsvorschläge für die freiwillige Übung Unterlagen zur Vorlesung:

Mehr

Relationale Algebra. Relationale Algebra. Grenzen der Ausdrucksstärke konjunktiver Anfragen. Vereinigung und Differenz.

Relationale Algebra. Relationale Algebra. Grenzen der Ausdrucksstärke konjunktiver Anfragen. Vereinigung und Differenz. 4.1 4.2 4.1 4.2 NICOLE SCHWEIKARDT, ISOLDE ADLER GOETHE-UNIVERSITÄT FRANKFURT VORLESUNG LOGIK UND DATENBANKEN KAPITEL 4, SEITE 1 Grenzen der Ausdrucksstärke konjunktiver Anfragen Wir haben gesehen: konjunktive

Mehr

Relationale Algebra. Relationale Algebra. Grenzen der Ausdrucksstärke konjunktiver Anfragen. Vereinigung und Differenz.

Relationale Algebra. Relationale Algebra. Grenzen der Ausdrucksstärke konjunktiver Anfragen. Vereinigung und Differenz. 3.1 3.2 3.1 3.2 NICOLE SCHWEIKARDT GOETHE-UNIVERSITÄT FRANKFURT VORLESUNG LOGIK UND DATENBANKEN KAPITEL 3, SEITE 1 NICOLE SCHWEIKARDT GOETHE-UNIVERSITÄT FRANKFURT VORLESUNG LOGIK UND DATENBANKEN KAPITEL

Mehr

Anfrageverarbeitung und Kostenmodelle

Anfrageverarbeitung und Kostenmodelle Anfrageverarbeitung und Kostenmodelle Warum ist es wichtig? Ziel der Anfrageverarbeitung (query processing): eine Anfrage möglichst effizient auszuführen Eine effiziente Anfrageauswertung hängt davon ab,

Mehr

Aufgabe 9.1: Lösung: Block-Nested-Loop-Verbund Index-Nested-Loop-Verbund Sort-Merge-Verbund Hash-Verbund

Aufgabe 9.1: Lösung: Block-Nested-Loop-Verbund Index-Nested-Loop-Verbund Sort-Merge-Verbund Hash-Verbund 1 Aufgabe 9.1: Sei p die Größe einer Seite, hier p = 4 kb. Sei b die Größe eines Blocks in Anzahl Seiten, hier b = 100. Die Größe des Datenbankpuffers, d.h. die zur Ausführung des Verbundes im Internspeicher

Mehr

(4 Punkte) Aufgabe 1: Relationenalgebra - Relationenkalkül

(4 Punkte) Aufgabe 1: Relationenalgebra - Relationenkalkül Musterlösunq zur Klausur 1665 Datenbanksvsteme 19.03.2005 Aufgabe 1: Relationenalgebra - Relationenkalkül (4 Punkte) In der Relationenalgebra werden die gewünschten Relationen durch Angabe einer Folge

Mehr

Es wird empfohlen folgendes Material anzusehen:

Es wird empfohlen folgendes Material anzusehen: Übung zur Vorlesung "Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW)" IN8003, SS 2011 Prof. Dr. J. Schlichter Dr. Georg Groh, Dipl.Inform. Dipl.Geogr. Jan Herrmann, Florian Schulze

Mehr

w 1 (A) T 1 w 3 (B) w 1 (D) b 3 flush(p D ) flush(p B ) flush(p B )

w 1 (A) T 1 w 3 (B) w 1 (D) b 3 flush(p D ) flush(p B ) flush(p B ) Aufgabe 1 Logging (8+5 Punkte) Logging und Recovery Gegeben sei ein DBMS, das die parallel laufenden Transaktionen T 1, T 2 und T 3 verwaltet. Dabei ändert T 1 die Datenelemente A, B, C und D, T 2 die

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

Query Languages (QL) Relationale Abfragesprachen/Relational

Query Languages (QL) Relationale Abfragesprachen/Relational Relationale Algebra Relationale Abfragesprachen/Relational Query Languages (QL) Abfragesprachen: Daten aus einer Datenbank zu manipulieren und abzufragen (retrieve information) Das relationalle Modell

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 05 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing (gdb@in.tum.de

Mehr

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14 Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken SQL Teil 2 Dr. Jérôme Kunegis Wintersemester 2013/14 Bereichsanfragen und Mitgliedschaft in der Menge Anfrage:

Mehr

Aufgabe 1 Indexstrukturen

Aufgabe 1 Indexstrukturen 8. Übung zur Vorlesung Datenbanken im Sommersemester 2006 mit Musterlösungen Prof. Dr. Gerd Stumme, Dr. Andreas Hotho, Dipl.-Inform. Christoph Schmitz 25. Juni 2006 Aufgabe 1 Indexstrukturen Zeichnen Sie

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Data Cubes PG Wissensmangement Seminarphase

Data Cubes PG Wissensmangement Seminarphase PG 402 - Wissensmangement Seminarphase 23.10.2001-25.10.2001 Hanna Köpcke Lehrstuhl für Künstliche Intelligenz Universität Dortmund Übersicht 1. Einführung 2. Aggregation in SQL, GROUP BY 3. Probleme mit

Mehr

sort hash uncompress merge & mark hash collisions

sort hash uncompress merge & mark hash collisions Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS hash sort... compress uncompress merge & mark hash collisions 1 KIT Julian Universität Arz, des Timo LandesBingmann,

Mehr

Performance in der Oracle Datenbank von Anfang an

Performance in der Oracle Datenbank von Anfang an Performance in der Oracle Datenbank von Anfang an Marco Mischke, 26.04.2018 DOAG Regional Agenda Tabellen Indizes Ausführungspläne SQL vs PL/SQL Tabellen Zu 99% werden Standard Strukturen zur Speicherung

Mehr

Rückblick: Datenorganisation & Indexstrukturen

Rückblick: Datenorganisation & Indexstrukturen Rückblick: Datenorganisation & Indexstrukturen Datenorganisation der Tupel einer Relation als Haufen, sequenzielle Datei oder indexsequenzielle Datei Indexstrukturen zum effizienteren Zugriff auf Datensätze

Mehr