31
Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche Suche Gabriele Wilke-Müller Universität Konstanz, FB Informatik und Informationswissenschaft

Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

Embed Size (px)

Citation preview

Page 1: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner

Vortrag: R-Baum eine dynamische Index-Struktur für räumliche Suche

Gabriele Wilke-Müller

Universität Konstanz, FB Informatik und Informationswissenschaft

Page 2: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 2

Inhalt

1. Aufbau und Eigenschaften von R-Bäumen2. Beispiel eines R-Baumes3. Operationen auf R-Bäume

1. Suchen2. Einfügen3. Löschen4. Updaten5. Splitten

4. Unterschiede zum R+-Baum5. Performance6. Erweiterungen zum R-Baum

Page 3: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 3

Anwendungen

Herkömmliche Indexstrukturen wie B-Bäume und B+-Bäume können nur eindimensionale Daten verwalten. Für räumliche Daten bedarf es einer Indexstruktur, die auch mehrdimensionalen Daten speichern und effizient suchen können.

Wo werden R-Bäume angewandt?– Molekularbiologie– GIS Kartografie Verwaltung von 2d- und 3d-

Landkarten (Spatial Extender IBM)• Finde alle Landstücke innerhalb 10 km zu einem

best. Punkt– CAD-Anwendungen

Page 4: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 4

Aufbau R-Bäumen

• dynamische Indexstruktur (Insert, Update, Delete)• hoch-balancierte Indexstruktur• Die Datenstruktur besteht aus:

– Datenseiten sind die Blattknoten und speichern Punktdaten (geclustert), Datenobjekte .

– Directoryseiten, die inneren Knoten speichern Directory-Einträge. Strukturiert räumliche Daten mit Hilfe von sog. Minimum Bounding Rectangles.

Page 5: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 5

Eigenschaften von R-Bäumen (Gutmann,1984)

1. Alle Blätter haben zwischen m und M Indexeinträge. m M/2

2. Für jeden Index-Eintrag (I,tuple-id) in einem Blatt ist I das kleinste umgebende Rechteck, das das n-dimensionale Datenobjekt beihaltet.

3. Jeder Knoten, der kein Blattknoten ist, hat zw. m und M Söhne.

4. Für jeden Eintrag (I,child-pointer) in einem Knoten, der kein Blattknoten ist, ist I das kleinste Rechteck, das die Rechtecke im Kindknoten beihalten.

5.  Die Wurzel hat mindestens zwei Söhne.6.  Alle Blätter erscheinen auf derselben Höhe.

Page 6: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 6

Beispiel für einen R-Baum

root

R2

R9

R7

R8

R1

R4

R5

R6

R3

R10

R11root

R1 R2 R3

R4 R5 R6 R7 R8 R9 R10 R11

Page 7: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 7

Operation auf R-Bäume

• Suchen• Einfügen• Updaten• Löschen• Splitten

Page 8: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 8

Suchen

• Der Baum wird von der Wurzel zu den Blättern rekursiv durchsucht. (ähnlich B-Baum)

• Es wird immer ein Pfad durchlaufen. Wenn der gesuchte Datensatz nicht in diesem Unterbaum ist, wird der nächste Suchpfad durchlaufen.

• Willkürliche Pfadauswahl• Keine Garantie für eine gute Performance• Worst Case alle Pfade (durch Überlappungen)• Suchalgorithmen, um irrelevante Regionen

abzuschneiden.

Page 9: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 9

Suchalgorithmus (Gutmann, 1984)

Gegeben sei ein R-Baum mit einer Wurzel T. Gesucht werden alle Index-Einträge, die das Suchrechteck S schneiden.

S1 Suche in Teilbäumen

Wenn T kein Blatt ist, prüfe jeden Eintrag darauf, ob dieser S überschneidet,

überschneidende Einträge setze Suche in deren Söhnen fort.

 

S2 Suche in Blattknoten

Wenn T ein Blatt ist, prüfe alle Einträge darauf, ob sie S schneiden. Wenn ja, so ist dies der gesuchte Eintrag.

.

Page 10: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 10

Suchen

root

R2

R9

R7

R8

R1

R4

R5

R6

R3

R10

R11root

R1

R7 R8 R9

R2

S

S1 Suche in Teilbäumen

Wenn T kein Blatt ist, prüfe jeden Eintrag darauf, ob dieser S überschneidet,

überschneidende Einträge setze Suche in deren Söhnen fort.

S2 Suche in Blattknoten

Wenn T ein Blatt ist, prüfe alle Einträge darauf, ob sie S schneiden. Wenn ja, so ist dies der gesuchte Eintrag.

Page 11: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 11

Einfügen

Typische Vorgehensweise:

• Nach best. räumlichen Kriterien wird die beste Kindseite gesucht (ChooseLeaf)

