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

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

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

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

UB-Bäume

Vortrag von

Georg Göttlich

am

26.06.2001

Proseminar: Algorithmen und Datenstrukturen für Datenbanksysteme

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

Übersicht

1. Einführung

2. Konzept

3. Umsetzung

4. Tetris Algorithmus (optional)

5. Leistung(optional)

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

Einführung

B+-Baum

Primärindex

A,2 B,1 C,8 D,5 E,4 F,6 G,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 geclustertA – D => 2 Seiten

A,2 B,1 C,8 D,5 E,4 F,6 G,3H,7

2 – 5 => 4 Seiten

aber

Anfragen auf andere Felder erfordernSekundärindexe

Sekundärindex A ,2B ,1 C ,8D ,5E ,4 F,6G ,3 H ,7

Der B+-Baum

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

EinführungMultidimensionale Anfragen

Das Universum

S ch iffsnam e

X -Po s itio n

Y -Po s itio n

[(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:

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

EinführungTheoretischer Leistungsvergleich

Idealfall

s1*s2*P

multidimen-sionaler

Index

s1 *s2

*P

mehrereB-Bäume,

Bitmap Indexe

s1*I1+s2*I2+s1*s2*T

composite key clustering

B-Baum

s1*P

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

Übersicht

1. Einführung

2. Konzept

3. Umsetzung

4. Tetris Algorithmus (optional)

5. Leistung(optional)

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

KonzeptZerlegung in Subcubes

Ein n-dimensionaler Kubus wird in 2n Subcubes zerlegt

n = 2 n = 3

Rekursive Zerlegung bis zu den „Pixeln“

n = 2

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

KonzeptZ-Ordering

Das n-dimensionale Universum wird mit Hilfe der Lebesgue-Kurve (Z-Kurve)auf die Zahlengerade projiziert.

10 32 54 7610 32 54 76

10

4

2

5

3

76

10

4

2

5

3

76

2-dimensionales Universum

Z-Kurve

10 54 1716 212032 76 1918 232298 1312 2524 2928

1110 1514 2726 3130

3332 3736 4948 53523534 3938 5150 55544140 4544 5756 61604342 4746 5958 6362

Z-Adressen

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

Z -Region[10:20]

KonzeptZ-Regionen

10

20

Partitionierung:[0:7],[8:20],[21:46],[47:57],[58:63]

7

2 0

4 6

5 7

Zwei Z-Adressen und gebend eine„Region“ des Universums bzw. einenAbschnit auf der Zahlengerade an.Formal: Z-region[:]

Eine Menge Z-Adressen M partitioniert ein Universum vollständig

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

KonzeptAbbildung einer Query-Box

m ehrd im ensiona ler R aum

Z-A dressraum

Q

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

Übersicht

1. Einführung

2. Konzept

3. Umsetzung

4. Tetris Algorithmus (optional)

5. Leistung(optional)

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

UmsetzungBitinterleaving

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 = 1 1 0 = 405

x1= 101 x2= 110 x3= 001

Koordinaten:

Step0

10 0Step1

101Step2

0

0

01

1

1

1 0 0 1 0 1

1 0

1 0

1 0

11

11

11

11 0 11 1

1 0 0 0 1 0 0 1 11 0 0 11 0 1

1 0 1 0 1 0 11 11 1 0 11 11

0 1

2 3

4 5

6 7

8 9

1 0 11

1 2 1 3

1 4 1 5

Zweidimensionaler Beispielraum:

x1

x2

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

UmsetzungPunktoperationen

Operationalisierung: Koordinaten => Z-Adresse => Algorithmus für den B+-Baum

Veranschaulichung an einem UB-Baum mit maximaler Tupelzahl pro Blatt M = 3:

Felder

Sch

iffe

<< und n/2- < Anzahl der Objekte in Z-Region[:] < n/2+

Pagesplitting:entsprich im UB-Baum dem Teilen von Z-Regionen

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

UmsetzungRangequery

Query-Box

ql

qh

Felder

Sch

iffe

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 laden2. Ende der aktuellen Seite finden3. Tupel filtern4. überprüfen ob Ende der aktuelle Seite > qh

wenn ja: HALT5. nächsten Punkt der Z-Kurve finden, der innerhalb der

Abfrage liegt

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

UmsetzungNächste Z-Adresse

A B

DC

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

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

Übersicht

1. Einführung

2. Konzept

3. Umsetzung

4. Tetris Algorithmus (optional)

5. Leistung(optional)

NOTHALT

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

Tetris AlgorithmusTetris Ordering

Z-Ordering

1 2 3 4 5 6 70 2A

0

1

A 1

2

3

4

5

6

7

0

6 3

Tetris Oder (A2)

2A

A 1

1 2 3 4 5 6 700

1

2

3

4

5

6

7

0

6 3

Tetris Oder (A1)

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

Tetris AlgorithmusNächster Event Point

H2 (0)

e33

2

1

e4

e5

a21 b2

1

e5

H 2(2)

• 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

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

Tetris AlgorithmusBeispiel

Sortier-richtung

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

Übersicht

1. Einführung

2. Konzept

3. Umsetzung

4. Tetris Algorithmus (optional)

5. Leistung(optional)

NOTHALT

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

LeistungPosition der Query-Box

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

LeistungGröße der Query-Box

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

LeistungFüllungsgrad des Universums

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

SchlussIntegrierbarkeit

Access Structure Manager

Query Processor

LockManager

CatalogManager

Creation of UB-Trees

SQLCompiler/Interpreter

Extend Parser with DDL statementsfor UB-Trees

QueryOptimizer

New Rules +Cost Modelfor UB-Trees

UB-Tree Range Query Support

UB-Tree Modules :Transformation Functions , Page Splitting, Range Query

StorageManager

Recovery Manager

BufferManager

Communication Manager • Minor extensions:

• Major extensions:

• New modules:

• NO changes for:– DML

– Multi-user support, i.e., locking, logging facilities handled by underlying B*-Tree

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

That‘s all folks!

The End