Vorlesung #9 Anfragebearbeitung

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 8 Anfragebearbeitung
Advertisements

Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning.
Kapitel 8 Anfragebearbeitung
Grundlagen Datenbanken
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Inner Joins.
Übung Datenbanksysteme SQL-Anfragen (2)
Einführung Dateisystem <-> Datenbanksystem
Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 10 Kapitel 10 Anfragebearbeitung.
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #4 Anfragebearbeitung (Teil 2)
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
SS 2010 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #2 Datenbankentwurf.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #3 Relationale Anfragesprachen.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 SQL (Teil 1).
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2013/14 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #10 Physische Datenorganisation
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Vorlesung #2 Physische Datenorganisation
Structured Query Language
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Vorlesung #5 SQL (Teil 2).
Algebraische Optimierung (1)
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Vorlesung Datenbanksysteme vom : Wiederholung Anfragebearbeitung  Logische Optimierung.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Vorlesung Datenbanksysteme vom Anfragebearbeitung 2  Architektur eines DBMS  Logische Optimierung  Physische Optimierung  Kostenmodelle.
Kapitel 8 Anfragebearbeitung  Logische Optimierung  Physische Optimierung  Kostenmodelle  „Tuning“
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
WS 2015/16 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 8: Die relationale.
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #10 Physische Datenorganisation
Vorlesung #5 SQL (Teil 2).
Vorlesung #9 Anfragebearbeitung
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
Einschub Normalisierung-Denormalisierung
Vorlesung #8 Physische Datenorganisation
Vorlesung #5 Überführung (Fortsetzung) / Normalformen
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #2 Datenbankentwurf
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
Präsentation von Darleen und Michèle
Oracle Statistiken im HORIZON-Umfeld
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

Vorlesung #9 Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung „Fahrplan“ Logische Optimierung (prüfungsrelevant !!!) Äquivalenzen in der relationalen Algebra Anwendung von Transformationsregeln Fazit und Ausblick Vorlesung #10 © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung SQL Abfrage + F10 © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung Wegen Datentunabhängigkeit werden Anfragen in SQL auf sehr allgemein auf dem logischen Schema formuliert Nun muss es eine Komponente in DBMS geben, die die Grenze zwischen der logischen und der physischen Ebene definiert und überbrückt  Anfrageoptimierung Anfrageoptimierung wandelt eine abstrakte Abfrage in eine möglichst effiziente Implementierung – den Auswertungsplan – der dann kompiliert oder über einen Interpreter direkt gestartet wird ... Kemper 8.2 © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung Logische Optimierung Sehr prüfungsrelevant !!! Eine SQL Abfrage wird in einen Ausdruck der relationalen Algebra umgewandelt Mit Hilfe von Transformationsregeln wird dieser Ausdruck in einen äquivalenten optimierten Ausdruck umgeformt und dann an die physische Optimierung weitergereicht Zur besseren Veranschaulichung werden relational algebraische Ausdrücke als Auswertungsbäume dargestellt ... Kemper 8.3- 8.27 © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Kanonische Übersetzung A1, ..., An P  select A1, ..., An from R1, ..., Rk where P Rk   R3 R1 R2 © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Kanonische Übersetzung select Titel from Professoren, Vorlesungen where Name = ´Popper´ and PersNr = gelesenVon Titel Name = ´Popper´ and PersNr=gelesenVon  Vorlesungen Professoren Titel (Name = ´Popper´ and PersNr=gelesenVon (Professoren  Vorlesungen))

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))

Vorlesung #9 - Anfragebearbeitung 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“ © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Äquivalenzerhaltende Transformationsregeln 1. Aufbrechen von Konjunktionen im Selektionsprädikat c1c2 ... cn (R )  c1(c2 (…(cn(R )) …)) 2.  ist kommutativ c1(c2 ((R ))  c2 (c1((R )) 3.  -Kaskaden: Falls L1  L2  …  Ln, dann gilt L1( L2 (…( Ln(R )) …))  L1 (R ) 4. Vertauschen von  und  Falls die Selektion sich nur auf die Attribute A1, …, An der Projektionsliste bezieht, können die beiden Operationen vertauscht werden A1, …, An (c(R ))  c (A1, …, An(R )) 5. , ,  und A sind kommutativ R Ac S  S Ac R © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Ä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 Aj S)  c(R) Aj S Falls das Selektionsprädikat c eine Konjunktion der Form „c1  c2“ ist und c1 sich nur auf Attribute aus R und c2 sich nur auf Attribute aus S bezieht, gilt folgende Äquivalenz:  c1  c2(R A j S)  c1(R) A j (c2 (S)) © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Äquivalenzerhaltende Transformationsregeln 7. Vertauschung von  mit A Die Projektionsliste L sei: L = {A1,…,An, B1,…,Bm}, wobei Ai Attribute aus R und Bi Attribute aus S seien. Falls sich das Joinprädikat c nur auf Attribute aus L bezieht, gilt folgende Umformung: L (R A c S)  (A1, …, An (R)) A c (B1, …, Bn (S)) Falls das Joinprädikat sich auf weitere Attribute, sagen wir A1', …, Ap', aus R und B1', …, Bq' 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 (A1, …, An, A1‘, …, An ‘ (R) A c B1, …, Bn, B1‘, …, Bn ‘ (R)) Für die -Operation gibt es kein Prädikat, so dass die Einschränkung entfällt. © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Ä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)) © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Äquivalenzerhaltende Transformationsregeln 11. Die Join- und/oder Selektionsprädikate können mittels de Morgan's Regeln umgeformt werden:  (c1  c2)  (c1)  (c2)  (c1  c2)  (c1)  (c2) 12. 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 Ac S © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Heuristische Anwendung der Transformationsregeln 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 -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). © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Anwendung der Transformationsregeln s.Semester 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 p.Name = ´Sokrates´ and ...  p   v s h © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Aufspalten der Selektionsprädikate s.Semester s.Semester p.PersNr=v.gelesenVon p.Name = ´Sokrates´ and ... v.VorlNr=h.VorlNr  s.MatrNr=h.MatrNr p.Name = ´Sokrates´ p     v p  s h v © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung s h

