Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SS 2004B. König-Ries: KuD6-1 Kapitel 6: Anfragebearbeitung physische Datenstrukturen: B-Bäume Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe.

Ähnliche Präsentationen


Präsentation zum Thema: "SS 2004B. König-Ries: KuD6-1 Kapitel 6: Anfragebearbeitung physische Datenstrukturen: B-Bäume Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe."—  Präsentation transkript:

1 SS 2004B. König-Ries: KuD6-1 Kapitel 6: Anfragebearbeitung physische Datenstrukturen: B-Bäume Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe © Prof. Kemper, TU München (Begleitmaterial zu Kapitel 7 des Lehrbuchs)

2 SS 2004B. König-Ries: KuD6-2 Referenzarchitektur Externes Datenmodell Anfragebearbeitung Internes Datenmodell Satz- u. Satzmengenverwaltung Physische Datenstrukturen Zugriffsschicht Hauptspeicherseiten u. Segmente Dateien Dateiverwaltung Geräteschnittstelle Scheduler Recovery-Verwalter Segment- u. Pufferverwaltung

3 SS 2004B. König-Ries: KuD6-3 betrachtete Aspekte Externes Datenmodell Anfragebearbeitung Internes Datenmodell Satz- u. Satzmengenverwaltung Physische Datenstrukturen Zugriffsschicht Hauptspeicherseiten u. Segmente Dateien Dateiverwaltung Geräteschnittstelle Scheduler Recovery-Verwalter Segment- u. Pufferverwaltung

4 SS 2004B. König-Ries: KuD6-4 Kapitel 6: Anfragebearbeitung physische Datenstrukturen: B-Bäume Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe

5 SS 2004B. König-Ries: KuD6-5 Referenzarchitektur Externes Datenmodell Anfragebearbeitung Internes Datenmodell Satz- u. Satzmengenverwaltung Physische Datenstrukturen Zugriffsschicht Hauptspeicherseiten u. Segmente Dateien Dateiverwaltung Geräteschnittstelle Scheduler Recovery-Verwalter Segment- u. Pufferverwaltung

6 SS 2004B. König-Ries: KuD6-6 S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr)

7 SS 2004B. König-Ries: KuD6-7

8 SS 2004B. König-Ries: KuD6-8

9 SS 2004B. König-Ries: KuD6-9 Einfügen eines neuen Objekts (Datensatz) in einen B- Baum

10 SS 2004B. König-Ries: KuD6-10 Sukzessiver Aufbau eines B-Baums vom Grad k=

11 SS 2004B. König-Ries: KuD6-11 Sukzessiver Aufbau eines B-Baums vom Grad k=

12 SS 2004B. König-Ries: KuD6-12 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

13 SS 2004B. König-Ries: KuD6-13 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

14 SS 2004B. König-Ries: KuD6-14 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10

15 SS 2004B. König-Ries: KuD6-15 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10

16 SS 2004B. König-Ries: KuD6-16 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

17 SS 2004B. König-Ries: KuD6-17 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

18 SS 2004B. König-Ries: KuD6-18 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

19 SS 2004B. König-Ries: KuD6-19 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

20 SS 2004B. König-Ries: KuD6-20 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 2

21 SS 2004B. König-Ries: KuD6-21 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

22 SS 2004B. König-Ries: KuD6-22 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

23 SS 2004B. König-Ries: KuD6-23 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 4

24 SS 2004B. König-Ries: KuD6-24 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

25 SS 2004B. König-Ries: KuD6-25 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

26 SS 2004B. König-Ries: KuD6-26 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

27 SS 2004B. König-Ries: KuD6-27 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

28 SS 2004B. König-Ries: KuD6-28 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

29 SS 2004B. König-Ries: KuD6-29 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

30 SS 2004B. König-Ries: KuD6-30 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

31 SS 2004B. König-Ries: KuD6-31 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

32 SS 2004B. König-Ries: KuD6-32 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

33 SS 2004B. König-Ries: KuD6-33 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

34 SS 2004B. König-Ries: KuD6-34 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

35 SS 2004B. König-Ries: KuD6-35 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

36 SS 2004B. König-Ries: KuD6-36 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

