Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

UB-Bäume Vortrag von Georg Göttlich am 26.06.2001 Proseminar: Algorithmen und Datenstrukturen für Datenbanksysteme.

Ähnliche Präsentationen


Präsentation zum Thema: "UB-Bäume Vortrag von Georg Göttlich am 26.06.2001 Proseminar: Algorithmen und Datenstrukturen für Datenbanksysteme."—  Präsentation transkript:

1 UB-Bäume Vortrag von Georg Göttlich am Proseminar: Algorithmen und Datenstrukturen für Datenbanksysteme

2 Übersicht 1.Einführung 2.Konzept 3.Umsetzung 4.Tetris Algorithmus (optional) 5.Leistung (optional)

3 Einführung B + -Baum Primärindex A,2B,1C,8D,5E,4F,6G,3H,7 Daten nur in den Blättern Nach Primärindex geclustert Blätter Verkettet Geringer Aufwand für Bereichsanfragen auf den Primärschlüssel Daten nicht geclustert A – D => 2 Seiten A,2B,1C,8D,5E,4F,6G,3H,7 2 – 5 => 4 Seiten aber Anfragen auf andere Felder erfordern Sekundärindexe Der B + -Baum

4 Einführung Multidimensionale Anfragen Das Universum [(42,49),(10,20),(NCC1701A,NCC1701E)] n-dimensionaler Raum bei n indexierten Feldern Die Werte der Felder sind die Koordinaten Hyperplane ein Wert fix, die anderen Dimensionen unbeschränkt Query Box alle Dimensionen auf einen Bereich beschränkt [11,9,Galactica] [((-,+ ), (-,+ ),Executer] Punktanfrage ein bestimmter Wert in jeder Dimension genau ein Punkt des Universums Beispiel:

5 Einführung Theoretischer Leistungsvergleich Idealfall s 1 *s 2 *P multidimen- sionaler Index s 1 *s 2 *P mehrere B-Bäume, Bitmap Indexe s 1 *I 1 +s 2 *I 2 +s 1 *s 2 *T composite key clustering B-Baum s 1 *P

6 Übersicht 1.Einführung 2.Konzept 3.Umsetzung 4.Tetris Algorithmus (optional) 5.Leistung (optional)

7 Konzept Zerlegung in Subcubes Ein n-dimensionaler Kubus wird in 2 n Subcubes zerlegt n = 2n = 3 Rekursive Zerlegung bis zu den Pixeln n = 2

8 Konzept Z-Ordering Das n-dimensionale Universum wird mit Hilfe der Lebesgue-Kurve (Z-Kurve) auf die Zahlengerade projiziert. 2-dimensionales Universum Z-Kurve Z-Adressen

9 Z -Region[10:20] Konzept Z-Regionen Partitionierung: [0:7],[8:20],[21:46], [47:57],[58:63] Zwei Z-Adressen und gebend eine Region des Universums bzw. einen Abschnit auf der Zahlengerade an. Formal: Z-region[ : ] Eine Menge Z-Adressen M partitioniert ein Universum vollständig

10 Konzept Abbildung einer Query-Box

11 Übersicht 1.Einführung 2.Konzept 3.Umsetzung 4.Tetris Algorithmus (optional) 5.Leistung (optional)

12 Umsetzung Bitinterleaving Umwandlung der Koordinaten in eine geeignete Bitdarstellung, d.h. lexikographische Ordnung der Bitstrings = Ordnung der Feldwerte => Berechnung der Z-Adressen durch einfache Bitoperationen möglich Z-Adresse = 110 = 405 x 1 = 101x 2 = 110x 3 = 001 Koordinaten: Step0 100 Step1 101 Step2 Zweidimensionaler Beispielraum: x1x1 x2x2

13 Umsetzung Punktoperationen Operationalisierung: Koordinaten => Z-Adresse => Algorithmus für den B + -Baum Veranschaulichung an einem UB-Baum mit maximaler Tupelzahl pro Blatt M = 3: Felder Schiffe < < und n/2- < Anzahl der Objekte in Z-Region[ : ] < n/2+ Pagesplitting: entsprich im UB-Baum dem Teilen von Z-Regionen

14 Umsetzung Rangequery Query-Box ql qh Felder Schiffe Status UBTree_Range_Query(Tuple ql, Tuple qh) { Z-value start = UBKEY(ql); Z-value end = UBKEY(qh); Z-value cur = start; While (1) { cur = getRegionSeparator(cur); FilterTuples(GetPage(cur), ql, qh); if (cur >= end) break; cur = getNextZvalue(&cur, start, end);} //continue as long we are in the query box // getting the address of the region containing cur //post- filtering of the tuples in the region //stop once we covered the whole query box //calculation of next region 1. Seite von ql laden 2.Ende der aktuellen Seite finden 3.Tupel filtern 4.überprüfen ob Ende der aktuelle Seite > qh wenn ja: HALT 5.nächsten Punkt der Z-Kurve finden, der innerhalb der Abfrage liegt

15 Umsetzung Nächste Z-Adresse erste Z-Adresse nach der höchsten Z-Adresse der aktuellen Region suchen Durch Vergleich mit qh und ql überprüfen, ob innerhalb der Querrybox (Bitoperation) Anhand der beim Vergleich gewonnen Daten feststellen, in welchen Dimensionen die Adresse nicht innerhalb der Query-Box liegt und welche Bits geändert werden müssen (Bitoperationen)

16 Übersicht 1.Einführung 2.Konzept 3.Umsetzung 4.Tetris Algorithmus (optional) 5.Leistung (optional)Leistung NOTHALT

17 Tetris Algorithmus Tetris Ordering Z-Ordering Tetris Oder (A 2 ) Tetris Oder (A 1 )

18 Tetris Algorithmus Nächster Event Point ql Seite laden und Tuperl filtern und cachen auf der Ebene (sweep plane) weiter bis zum nächsten Punkt der außerhalb des schon geladenen Bereichs liegt (event point) entsprechende Seite lade und Tupel filtern, wiederholen bis Ebene komplett Cach sortieren nächsten event point suchen, die Elemente aller Ebene darunter, bis einschließlich der letzten sweep plane, ausgeben und aus dem Cach löschen auf der neuen sweep plane fortfahren

19 Tetris Algorithmus Beispiel Sortier- richtung

20 Übersicht 1.Einführung 2.Konzept 3.Umsetzung 4.Tetris Algorithmus (optional) 5.Leistung (optional) NOTHALT

21 Leistung Position der Query-Box

22 Leistung Größe der Query-Box

23 Leistung Füllungsgrad des Universums

24 Schluss Integrierbarkeit AccessStructure Manager Query Processor Lock Manager Catalog Manager Creation of UB-Trees SQL Compiler/Interpreter ExtendParserwith DDLstatements forUB-Trees Query Optimizer NewRules+CostModel forUB-Trees UB-TreeRange Query Support UB-Tree Modules: TransformationFunctions, Page Splitting, Range Query Storage Manager Recovery Manager Buffer Manager CommunicationManager Minor extensions: Major extensions: New modules: NO changes for: –DML –Multi-user support, i.e., locking, logging facilities handled by underlying B*-Tree

25 Thats all folks! The End


Herunterladen ppt "UB-Bäume Vortrag von Georg Göttlich am 26.06.2001 Proseminar: Algorithmen und Datenstrukturen für Datenbanksysteme."

Ähnliche Präsentationen


Google-Anzeigen