• Der Punkt wird dort eingefügt, wenn Platz ist• Wenn kein Platz ist, wird die Seite aufgesplittet im

Rahmen einer Überlaufbehandlung (SplitNode)– min. Überlappung, toter Raum mögl. klein

• Vater-Intervall muss dem neuen Objekt angepaßt werden (AdjustTree)

• Wenn durch Splitten Wurzel erreicht, erstelle Wurzel, deren Kinder die zwei resultierenden Konten sind.

Page 12: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 12

Einfügen

R2

.i

root

R2

R9

R7

R8

R1

R4

R5

R6

R10

R11

R2

R9

R7

R8

.i

R2

R9

R7

R8

.iR3

Page 13: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 13

Einfügen

.i

root

R2

R9

R7

R8

R1

R4

R5

R6

R10

R11R3R2

R9

R7

R8

.iR7-1

root

R1 R2 R3

R4 R5 R6 R10 R11R7 R7-1 R8 R9

Page 14: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 14

Löschen

• Blatt wird gesucht, das zu löschenden Eintrag enthält (mit FindLeaf)

• Eintrag wird aus dem Blatt gelöscht (Delete Record)• Baum wird verdichtet (mit CondenseTree), falls der

Knoten nun zu wenige Einträge hat. • Die Einträge, die aus dem Blattknoten entfernt wurden,

werden wieder eingefügt (siehe Einfügen).• Hat die Wurzel nur noch einen Sohn – Sohn wird neue

Wurzel

Page 15: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 15

Löschen

• Eintrag ist in R9• Eintrag wird gelöscht – nichts passiert • Zu wenig Einträge in R9 – R9 wird gelöscht

CondenseTree

R2

R9

R7

R8

R2R7

R8

root

R1 R2 R3

R4 R5 R6 R10 R11R7 R8

Page 16: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 16

Updaten

• Wird ein Datensatz aktualisiert wird, dass sein umgebendes Rechteck sich verändert, so muss der Indexeintrag gelöscht, aktualisiert und wieder neu eingefügt werden.

Page 17: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 17

Splitten eines Knotens SplitNode

• Soll ein neuer Eintrag in einen vollen Knoten erfolgen, müssen die M+1 Einträge auf zwei Knoten aufgeteilt werden.

• Bei nachfolgenden Suchvorgänge sollten nicht beide Teilbäume durchsucht werden.

• Minimale Gesamtfläche der beiden Rechtecke. Der tote Raum soll minimiert werden.

schlechter Split guter Split

Page 18: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 18

Algorithmen für den Split

• Exhaustive Algorithmus Alle möglichen Splits bilden, Gesamtfläche errechnen, beste auswählen – Anzahl der Möglichkeiten 2M-1.

• Quadratic-Cost Algorithmus Versuch Aufteilung mit kleinen Flächen zu finden, kleinstmöglichste Fläche nicht garantiert.Kosten des Algorithmus O(M2)

• Linear-Cost Algorithmus Linear zu M und zur Anzahl der Dimensionen. Ähnlich dem Qudratic-Cost Algorithmus unterscheidet sich in einer Prozedur.

Page 19: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 19

Quadratic-Cost Algorithmus

• M+1 Index-Einträge in 2 Gruppen aufteilen– QS1 Wähle den ersten Eintrag für jede Gruppe

Algorithmus PickSeeds ausführen, um 2 Einträge als erste Elemente der Gruppen zu finden.

– QS2 Prüfe ob der Algorithmus fertig ist.Beende Algorithmus, wenn alle Einträge zugewiesen wurden. Wenn 1 Gruppe zu wenig Einträge hat, weise ihr die restlichen zu, um m zu erreichen.

– QS3 Wähle Eintrag und weise ihr einer Gruppe zu.PickNext Algorithmus aufrufen, um nächsten zuzuweisenden Eintrag zu wählen. Wähle Gruppe nach folgender Strategie:

Page 20: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 20

Quadratic-Cost Algorithmus

Strategie:1. Wähle die Gruppe, deren Verzeichnisrechteck am

wenigsten vergrößert werden muss.2. Wähle die Gruppe deren Verzeichnisrechteck kleiner ist.3. Wähle die Gruppe, die weniger Elemente hat.4. Wähle eine beliebige Gruppe.

Fahre fort mit QS2

Page 21: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 21

Quadratic-Cost Algorithmus

• PickSeedsWähle die 2 Elemente, die Startelemente in den beiden Gruppen sein sollen.

– PS1 Berechne die verschwendete Fläche des Verzeichnisrechtecks, wenn 2 Elemente gruppiert werden.

Für jedes Paar von Einträgen E1 und E2, erzeuge das MBR J, welches E1.I und E2.I enthält.

d = Fläche (J) – Fläche(E1.I) – Fläche(E2.I)

– PS2 Wähle das verschwenderischste PaarWähle das Paar mit dem größten d.