37 SS 2004B. König-Ries: KuD6-37 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

38 SS 2004B. König-Ries: KuD6-38 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

39 SS 2004B. König-Ries: KuD6-39 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

40 SS 2004B. König-Ries: KuD6-40 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

41 SS 2004B. König-Ries: KuD6-41 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

42 SS 2004B. König-Ries: KuD6-42 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

43 SS 2004B. König-Ries: KuD6-43 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

44 SS 2004B. König-Ries: KuD6-44 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

45 SS 2004B. König-Ries: KuD6-45 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

46 SS 2004B. König-Ries: KuD6-46 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

47 SS 2004B. König-Ries: KuD6-47 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

48 SS 2004B. König-Ries: KuD6-48 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

49 SS 2004B. König-Ries: KuD6-49 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

50 SS 2004B. König-Ries: KuD6-50 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

51 SS 2004B. König-Ries: KuD6-51 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

52 SS 2004B. König-Ries: KuD6-52 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

53 SS 2004B. König-Ries: KuD6-53 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

54 SS 2004B. König-Ries: KuD6-54 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

55 SS 2004B. König-Ries: KuD6-55 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

56 SS 2004B. König-Ries: KuD6-56 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

57 SS 2004B. König-Ries: KuD6-57 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

58 SS 2004B. König-Ries: KuD6-58 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

59 SS 2004B. König-Ries: KuD6-59 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

60 SS 2004B. König-Ries: KuD6-60 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

61 SS 2004B. König-Ries: KuD6-61 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

62 SS 2004B. König-Ries: KuD6-62 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

63 SS 2004B. König-Ries: KuD6-63 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

64 SS 2004B. König-Ries: KuD6-64 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

65 SS 2004B. König-Ries: KuD6-65 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

66 SS 2004B. König-Ries: KuD6-66 eigentlich….. geht es jetzt noch weiter. Man kann in einen Baum nämlich nicht nur einfügen, sondern auch daraus löschen. Das ist aber nicht ganz einfach, lassen wir hier mal weg. Bei Interesse können Sie das Verfahren in jedem Datenbanklehrbuch (z.B. dem von Kemper/Eickler) nachlesen.

67 SS 2004B. König-Ries: KuD6-67 Verwendung eines B-Baums ?

68 SS 2004B. König-Ries: KuD6-68 Kapitel 6: Anfragebearbeitung physische Datenstrukturen Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe

69 SS 2004B. König-Ries: KuD6-69 Implementierung der relationalen Operatoren Relationale Operatoren können durch Satzmengenverwaltung nicht direkt ausgeführt werden, da diese nur navigierende Such- und Zugriffsoperationen für individuelle Kollektionen anbietet. Anfragebearbeitung muss deshalb geeignete Operator- Implementierung auswählen, die die Funktionalität des Operators möglichst effizient erbringt. Kritisch ist vor allem Implementierung der binären Operatoren (Verbindung, Vereinigung, Durchschnitt, Differenz), da potenziell quadratische Laufzeit.

70 SS 2004B. König-Ries: KuD6-70 Selektion (1) Sequenzielle Selektion Schleife über alle Tupel der Relation. Ergebnis-Satzmenge kann vollständige Datensätze oder nur Verweise (Satz-Identifikatoren) auf qualifizierende Ausgangs- Datensätze enthalten. Aufwand O(|R|), wobei R Eingaberelation. Bei vertikaler Fragmentierung und Einbezug mehrerer Attribute in die Selektionsbedingung sind ggf. zusätzliche Verbindungen mit entsprechend höherer Laufzeit erforderlich.

71 SS 2004B. König-Ries: KuD6-71 Selektion (2) Indexbasierte Selektion Bei einfacher Selektionsbedingung der Form Attribut i Konstante kann Direktzugriff erfolgen, sofern unterliegende Datenstruktur wertbasierten Zugriff über Attribut i unterstützt. Aufwand O(log|R|) + Anzahl der Ergebnistupel, bei Selektion auf Gleichheit und Einsatz einer Hashtabelle als Indexstruktur sogar O(|1|) + Anzahl der Ergebnistupel. Bei booleschen Kombinationen von Vergleichen getrennte Auswertung der einzelnen Vergleiche und anschließend Bildung des Durchschnitts bzw. der Vereinigung der Ergebnisse.