Verschieben der Selektionsprädikate „Pushing Selections“ s.Semester s.Semester p.PersNr=v.gelesenVon p.PersNr=v.gelesenVon v.VorlNr=h.VorlNr s.MatrNr=h.MatrNr  p.Name = ´Sokrates´ v.VorlNr=h.VorlNr   p.Name = `Sokrates`  s.MatrNr=h.MatrNr p p v   v © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung s h s h

Zusammenfassung von Selektionen und Kreuzprodukten zu Joins s.Semester s.Semester p.PersNr=v.gelesenVon Ap.PersNr=v.gelesenVon  v.VorlNr=h.VorlNr p.Name = ´Sokrates´ Av.VorlNr=h.VorlNr  s.MatrNr=h.MatrNr p.Name = ´Sokrates´ p v  As.MatrNr=h.MatrNr p v s h s h © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung Optimierung der Joinreihenfolge Kommutativität und Assoziativität ausnutzen s.Semester s.Semester As.MatrNr=h.MatrNr Ap.PersNr=v.gelesenVon Av.VorlNr=h.VorlNr s Av.VorlNr=h.VorlNr p.Name = ´Sokrates´ Ap.PersNr=v.gelesenVon As.MatrNr=h.MatrNr p h v p.Name = ´Sokrates´ s h v © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung p

Vorlesung #9 - Anfragebearbeitung Was hat´s gebracht? s.Semester s.Semester 4 4 As.MatrNr=h.MatrNr Ap.PersNr=v.gelesenVon 4 13 Av.VorlNr=h.VorlNr s Av.VorlNr=h.VorlNr 3 p.Name = ´Sokrates´ 13 Ap.PersNr=v.gelesenVon As.MatrNr=h.MatrNr p 1 h v p.Name = ´Sokrates´ s h v © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung p

Einfügen von Projektionen s.Semester s.Semester As.MatrNr=h.MatrNr As.MatrNr=h.MatrNr h.MatrNr s Av.VorlNr=h.VorlNr s Av.VorlNr=h.VorlNr Ap.PersNr=v.gelesenVon Ap.PersNr=v.gelesenVon h h p.Name = ´Sokrates´ p.Name = ´Sokrates´ v v © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung p p

Anfragebearbeitung (2) Nach der Syntax- und der semantischen Analyse wird die Anfrage in einen Ausdruck der relationalen Algebra umgewandelt Anfrageoptimierer (Optimizer) erzeugt eine Vielzahl von logisch äquivalenten Auswertungsplänen, die in Ihrer Ausführungsdauer (Kosten) unterschiedlich sind. (Kosten = mit Hilfe eines Kostenmodells geschätzte Ausführungsdauer). Auf Basis von „Kostenvoranschlägen“ wird der optimalen Plan ausgewählt. Kostenmodelle basieren auf Schemainformationen und Statistiken über Relationen, Indexstrukturen und Verteilung der Attributwerte (Histogramme) © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Logische Optimierung (Fazit) 12 äquivalenzerhaltende Transformationsregeln der relationalen Algebra und deren Anwendung Grundidee: die Regeln so anwenden, dass die Ausgaben der einzelnen Operatoren möglichst klein sind! 6 Heuristiken Aufbrechen von Selektionen Selektionen nach unten schieben Selektionen + Kreuzprodukte  Joins Joins nach möglichst kleinen Zwischenergebnisse Einfügen von Projektionen Projektionen nach unten schieben © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Logische Optimierung (Fazit) 12 äquivalenzerhaltende Transformationsregeln der relationalen Algebra und deren Anwendung Grundidee: die Regeln so anwenden, dass die Ausgaben der einzelnen Operatoren möglichst klein sind! 6 Heuristiken Aufbrechen von Selektionen Selektionen nach unten schieben Selektionen + Kreuzprodukte  Joins Joins nach möglichst kleinen Zwischenergebnisse Einfügen von Projektionen Projektionen nach unten schieben © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Physische Optimierung Für einen logischen Algebraoperatoren kann es mehrere unterschiedliche Realisierungen d.h. physische Operatoren geben Indexe oder Vorsortierung spielen bei der Wahl der Realisierung eine wichtige Rolle Physische Operatoren werden als „Iteratoren“ dargestellt mit Operationen open, next, close, cost und size Keine Zwischenspeicherung der Ergebnisse notwendig, Pipelining möglich Kemper 8.27 – 8.127 © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 - Anfragebearbeitung Ausblick Physische Datenorganisation Speichermedien und Speicherhierarchien Hauptspeicher, Puffer-Verwaltung Index-Strukturen ISAM B-Bäume Hashing Clustering, Komprimierung, Partitionierung In-Memory Datenbanken spaltenbasierte vs. Zeilenbasierte Speicherung SQL (Standard vs. produktspezifisches SQL) © Bojan Milijaš, 01.12.2016 Vorlesung #9 - Anfragebearbeitung

Vorlesung #9 Ende