Vorlesung Datenbanksysteme vom 13.10.2004 Anfragebearbeitung  Logische Optimierung.

Slides:



Advertisements
Ähnliche Präsentationen
Deduktive Datenbanken
Advertisements

Kapitel 8 Anfragebearbeitung
Deduktive Datenbanken
Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning.
Kapitel 8 Anfragebearbeitung
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Inner Joins.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Ü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.
1 Gruppierung (1) Motivation: Bisher existierte nur die gesamte Relation als eine einzige Gruppe. Interessanter ist es, Aggregierungen über Teilmengen.
Die Grundterminologie
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 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
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 #5 Relationale Anfragesprachen.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
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)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Vorlesung Datenbanksysteme vom Physische Datenorganisation
Datenbanksysteme für hörer anderer Fachrichtungen
Agenda für heute, 19. Januar 2007 Informationssysteme: ETH-BibliothekInformationssysteme: ETH-Bibliothek Logische Verknüpfungen als Grundlage für die Informationsgewinnung.
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]
Agenda für heute, 13. Januar 2006
Structured Query Language
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
Vorlesung #5 SQL (Teil 2).
Wiederholung Der wichtigste Befehl zur Datenmanipulation lautet:
1 Differenzierte Verbindungsoperationen (1) Beobachtung: Einfach zu formulierende Verbindungen wie ein Natural Join sind nicht als solche dokumentiert.
Tupelkalkül: Notation (1)
Algebraische Optimierung (1)
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Vorlesung Datenbanksysteme vom : Wiederholung Anfragebearbeitung  Logische Optimierung.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Vorlesung Datenbanksysteme vom Anfragebearbeitung 2  Architektur eines DBMS  Logische Optimierung  Physische Optimierung  Kostenmodelle.
Kapitel 8 Anfragebearbeitung  Logische Optimierung  Physische Optimierung  Kostenmodelle  „Tuning“
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 6: Datenbanksysteme.
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)
Vorlesung #9 Anfragebearbeitung
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Vorlesung #9 Anfragebearbeitung
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
 Präsentation transkript:

Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung

2 Architektur eines DBMS DML-CompilerDDL-Compiler Abfrageoptimierung Datenbankmanager Schemaverwaltung Dateiverwaltung LogdateienIndexeDatenbasisData Dictionary Mehrbenutzersynchronisation Fehlerbehandlung Interactive AbfrageAPI/PräcompilerVerwaltungswerkzeug

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

4 Kanonische Übersetzung select A1,..., An from R1,..., Rk where P R1R2 R3 Rk    PP  A1,..., An

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

6 Erste Optimierungsidee select Titel from Professoren, Vorlesungen where Name = ´Popper´ and PersNr = gelesenVon Professoren Vorlesungen   PersNr=gelesenVon  Titel  Titel (  PersNr=gelesenVon ((  Name = ´Popper´ Professoren)  Vorlesungen))  Name = ´Popper´

7 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“ Optimierung von Datenbank- Anfragen

8 1. Aufbrechen von Konjunktionen im Selektionsprädikat  c 1  c 2 ...  c n (R )   c 1 (  c 2 (…(  c n (R )) …)) 2.  ist kommutativ  c 1 (  c 2 ((R ))   c 2 (  c 1 ((R )) 3.  -Kaskaden: Falls L 1  L 2  …  L n, dann gilt  L 1 (  L 2 (…(  L n (R )) …))   L 1 (R ) 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, …, A n (  c (R ))   c (  A 1, …, A n (R )) 5. , ,  und A sind kommutativ R A c S  S A c R Äquivalenzerhaltende Transformationsregeln

9 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 2 “ ist und c 1 sich nur auf Attribute aus R und c 2 sich nur auf Attribute aus S bezieht, gilt folgende Äquivalenz:  c (R A j S)   c (R) A j (  c 2 (S)) Äquivalenzerhaltende Transformationsregeln

10 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, …, A n (R)) A c (  B 1, …, B n (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, …, A n, A 1 ‘, …, A n ‘ (R) A c  B 1, …, B n, B 1 ‘, …, B n ‘ (R)) Für die  -Operation gibt es kein Prädikat, so dass die Einschränkung entfällt. Äquivalenzerhaltende Transformationsregeln

11 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)) Äquivalenzerhaltende Transformationsregeln

Die Join- und/oder Selektionsprädikate können mittels de Morgan's Regeln umgeformt werden:  (c 1  c 2 )  (  c 1 )  (  c 2 )  (c 1  c 2 )  (  c 1 )  (  c 2 ) 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 A c S Äquivalenzerhaltende Transformationsregeln

13 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). Heuristische Anwendung der Transformationsregeln

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 sh v p     p.Name = ´Sokrates´ and...  s.Semester

15 Aufspalten der Selektionsprädikate sh v p     p.Name = ´Sokrates´ and...  s.Semester sh v p     p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´  s.MatrNr=h.MatrNr  v.VorlNr=h.VorlNr

16 Verschieben der Selektionsprädikate „Pushing Selections“ sh v p     p.PersNr=v.gelesenVon  s.Semester  p.Name = `Sokrates`  s.MatrNr=h.MatrNr  v.VorlNr=h.VorlNr sh v p     p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´  s.MatrNr=h.MatrNr  v.VorlNr=h.VorlNr

17 Zusammenfassung von Selektionen und Kreuzprodukten zu Joins sh v p     p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´  s.MatrNr=h.MatrNr  v.VorlNr=h.VorlNr sh v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr

18 Optimierung der Joinreihenfolge Kommutativität und Assoziativität ausnutzen s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr sh v p A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr A s.MatrNr=h.MatrNr

19 Was hat´s gebracht? s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr sh v p A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr A s.MatrNr=h.MatrNr

20 Einfügen von Projektionen s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon  s.Semester  p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr  h.MatrNr

21 Eine weitere Beispieloptimierung

22

23

24

25

26

27