72 SS 2004B. König-Ries: KuD6-72 Projektion Sequenzieller Durchlauf, Aufwand O(|R|). Bei Duplikat-Elimination (select distinct) ist anschließender Sortierlauf und weiterer sequenzieller Durchlauf zur Duplikatentfernung notwendig, Aufwand in diesem Fall O(R log|R|).

73 SS 2004B. König-Ries: KuD6-73 Geschachtelte Verbindung (1) Geschachtelte Schleife, in der jeder Datensatz in Datei R (hier: BUCHUNG) mit jedem Datensatz in S (hier: FLUG) verglichen wird: Iterator bu = BUCHUNG.createIterator(); Tupel tb, tf; while bu.hasNext() { tb = bu.get(); bu.next(); Iterator fl = FLUG.createIterator(); while fl.hasNext() { tf = fl.get(); fl.next(); if tb.flugNr = tf.flugNr then ERG.insert(tb tf); }

74 SS 2004B. König-Ries: KuD6-74 Geschachtelte Verbindung (2) Aufwand: Zahl der Satzzugriffe: |R|+(|R| |S|) = |R| (1+|S|). Seien auf einer Seite n R bzw. n S Sätze untergebracht. Dann Zahl der Hintergrundspeicherzugriffe |R|/n R (1+|S|/n S ). R sollte daher die kleinere Relation sein. Erfordert gebündelte Satzspeicherung.

75 SS 2004B. König-Ries: KuD6-75 Geschachtelte Verbindung mit Direktzugriff Geschachtelte Schleife, in der für jeden Datensatz in R der oder die passenden Datensätze in S anhand eines Index aufgefunden werden: Iterator bu = BUCHUNG.createIterator(); Tupel tb, tf; while bu.hasNext() { tb = bu.get (); tf := FLUG.getKey(flugNr,tb.flugNr); if erfolgreich then ERG.insert(tb tf); bu.next(); }

76 SS 2004B. König-Ries: KuD6-76 Geschachtelte Verbindung mit Direktzugriff Aufwand: Unterliegende Datenstruktur für S muss wertbasierten Zugriff für die in die Verbindung eingehenden Attribute unterstützen. Aufwand O (|R|) (Hash) oder O(|R| log|S|) (B*-Baum). R (äußere Schleife) sollte daher die kleinere Relation sein. Hash-Join: Zwischenrelation nach einem Hashverfahren erstellen.

77 SS 2004B. König-Ries: KuD6-77 Abb. externes internes Datenmodell Wesentliche Abbildungsaufgaben: Abbildung von Relationen auf Satzmengen, Übersetzung von SQL-Anfragen in interne Operator-Ausdrücke. Anfrage-Übersetzung erledigt intern: Behandlung von Sichten (Definition wird in Anfrage eingearbeitet), Überwachung von Konsistenzbedingungen (ggf. zusätzliche Operatoraufrufe), Durchsetzung der Schutzmechanismen (Rechte-Überprüfung bei Übersetzung der Anfrage). Im Folgenden zunächst Betrachtung der Abbildung von Relationen auf Satzmengen.

78 SS 2004B. König-Ries: KuD6-78 Übersetzung von SQL-Anfragen (1) Grundsätzliches Problem: SQL ist deklarative Sprache und gibt keinen Algorithmus vor. Intern wird aber ausführbares Programm benötigt. Prinzipielles Vorgehen zur Umsetzung deklarativ imperativ: Definiere Algebra von Operatoren, die einzelne Algorithmen kapseln und als Basis-Bausteine eines imperativen Programms dienen. Imperative Programme sind dann Bäume solcher Operatoren. Ordne jeder Grammatikregel der deklarativen Sprache Übersetzungsregel zu, die besagt, wie äquivalenter Operatorbaum zu konstruieren ist. Optimiere aus Übersetzung resultierenden Operatorbaum durch Ausnutzung von Äquivalenz-Beziehungen, die in der Algebra gelten.

79 SS 2004B. König-Ries: KuD6-79 Übersetzung von SQL-Anfragen (2) Konkretes Vorgehen zur Übersetzung von SQL: Als Operator-Algebra dient (zunächst) die relationale Algebra. Da Grammatik von SQL ziemlich komplex ist, werden Ausdrücke zunächst standardisiert (in bestimmte Standardformen überführt). Für Standardformen erfolgt Übersetzung anhand von Syntaxbaum. Im folgenden einige Beispiele für einfache Umformungsregeln.

80 SS 2004B. König-Ries: KuD6-80 Grundmuster der SQL-Übersetzung Select-Ausdruck selectA 1, A 2,..., A n fromR 1, R 2,..., R m whereB wird überführt in: A 1, A 2,..., A n ( B (R 1 R 2... R m )). Probleme: B kann geschachtelte Anfragen enthalten. R i kann ein Tabellenausdruck sein, der von R 1,..., R i-1 abhängt. group by und having-Klauseln müssen berücksichtigt werden. A 1, A 2,..., A n können Aggregatfunktionen sein.

81 SS 2004B. König-Ries: KuD6-81 Grundmuster der SQL-Übersetzung Select-Ausdruck selectA 1, A 2,..., A n fromR 1, R 2,..., R m whereB wird überführt in: A 1, A 2,..., A n ( B (R 1 R 2... R m )). Probleme: B kann geschachtelte Anfragen enthalten. R i kann ein Tabellenausdruck sein, der von R 1,..., R i-1 abhängt. group by und having-Klauseln müssen berücksichtigt werden. A 1, A 2,..., A n können Aggregatfunktionen sein. ignorieren wir mal…

82 SS 2004B. König-Ries: KuD6-82 Einfache Anfragen (2) Einfache Anfragen können rekursiv in relationale Algebra übersetzt werden: Basistabellen werden durch Referenzen auf die entsprechenden internen Dateien ersetzt. Eine Folge einfacher Anfragen in einer from-Klausel wird in das Kartesische Produkt überführt. select-Ausdruck (evt. mit Gruppierung) wird in Kombination aus Selektions- und Projektionsoperator übersetzt, die auf die übersetzte from-Klausel angewendet werden. Gruppierung wird dabei als zusätzlicher Operator übersetzt, da in der relationalen Algebra nicht direkt abbildbar. Relationale Verknüpfung (union, intersect, except, join) einfacher Anfragen wird in entsprechende relationale Operatoren übersetzt.

83 SS 2004B. König-Ries: KuD6-83 Übersetzung einfacher Anfragen: Beispiel Beispiel: Interne Datei FRA_FLÜGE entspricht dem SQL-Ausdruck: selectflugNr, nach, abflugszeit, ankunftszeit, ticketNr, datum fromFLUG, BUCHUNG wherevon = "FRA" andFLUG.flugNr = BUCHUNG.flugNr; Die Anfrage ist bereits einfach und kann geradewegs in den algebraischen Ausdruck flugNr,nach,abflugszeit,ankunftszeit,ticketNr,datum ( von="FRA" BUCHUNG.flugNr =FLUG.flugNr (BUCHUNG FLUG) ) übersetzt werden.

84 SS 2004B. König-Ries: KuD6-84 Anfrageoptimierung (1) Konkretes Vorgehen nach der Übersetzung von SQL: Erhaltener Operatorbaum wird in algebraischer Optimierungsphase gemäß Regeln der relationalen Algebra optimiert. In anschließender nicht-algebraischer Optimierungsphase werden spezifische Operator-Implementierungen ausgewählt und weitere Operatoren wie z.B. Sortierung, Index-Generierung etc. eingefügt.

85 SS 2004B. König-Ries: KuD6-85 Algebraische Optimierung (1) Ziel: Transformation des Operatorbaums in äquivalenten Baum, der effizienter auszuführen ist. Anwendbare Gesetze der relationalen Algebra (Auszug): Verbindung ist kommutativ und assoziativ. Selektionen und Projektionen können zerlegt und zusammengefasst werden. Projektion kommutiert mit Selektion, Verbindung und Vereinigung, solange benötigte Attribute nicht herausprojiziert werden. Selektion kommutiert mit Verbindung, Vereinigung, Differenz und Gruppierung (solange die Selektionsbedingung sich nur auf die Gruppierungsattribute bezieht). Kartesisches Produkt gefolgt von Selektion ergibt -Verbindung.

86 SS 2004B. König-Ries: KuD6-86 Algebraische Optimierung (2) Problem bei der Optimierung: Ausführungskosten eines bestimmten Operatorbaums lassen sich nur schwer schätzen. Benötigt werden u.a. Informationen über: Größe der Ausgangstabellen, Größe der verbleibenden Tabellen nach Selektion oder Projektion, Treffer-Rate bei einer Verbindung, Ausführungskosten von Operationen (hängen stark von Algorithmus ab, der aber in dieser Optimierungsphase noch nicht betrachtet wird). Pragmatisches Vorgehen: Verwende Kochrezepte, die mit hoher Wahrscheinlichkeit die Größe der Zwischenergebnisse reduzieren.

87 SS 2004B. König-Ries: KuD6-87 Algebraische Optimierung (3) Faustformeln für sinnvolle Transformationen: Führe Selektionen so früh wie möglich durch. Spalte Selektionen, die auf Attribute mehrerer Relationen Bezug nehmen, in eine Folge von Selektionen auf, die jeweils nur auf Attribute einer Relation Bezug nehmen. (Dann lässt sich nämlich die erste Regel besser anwenden.) Fasse kartesische Produkte und Selektionen möglichst zu - Verbindungen zusammen. Führe Projektionen so früh wie möglich (aber nach eventuellen Selektionen) aus. Füge ggf. zusätzliche Projektionen ein, um nicht mehr benötigte Attribute so früh wie möglich zu entfernen.

88 SS 2004B. König-Ries: KuD6-88 Algebraische Optimierung: Beispiel FLUG flugNr,nach,abflugszeit, ankunftszeit,ticketNr,datum von = "FRA" FLUG.flugNr = BUCHUNG.flugNr BUCHUNG von = "FRA" flugNr, nach, abflugszeit, ankunftszeit FLUGBUCHUNG flugNr, ticketNr, datum

89 SS 2004B. König-Ries: KuD6-89 Nicht-algebraische Optimierung Aufgabe: Auswahl geeigneter Operator-Implementierungen sowie weitere Optimierung des Operatorbaums. Handlungsmöglichkeiten (Auswahl): Einfügen von Sortierläufen, um Mischverbindung zu ermöglichen, Erzeugen eines temporären Index, um Verbindung mit Direktzugriff zu ermöglichen, Änderung der Reihenfolge von komplexen Selektionsbedingungen, Änderung der Reihenfolge von Verbindungen, Wesentliches Entscheidungskriterium: Größe der erzeugten Zwischenergebnisse.

90 SS 2004B. König-Ries: KuD6-90 Nicht-algebraische Optimierung: Beispiel FLUG flugNr,nach,abflugszeit, ankunftszeit,ticketNr,datum von = "FRA" FLUG.flugNr = BUCHUNG.flugNr BUCHUNG von = "FRA" INDEX (BUCHUNG) INDEX (FLUG) flugNr,nach,abflugszeit, ankunftszeit,ticketNr,datum FLUGBUCHUNG

91 SS 2004B. König-Ries: KuD6-91 Nicht-algebraische Optimierung: Beispiel FLUG flugNr,nach,abflugszeit, ankunftszeit,ticketNr,datum von = "FRA" FLUG.flugNr = BUCHUNG.flugNr BUCHUNG von = "FRA" flugNr, nach, abflugszeit, ankunftszeit flugNr flugNr, ticketNr, datum FLUGBUCHUNG sort


Herunterladen ppt "SS 2004B. König-Ries: KuD6-1 Kapitel 6: Anfragebearbeitung physische Datenstrukturen: B-Bäume Anfragebearbeitung Folien: © Prof. Lockemann, IPD, Uni Karlsruhe."

Ähnliche Präsentationen


Google-Anzeigen