Präsentation herunterladen
Veröffentlicht von:Izaak Schmidtberger Geändert vor über 10 Jahren
1
Proseminar: Algorithmen und Datenstrukturen für Datenbanksysteme
UB-Bäume Vortrag von Georg Göttlich am
2
Übersicht Einführung Konzept Umsetzung Tetris Algorithmus (optional)
Leistung (optional)
3
Einführung Der B+-Baum B+-Baum aber Primärindex
Daten nur in den Blättern Nach Primärindex geclustert aber Anfragen auf andere Felder erfordern Sekundärindexe Blätter Verkettet Geringer Aufwand für Bereichsanfragen auf den Primärschlüssel Primärindex A – D => 2 Seiten A,2 B,1 C,8 D,5 E,4 F,6 G,3 H,7 2 – 5 => 4 Seiten A,2 B,1 C,8 D,5 E,4 F,6 H,7 G,3 Daten nicht geclustert
4
Multidimensionale Anfragen
Einführung Multidimensionale Anfragen Das Universum Punktanfrage ein bestimmter Wert in jeder Dimension genau ein Punkt des Universums Beispiel: „Hyperplane“ ein Wert fix, die anderen Dimensionen unbeschränkt „Query Box“ alle Dimensionen auf einen Bereich beschränkt n-dimensionaler Raum bei n indexierten Feldern Die Werte der Felder sind die Koordinaten [11,9,“Galactica“] [(42,49),(10,20),(„NCC1701A“,“NCC1701E“)] [((-,+ ), (-,+ ),“Executer“]
5
Theoretischer Leistungsvergleich
Einführung Theoretischer Leistungsvergleich composite key clustering B-Baum s1*P mehrere B-Bäume, Bitmap Indexe s1*I1+s2*I2+s1*s2*T multidimen- sionaler Index s1 *s2 *P Idealfall s1*s2*P
6
Übersicht Einführung Konzept Umsetzung Tetris Algorithmus (optional)
Leistung (optional)
7
Konzept Zerlegung in Subcubes n = 2 n = 3 n = 2
Ein n-dimensionaler Kubus wird in 2n Subcubes zerlegt n = 2 n = 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 1 5 4 17 16 21 20 3 2 7 6 19 18 23 22 9 8 13 12 25 24 29 28 11 10 15 14 27 26 31 30 33 32 37 36 49 48 53 52 35 34 39 38 51 50 55 54 41 40 45 44 57 56 61 60 43 42 47 46 59 58 63 62 Z-Adressen
9
Konzept Z-Regionen 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 Z -Region[10:20] 10 20 Partitionierung: [0:7],[8:20],[21:46], [47:57],[58:63]
10
Abbildung einer Query-Box
Konzept Abbildung einer Query-Box
11
Übersicht Einführung Konzept Umsetzung Tetris Algorithmus (optional)
Leistung (optional)
12
lexikographische Ordnung der Bitstrings = Ordnung der Feldwerte
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 x1= 101 x2= 110 x3= 001 Koordinaten: Zweidimensionaler Beispielraum: x1 x2 1 1 Step1 1 1 Step2 Z-Adresse = = 405 Step0
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 Pagesplitting: entsprich im UB-Baum dem Teilen von Z-Regionen << und n/2- < Anzahl der Objekte in Z-Region[:] < n/2+
14
Umsetzung Rangequery ql qh Seite von ql laden
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 Query-Box ql qh Seite von ql laden Ende der aktuellen Seite finden Tupel filtern überprüfen ob Ende der aktuelle Seite > qh wenn ja: HALT 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 Einführung Konzept Umsetzung Tetris Algorithmus (optional)
Leistung (optional) NOTHALT
17
Tetris Algorithmus Tetris Ordering Z-Ordering Tetris Oder (A2)
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 Einführung Konzept Umsetzung Tetris Algorithmus (optional)
Leistung (optional) NOTHALT
21
Position der Query-Box
Leistung Position der Query-Box
22
Leistung Größe der Query-Box
23
Füllungsgrad des Universums
Leistung Füllungsgrad des Universums
24
Schluss Integrierbarkeit Minor extensions: Major extensions:
New modules: NO changes for: DML Multi-user support, i.e., locking, logging facilities handled by underlying B*-Tree Communication Manager SQL Compiler/Interpreter Extend Parser with DDL statements for UB - Trees Query Optimizer Catalog New Rules + Cost Model Manager for UB - Trees Query Creation of UB - Trees Processor UB - Tree Range Query Support Lock Access Structure Manager Manager UB - Tree Modules : Transformation Functions , Page Splitting, Range Query Buffer Storage Recovery Manager Manager Manager
25
The End That‘s all folks!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.