Geoinformation III 1 2 3 4 5 6 8 9 10 11 13 14 15 16 17 18 19 Nachteil des R-Baums Diskrete Mathematik R (R/R+-Baum) R R R R R R R R 20 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums Übersicht über das Semester Die Vorlesung besteht aus 3 Blöcken • räumliche Datenbanken – Zugriffsstrukturen zur Unterstützung der Suche R/R+ - Baum Quadtree • Softwaretechnologie (Dr. Gröger) – (fortgeschrittene) Klassendiagramme – Dynamische UML-Diagramme – Software-Demo: CASE-Tool „Together“ – Korrektheit von Programme – Testen – Normen und Standards in GIS 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 Nachteil des R-Baums Übersicht über das Semester Die Vorlesung besteht aus 3 Blöcken • Internet: Protokolle, Dienste und Formate (Dr. Kolbe) – Offene Systeme, Rechnernetze und Internet – eXtensible Markup Language (XML) – XML Dokumenttyp-Definition, UML -> XML, Namespaces – XML-Schema – Geography Markup Language (GML 2) Form: Vorlesung mit Übungsanteilen 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nachteil des R-Baums Übersicht • • • • • • • • • Einordnung MBR – minimum bounding rectangle Idee des R-Baums Neues laufendes Beispiel R-Baum als B-Baum Exkurs: B-Baum • Eigenschaften • Einfügen in einen B-Baum • Löschen in einem B-Baum Der R-Baum als solcher Einfügen in einen R-Baum Strategien zum Spalten eines Knotens • • • • • Suchen in einem R-Baum Nachteil des R-Baums Alternative: Der R+-Baum R+-Baum Suche im R+-Baum 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nachteil des R-Baums R-Baum Einordnung • Bisher: – Zerlegung des Objekts (->Trapezkarte) – Konstruktion einer Zugriffstruktur für das Objekt (->Trapezkarte) • Alternatives Vorgehen: Approximation der Maschen durch umschließende achsenparallele Rechtecke: Minimal Bounding Rectangle (MBR) – Verwaltung der Rechtecke • R-Baum • R+-Baum 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 Nachteil des R-Baums R-Baum MBR – minimum bounding rectangle y Außen x A 4x 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R-Baum Idee • • • • • • In welcher Masche M liegt der Punkt P? Neue Frage: In welcher Bounding Box einer Masche M liegt der Punkt P? Verwende effizientes Verfahren, um alle Rechtecke R1, ... Rn zu finden, die P enthalten – Jedem Rechteck Ri entspricht eine Masche Mi Prüfe, ob P in einer der Maschen M1, ... Mn vorkommt • Verwende dazu das Standardverfahren Problem: Zugriffsstruktur für Rechtecke Rechtecke sind einfacher zu handhaben als Maschen im allgemeinen Nur die Rechtecke interessieren uns hier, nicht die zugrundeliegenden Maschen A 1x 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R-Baum Beispiel 01 R11 15 16 02 03 R15 07 R13 04 05 R12 11 12 R16 08 R14 09 10 06 13 14 01 02 03 04 06 09 05 07 08 10 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nachteil des R-Baums R-Baum R-Baum als B-Baum • • Ein R-Baum ist ein B-Baum mit zusätzlichen Eigenschaften Was ist denn ein B-Baum? – Ein B-Baum ist (wie der AVL-Baum) ausgeglichen – Aber: Jeder Knoten enthält mehr als einen Schlüssel B-Bäume werden oft in kommerziellen Datenbanken für den schnellen Zugriff auf Festplattenspeicher genutzt. Die inneren Knoten entsprechen dann den kleinsten ansprechbaren Einheiten („Kacheln“ von 1 Kbyte oder mehr) der Festplatte. 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums B-Baum Exkurs B B B B B B B B B 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Beispiel der Ordnung 2 49 16 31 13 14 15 20 29 30 38 41 52 62 78 90 50 51 55 59 63 66 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums B-Baum Allgemeines Der B-Baum wurde nach seinem Entwickler R. Bayer benannt. Die Suche eines Elementes in einem B-Baum unterscheidet sich nur wenig von der Suche in anderen Such-Bäumen. Das Einfügen und Entfernen von Elementen ist jedoch an vielen Stellen anders als in Binär-Such-Bäumen. 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Nachteil des R-Baums B-Baum Eigenschaften I Eigenschaften eines B-Baumes der Ordnung n: – Ein B-Baum ist nicht binär – Ein B-Baum ist ausgeglichen – Alle Blätter haben das gleiche Niveau – Jeder Knoten enthält höchstens 2n Elemente – Jeder Knoten außer der Wurzel enthält mindestens n Elemente – Jeder innere Knoten hat m+1 Nachfolgeknoten, wobei m die Anzahl der Schlüssel des inneren Knotens ist 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums B-Baum Eigenschaften II Eigenschaften eines B-Baumes der Ordnung n: – Die m Elemente eines Knotens werden in aufsteigender Reihenfolge gespeichert: x1 < x2 < ... < xm – Für jeden i-ten Teilbaum Si eines Knotens gilt: Die Elemente seiner Knoten sind größer als xi und kleiner als xi+1 (ganz links und ganz rechts analog) – Bei einigen Varianten des B-Baums stehen alle Informationen in den Blättern 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 52 62 52 62 78 90 50 51 55 59 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 61 > 49 rechter Ast 61 Einfügen eines Elements mit dem Wert 61 52 62 78 90 50 51 55 59 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 61 > 49 rechter Ast Einfügen eines Elements mit dem Wert 61 52 62 78 90 61 52 < 61 < 62 2. Ast von links 50 51 55 59 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 61 > 49 rechter Ast Einfügen eines Elements mit dem Wert 61 52 62 78 90 52 < 61 < 62 2. Ast von links 59 < 61 Einfügen 50 51 55 59 63 66 71 75 80 82 86 91 95 61 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 61 > 49 rechter Ast Einfügen eines Elements mit dem Wert 61 52 62 78 90 52 < 61 < 62 2. Ast von links 59 < 61 Einfügen 50 51 55 59 61 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 61 > 49 rechter Ast Einfügen eines Elements mit dem Wert 61 52 62 78 90 52 < 61 < 62 2. Ast von links 59 < 61 Einfügen 50 51 55 59 61 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 64 > 49 rechter Ast 64 Einfügen eines Elements mit dem Wert 64 52 62 78 90 50 51 55 59 61 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 64 > 49 rechter Ast Einfügen eines Elements mit dem Wert 64 52 62 78 90 64 62 < 64 < 78 3. Ast von links 50 51 55 59 61 63 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 64 > 49 rechter Ast Einfügen eines Elements mit dem Wert 64 52 62 78 90 62 < 64 < 78 3. Ast von links 63 < 64 < 66 Einfügen 50 51 55 59 61 63 66 71 75 80 82 86 91 95 64 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen Einfügen eines Elements mit dem Wert 64 49 52 62 78 90 64 > 49 rechter Ast 62 < 64 < 78 3. Ast von links 63 < 64 < 66 Einfügen 50 51 55 59 61 63 64 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen Einfügen eines Elements mit dem Wert 64 49 52 62 78 90 64 > 49 rechter Ast 62 < 64 < 78 3. Ast von links 63 < 64 < 66 Einfügen 50 51 55 59 61 63 64 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 Problem: Speicherüberlauf Einfügen eines Elements mit dem Wert 64 52 62 78 90 Lösung: Knoten sprengen 50 51 55 59 61 63 64 66 71 75 80 82 86 91 95 A 31x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 Setze das mittlere Element um eine Position nach oben Einfügen eines Elements mit dem Wert 64 52 62 78 90 Bilde zwei neue Zweige 50 51 55 59 61 63 64 66 A 31x 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 50 51 55 59 61 63 64 A 31x 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 50 51 55 59 61 63 64 A 31x 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 Problem: Speicherüberlauf Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 Lösung: Knoten sprengen 50 51 55 59 61 63 64 A 31x 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 Setze das mittlere Element um eine Position nach oben Einfügen eines Elements mit dem Wert 64 52 62 66 78 90 Bilde zwei neue Zweige 50 51 55 59 61 63 64 A 31x 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Einfügen 49 66 Einfügen eines Elements mit dem Wert 64 52 62 50 51 55 59 61 63 64 A 31x 78 90 71 75 80 82 86 91 95 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums B-Baum Löschen • • Suche des Knotens, der das zu löschende Element enthält Falls Knoten gefunden, unterscheiden wir folgende Fälle: 1. Löschen in einem Blatt: Entfernen des Elements a) die Anzahl der Elemente des Blattes ist weiterhin >= n b) die Anzahl der Elemente des Blattes ist < n „Unterlauf“ bereinigen 2. Löschen in einem inneren Knoten: Eintrag durch das nächstgrößere oder nächstkleinere Element im Baum ersetzen (rechtester Eintrag im linken Unterbaum oder linkester im rechten (vgl. AVL-Bäume). a) die Anzahl der Elemente des Blattes ist weiterhin >= n b) die Anzahl der Elemente des Blattes ist < n „Unterlauf“ bereinigen 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 Element suchen 78 90 Element gefunden: Löschen 49 50 51 54 55 59 63 64 71 75 80 82 86 91 95 97 A 17x Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 Speicherunterlauf 78 90 Über Vater- und Nachbarknoten (nächstgrößeres Element) ausgleichen 49 50 51 54 55 59 63 64 71 A 17x 80 82 86 91 95 97 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 49 50 51 54 55 59 63 64 71 A 17x 78 90 80 82 86 91 95 97 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem Blatt 14 49 66 Löschen des Elements mit dem Wert 75 52 62 80 90 49 50 51 54 55 59 63 64 71 78 A 17x 82 86 91 95 97 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem inneren Knoten 14 49 66 Löschen des Elements mit dem Wert 90 52 62 Element suchen 80 90 Element gefunden: Löschen 49 50 51 54 55 59 63 64 71 78 A 17x 82 86 91 95 97 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem inneren Knoten 14 49 66 Speicherunterlauf Löschen des Elements mit dem Wert 90 52 62 80 Ersetzen durch nächstgrößeres Element 49 50 51 54 55 59 63 64 71 78 A 17x 82 86 91 95 97 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Nachteil des R-Baums B-Baum Löschen in einem inneren Knoten 14 49 66 Löschen des Elements mit dem Wert 90 52 62 80 91 49 50 51 54 55 59 63 64 71 78 A 17x 82 86 95 97 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums Zurück zum R-Baum R R R R R R R R R 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nachteil des R-Baums R-Baum ...als solcher • Ein Blattknoten ist ein Paar (R,O), R ist das kleinste umschließende Rechteck, welches das Objekt O umschließt • Jeder innere Knoten hat m Paare (R,T), R ist das kleinste umschließende Rechteck des Teilbaums T • Ordnung beim R-Baum: (m, M) - Jeder Knoten außer der Wurzel enthält zwischen m M/2 und M Einträgen • Die Wurzel hat mindestens zwei Einträge sofern sie kein Blattknoten ist Beachte: • Rechtecke können sich überlappen • Struktur des R-Baums hängt von Reihenfolge des Einfügens ab • Jedes Paar (R,O) kommt genau einmal vor • R kann mehrere umschließenden Rechtecke schneiden 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R-Baum ...als solcher 01 R11 15 16 02 03 R15 07 R13 04 05 R12 11 12 R16 08 R14 09 10 06 13 14 01 02 03 04 06 09 05 07 08 10 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R-Baum Einfügen • • • Ausgangspunkt: Einfügen eines neuen Knotens in einen R-Baum Problem hier: an welche Stelle wird (R,O) eingefügt? – Durchlaufe den R-Baum mit der Wurzel als Ausgangspunkt – Wähle an jedem inneren Knoten den Teilbaum, der durch Einfügen von R minimal vergrößert würde – Füge (R,O) schließlich als Blatt ein – Beim Überlauf verfahre wie beim B-Baum Besonderheit gegenüber B-Baum: – Es gibt keine lineare Ordnung zwischen den Einträgen der Knoten – Verschiedene Strategien zum Spalten eines Knotens Animiertes Beispiel der Ordnung (2,3) 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nachteil des R-Baums R-Baum Strategien zum Spalten eines Knotens Minimierung der Gesamtfläche Minimierung des Durchschnitts 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R-Baum Punktsuche Welche (R,O) enthalten den Punkt P? • Beginne an der Wurzel • innere Knoten: Durchsuche jeden Sohnknoten der Paare (R,T), die P enthalten • Blattknoten: Suche alle (R,O), die P enthalten • Fertig! • Achtung: Ggf. muss in mehreren Teilbäumen gesucht werden! Animiertes Beispiel 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R-Baum Bereichssuche Welche (R,O) schneiden das Rechteck Q? • Beginne an der Wurzel • innere Knoten: Durchsuche jeden Sohnknoten der Paare (R,T), die Q schneiden • Blattknoten: Suche alle (R,O), die Q schneiden • Fertig! Animiertes Beispiel 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nachteil des R-Baums Nachteil des R-Baums • • • Um das richtige Blatt zu finden, sind meist mehrere Durchläufe erforderlich Dies gilt insbesondere dann, wenn die Suche erfolglos ist Abhilfe: R+-Baum 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums Alternative: Der R+-Baum • • • Alle inneren Rechtecke sind disjunkt Ein Objekt / umschließendes Rechteck kann in mehreren Blättern vorkommen Jedes Blatt repräsentiert den Teil von (R,O), der von dem Vaterknoten umschlossen wird 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R+-Baum Aufbau 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E A 34x 4 5 D E H 6 7 B D I B C D 8 9 E G F J 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums R+-Baum Aufbau 2 1 B C I D 1 2 A J F G E A 34x H 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums R+-Baum Aufbau 2 1 B 4 C I D A 3 1 2 3 J F G E 4 H A E A 34x 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums R+-Baum Aufbau 2 1 B 4 C I 5 A D 3 1 2 3 J F G E 4 5 H A E A 34x D E H 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 Nachteil des R-Baums R+-Baum Aufbau 6 2 1 B 4 C I 5 A D 3 1 2 3 J F G E 4 5 H A E A 34x D E H 6 B D I 11 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 Nachteil des R-Baums R+-Baum Aufbau 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F G E 4 5 H A E A 34x D E H 6 7 B D I B C D 12 13 14 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nachteil des R-Baums R+-Baum Aufbau 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F G E H 8 A E A 34x 4 5 D E H 6 7 B D I B C D 8 E G 15 16 17 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R+-Baum Aufbau 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E A 34x 4 5 D E H 6 7 B D I B C D 8 9 E G F J 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R+-Baum Aufbau 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E A 34x 4 5 D E H 6 7 B D I B C D 8 9 E G F J 18 Geoinformation III 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Nachteil des R-Baums R+-Baum Suche 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E A 6x 4 5 D E H 6 7 B D I B C D 8 9 E G F J 18