Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Definition Überlappung und Überdeckung
Der R-Baum Richard Göbel.
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
Eine dynamische Menge, die diese Operationen unterstützt,
Suchbäume unterstützen alle unten angegebenen Operationen für dynamische Mengen K effizient: Search(K ,k) ---- Suche ein Element x von K mit Schlüssel.
Der k-d-Baum Richard Göbel.
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Mindesthöhe: |_log2 n_|, maximale Höhe: n-1
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Der B-Baum Richard Göbel.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Balancierte Bäume Effizienz der Wörterbuchoperationen auf Bäumen hängt direkt von der Baumhöhe ab. Baum mit n Knoten: Mindesthöhe: |_log2 n_|, maximale.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Der R-Baum Richard Göbel.
Effizienz: Indexstrukturen
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Das Maßproblem von Klee
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
R-tree, R*-tree und R+-tree
Diskrete Mathematik R (R/R+-Baum).
Kap. 6.2 Binäre B-Bäume Ullmann: (2, 3) - Bäume
Externe Datenstruktur lineare Liste
Algorithmen und Komplexität
Programmiermethodik Übung 6 Methoden verstehen und entwerfen.
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Splay Trees Von Projdakov Benjamin.
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Effiziente Algorithmen
Ändern von Merkmalen Geometrie Topologie Attribute.
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 9 SS 2000 Punkt-in-Polygon-Verfahren III (R/R + -Baum)
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
… oder wie finde ich den Weg
ISWeb - Information Systems & Semantic Web Marcin Grzegorzek R-Baum und Varianten R-Baum X-Baum M-Baum.
Graphen und Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 4 WS 01/02 Quadtrees.
Raumbezogene Zugriffsverfahren
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Kap. 12 R-Bäume GB B31 B245 Box 1: Box 2: Box 3: Box 4: Box 5:
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Seminar: Support for Non-Standard DataTypes in DBMSs im WS 03/04 Prof 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

R- Baum eine Indexstruktur für räumliche Suche Inhalt Aufbau und Eigenschaften von R-Bäumen Beispiel eines R-Baumes Operationen auf R-Bäume Suchen Einfügen Löschen Updaten Splitten Unterschiede zum R+-Baum Performance Erweiterungen zum R-Baum R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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 R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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. R- Baum eine Indexstruktur für räumliche Suche

Eigenschaften von R-Bäumen (Gutmann,1984) Alle Blätter haben zwischen m und M Indexeinträge. m  M/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. R- Baum eine Indexstruktur für räumliche Suche

Beispiel für einen R-Baum root R2 R9 R7 R8 R1 R4 R5 R6 R3 R10 R11 R10 R11 R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche Operation auf R-Bäume Suchen Einfügen Updaten Löschen Splitten R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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. R- Baum eine Indexstruktur für räumliche Suche

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. . R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche Suchen root R2 R9 R7 R8 R1 R4 R5 R6 R3 R10 R11 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. S R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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. R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche Einfügen .i root R2 R7 R1 R3 R2 R5 R11 .i R10 R4 R8 R9 R6 R2 R7 R2 R7 .i R8 R9 R9 R8 R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche Einfügen .i root R2 R7 R1 R3 R5 R11 R7-1 .i R10 R4 R8 R9 R6 R2 R7 R8 R9 R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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 R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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 R2 R7 R8 R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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. R- Baum eine Indexstruktur für räumliche Suche

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 R- Baum eine Indexstruktur für räumliche Suche

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. R- Baum eine Indexstruktur für räumliche Suche

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: R- Baum eine Indexstruktur für räumliche Suche

Quadratic-Cost Algorithmus Strategie: Wähle die Gruppe, deren Verzeichnisrechteck am wenigsten vergrößert werden muss. Wähle die Gruppe deren Verzeichnisrechteck kleiner ist. Wähle die Gruppe, die weniger Elemente hat. Wähle eine beliebige Gruppe. Fahre fort mit QS2 R- Baum eine Indexstruktur für räumliche Suche

Quadratic-Cost Algorithmus PickSeeds Wä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 Paar Wähle das Paar mit dem größten d. R- Baum eine Indexstruktur für räumliche Suche

Quadratic-Cost Algorithmus PickNext Wä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. R- Baum eine Indexstruktur für räumliche Suche

Linear-Cost Algorithmus PickSeeds unterscheidet sich vom Quadratic-Cost Algr. LinearPickSeeds LPS1 Finde die Extremrechtecke über alle Dimensionen Finde 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 Paar Wähle das Paar mit der größten normalisierten Separierung in einer Dimension. R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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. R- Baum eine Indexstruktur für räumliche Suche

Beispiel Lineares PickSeeds 8 E D B C 14 A 13 5 5 bzgl. x: A, E: d1 = 5 d1* = 5/14 bzgl. y: C, D: d2 = 8 d2* = 8/13 Da d1 < d2 wird C, D gewählt R- Baum eine Indexstruktur für räumliche Suche

Kosten für Seitenzugriffe Effiziente Suche in R-Bäumen – minimale Überlappungen, minimalen toten Raum keine Überlappungen nur, wenn Datenpunkte im voraus bekannt. C M N D F H K S G I L A J B E E R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche G I L A J B P E S Struktur gleich R-Baum Überlappungen nicht zugelassen (Datenrechtecke werden geteilt, in mehreren Blättern enthalten + schnelleres Suchen - Baum wird höher R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche R+-Baum Operationen Unterschiede zum R-Baum: Suchen: R+-Baum keine Überlappungen, schneller Einfü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) Er R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche 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. R- Baum eine Indexstruktur für räumliche Suche

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. R- Baum eine Indexstruktur für räumliche Suche

R- Baum eine Indexstruktur für räumliche Suche Abschlußfolie R-Bäume – Indexstruktur für räumlich Daten Vorteil: nicht nur Punktanfragen, sondern Bereichsanfragen. Gewisse Nachteile (Suchperformance) Überlappungen Deshalb R+-Baum R- Baum eine Indexstruktur für räumliche Suche