Page 22: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 22

Quadratic-Cost Algorithmus

• PickNextWähle verbleibenden Eintrag, um ihm einer Gruppe zuzuordnen.

– PN1 Berechne die Kosten für jeden noch nicht zugeordneten Eintrag. Berechne d1 und d2 = Flächenzuwachs des Verzeichnisrechtecks, wenn es den Eintrag enthalten würde.

– PS2 Wähle den Eintrag mit d1 - d2 am größten.

Page 23: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 23

Linear-Cost Algorithmus

• PickSeeds unterscheidet sich vom Quadratic-Cost Algr.

• LinearPickSeeds– LPS1 Finde die Extremrechtecke über alle

DimensionenFinde in jeder Dimension die Rechtecke mit der höchsten und der niedrigsten Koordinate.

– LPS2 Berechne Abstand und normalisiere ihn. Über die gesamte Breite der Rechteckmenge wird wird entlang der entspr. Dimension geteilt.

– LPS3 Wähle das extremste PaarWähle das Paar mit der größten normalisierten Separierung in einer Dimension.

Page 24: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 24

PickNext

• Wähle einen verbleibenden Eintrag, um ihn einer Gruppe zuzuordnen.– PN1 Berechne die Kosten für jeden Eintrag d1 = Flächenzuwachs des Verzeichnisrechtecks der

ersten Gruppe, wenn es E enthalten würde. Berechne d2.

– PN2 Wähle den Eintrag mit d1 - d2 am größten.

Page 25: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 25

8

E

D

B

C

14

A

13

5

Beispiel Lineares PickSeeds

5

bzgl. x: A, E: d1 = 5 d1* = 5/14bzgl. y: C, D: d2 = 8 d2* = 8/13

Da d1 < d2 wird C, D gewählt

Page 26: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 26

Kosten für Seitenzugriffe

• Effiziente Suche in R-Bäumen – minimale Überlappungen, minimalen toten Raum

keine Überlappungen nur, wenn Datenpunkte im voraus bekannt.

E

C MN

D

F

H

K

S

G

I

L

AJ

BE A B C

D E F G H I J K L M N

root

Page 27: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 27

R+-Baum

C MN

D

F

H

KG

I

L

A JBP

E

• Struktur gleich R-Baum• Überlappungen nicht zugelassen (Datenrechtecke werden geteilt, in mehreren Blättern enthalten • + schnelleres Suchen• - Baum wird höher

S

D E F G

A B C P

I J K L M N G H

root

Page 28: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 28

R+-Baum Operationen

Unterschiede zum R-Baum:Suchen: R+-Baum keine Überlappungen, schnellerEinfügen: Datenobjekt kann in mehreren Blättern

eingefügt werden. Überlaufende Knoten werden gesplittet.

Löschen: Baum wird durchsucht, in welchem Blatt sich Objekt befindet, dann wird es aus Blatt

entfernt. Es gibt keine minimale Anzahl m. Evtl. mehrere Einträge löschen

Splitten: Das Splitten setzt sich abwärts fort. Bsp. Wenn A Vater von B ist und B Vater von C, dann

müssen diese ebenfalls gesplittet werden. (da keine Überlappungen)

Page 29: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 29

Performance

• Der Hauptvorteil von R+-Baum verbesserte Suchleistung. Vor allem Punktanfragen (bis zu > 50 % Zugriffsersparnis).

• Die Effizienz von R-Bäumen leidet unter wenigen großen Datenobjekten. R+-Bäume splittet diese Datenräume in viele kleinere. schnellere Suchen.

• Hauptproblem des R-Baumes ist die schlechte Performance vor allem in hochdimensionalen Räumen.

Page 30: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 30

Erweiterungen des R-Baumes

• Der R*-Baum ermöglicht weitere Effizienzsteigerung durch einen ausgekügelten Splitalgorithmus.

• X-Baum (eXtended node) Weiterentwicklung d. R*-Baums für hochdimensionale Räume. (supernodes)

• Der TV-Baum (Telescope vector) besitzt ähnliche Struktur wie R-Baum, spezielle für Vektoren entwickelt.

• Der sog. Cell-Baum benutzt statt Rechtecken Polygone. • SS-Baum (Similarity Search) statt MBRs werden Kugeln

als Seitenregion benutzt.• SR-Baum benutzt die Kombination aus einem Rechtecke

(MBR) und einer Kugel als Seitenregion.

Page 31: Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof. Scholl, Jens Teubner Vortrag: R-Baum eine dynamische Index-Struktur für räumliche

R- Baum eine Indexstruktur für räumliche Suche 31

Abschlußfolie

• R-Bäume – Indexstruktur für räumlich Daten• Vorteil: nicht nur Punktanfragen, sondern

Bereichsanfragen.• Gewisse Nachteile (Suchperformance) Überlappungen

– Deshalb R+-Baum