Unterstützung räumlicher Anfragen mit konventionellen Indexstrukturen Vortrag zum B-Seminar Jamshid Azizi [email protected] 07.06.2001 Gliederung Motivation Anwendung von B-/B*-Bäumen Vorstellung von Oracle8i Spatial Mehrdimensionale Indexstrukturen Multidimensionale Indexmethoden: R-Baum R*-Baum Z-Ordering Zusammenfassung 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 2 Einleitung: Anwendung von B-/B*-Bäumen (1) Definitionen und Fähigkeiten: Index und Cluster sind Instrumente, mit denen sich Abfragen beschleunigen lassen. B- und B*-Baum: eindimensionale Strukturen: Ein B-Baum speichert die Datensätze sortiert nach einem Schlüssel. Ein B-Baum beantwortet Punkt – und Bereichsanfragen sehr effizient. Eine Erweiterung des B-Baumes ist der B*-Baum, der die Daten ausschließlich in den Blättern ablegt. Dies reduziert die Höhe des Baumes. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 3 Einleitung: Anwendung von B-/B*-Bäumen (2) B*-Bäume ermöglichen außerdem einen effizienteren sequentiellen Scan auf den Blattknoten. Aufbau eines B-Baumes: 71 82 54 61 41 52 Wurzel 75 57 65 68 Knoten 72 74 75 79 84 V0 S1 V1 Datenseiten: 93 94 98 Blätter Indexseiten: 07.06.2001 91 97 D0 D1 Ds Dt Sn Vn Du Dv Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Dw Folie 4 Schematischer Aufbau eines B*-Baumes Index-Suche V0 R1 V1 R2 Sequentielle Suche S1 PD 1 Rn Vn frei Sj frei Dj N V0 verweist auf den teilbaum mit Schlüsseln kleiner oder gleich R1 Vi (i = 1, ..., n-1)verweist auf den teilbaum, dessen Schlüssel zwischen Ri und Ri+1 liegen. Vn verweis auf den teilmaum mit Schlüsseln größer als Rn. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 5 Beispiel 102 105 - 105 110 - 107 110 - 100 101 102 104 105 - 106 107 - 110 - Kurz 104 101 102 107 105 106 110 100 Firma Deutsche Untern.. Computer Courier... Morton Ag... Therm AG... Busy Software AG... Girgwerke AG... Bacher Elektro... Versicherung... Nehmen wir an, die WHERE-Klauser enthält eine Gleichung, z. B. KURZ =106 Oracle durchsucht den Baum von der Wurzel beginnend. Zu dem gegebenen Wert von KURZ wird jeweils der Knoten gesucht, der den kleinsten Indexwert enthält, der größer oder gleich dem Suchwert ist. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 6 Einleitung: Objekte und Operationen in einem Geo-Datenbanksystem Für geographische Datenbanksysteme sind B-Bäume und andere eindimensionale Indexstrukturen nicht geeignet. Neue Strukturen müssen flächige Geo-Objekte bezüglich ihrer Lage und Ausdehnung in der Ebene indizieren. Es wird eine konzeptionelle Architektur zur Objektspeicherung und Anfragebearbeitung in Geo-Datenbanksystemen erarbeitet. Für die Entwicklung einer solchen Architektur sind die Arten der gewünschten Operationen von entscheidender Bedeutung. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 7 Oracle8i Spatial Oracle 8i Spatial ermöglicht das Mischen von GIS- (Geographisches Informationssystem) und MIS- (Management Informationssystem) Datenspeichern und die Implementierung einer einheitlichen Datenmanagementstruktur für alle Daten des Unternehmens. Oracle8i Spatial unterstützt 3 einfache geometrische Typen Punkt Linie N-Punkt Polygon und Geometrien aus einer Sammlung dieser 3 Typen Räumliche Indizierung: Ein Index muss in der Lage sein, effizient Fragen abzuarbeiten und Objekte in einem Datenraum zu finden, die einen Anfrageraum überlappen. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 8 Räumliche Zugriffsstrukturen (1) Traditionelle Zugriffsstrukturen sind für die Verwaltung von geometrischen Daten nicht uneingeschränkt geeignet: Räumliche Zugriffsstrukturen (RZS) sollen geometrische Selektionen und Kombinationen unterstützen. Probleme bei komplexen realen geometrischen Objekten: Approximation der Geo-Objekte zur effizienteren Bearbeitung (Erstellung eines einfachen geometrischen Schlüssels) Verbesserung des Verhältnisses zwischen erforderlichem Speicherplatz und Zugriffsgeschwindigkeit 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 9 Räumliche Zugriffsstrukturen (2) Lösung: Man bedient sich räumlicher Anfragemethoden, die den Datenraum in Regionen aufteilen, welche einzelnen Seiten im Sekundärspeicher entsprechen. Eine Möglichkeit ist die Umschließung von Objekte mit Rechtecken. Zugriffsstruktur ... (MUR,, ...) (MUR,; ...) ... (EB) Die vereinfachten Geo-Objekte (Approximationen) werden gemeinsam abgespeichert und mit einem minimal umgebenden achsenparallelen Rechteck (MUR) umschrieben. Verweis auf die exakte Beschreibung (EB) des Geo-Objektes 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 10 Räumliche Zugriffsstrukturen (3) Vorteil: Die Komplexität wird auf Parameter von Punkten reduziert, die das Rechteck begrenzen (kompakte Repräsentation). Nachteile: Möglichkeit der Existenz einer nicht zum Objekt gehörenden Region innerhalb des Rechteckes Auswirkung auf Genauigkeit und Anzahl der vom Indexierungsschritt generierten Kandidaten Zielstellung: Notwendigkeit der Suche nach einer möglichst kompakten Darstellung, um eine gute Approximation zu generieren. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 11 Verschiedene Möglichkeiten der Approximation Beispiele für Approximationsmöglichkeiten: konvexe Hülle minimales konvexes Fünfeck minimales konvexes Viereck rotiertes umschließendes Rechteck Erhöhung der Genauigkeit der Approximationen mit steigender Anzahl der Ecken bei gleichzeitigem Anstieg der Anzahl zu speichernder Parameter Folgen: Komplizierung der Indexierung, Verminderung der Effizienz des Filterungsschrittes der Objekte optimaler Mittelweg in den meisten Fällen: das konvexe Fünfeck 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 12 Anforderungen (1) Auswahl der wichtigsten Grundanfragen, die vom Datenbanksystem unterstützt werden und die allen gestellten Anforderungen entsprechen: Punktanfrage: Gegeben: Punkt P Gesucht: In welchem Land befindet sich dieser Punkt? Fensteranfrage: Gegeben: Fenster W Gesucht: Finde alle MUR’s in der Datenbank, wo W Obj.MUR gilt. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 13 Anforderungen (2) Regionsuche: Gegeben: EPL* Gesucht: Finde alle MUR’s in der Datenbank, wo EPl* MUR Beispiel: Was für Länder/Landschaftsgebiete liegen komplett/teilweise in diesem Bereich ? 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 14 multidimensionalen Indexmethoden Das Verwalten von Rechtecken in Datenstrukturen ist schwieriger als bei Punkten, da erstere normalerweise nicht in eine einzelne Partition hineinfallen, sondern die Partitionsgrenzen diese Rechtecke schneiden können. Y 3 Gruppen (Seiten) A5 A4 A1 A6 A3 A5 A4 A2 A1 A3 A6 A2 X Drei vorgeschlagenen Lösungen für diese Problematik: R-Baum R*-Baum X-Baum 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 15 Struktur des R-Baumes (1) Eine mehrdimensionale Datenbank besteht aus einer Sammlung von Tupeln, die räumliche Objekte repräsentieren. Die Blätter in einem R-Baum enthalten Index-Einträge der Form: (MUR, Zeiger auf Datenobjekt) das kleinste n-dimensionale Rechteck die Adresse des Objektes I = (I0, I1, ..., In-1) die Anzahl der Dimensionen Durch Ii wird ein geschlossenes Intervall [a, b] bezeichnet. Es beschreibt die Ausdehnung des Objektes entlang der Dimension i. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 16 Struktur des R-Baumes (2) Knoten in einem R-Baum enthalten Index-Einträge der Form: (MUR, Zeiger auf Nachfolger) die Adresse des Nachfolgerknotens (Sohnes) dieses Eintrages Beispiel: Der Umriss von Deutschland als minimal umschreibende Rechteck (MUR) 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 17 Struktur des R-Baumes (3) Deutsche Bundesländer und ihre Umwandlung in MURs für einen R-Baum mit drei inneren Knoten (West, Ost und Süd). Deutschland Ost West Danach wird zu jedem Bundesland sein MUR erstellt . Zum Schluss werden diese MURs zu Gruppen zusammengefasst Süd 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 18 Struktur des R-Baumes (4) Resultierender R-Baum: Deutschland West SH. NS. NW. He. Th. RP. Sa. Süd Ost BW. Ba. MV. Br. Be. SA. Sach. Jedes Kästchen entspricht einem Eintrag eines Knotens. Jeder dieser Einträge enthält dabei einen Zeiger auf den Nachfolgerknoten (durch einen Pfeil dargestellt) Die größtmögliche Höhe eines R-Baumes: Anzahl der Datenelemente log m N -1 minimale Anzahl der Einträge pro Knoten 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 19 Such-Algorithmus des R-Baumes Deutschland Der Suchalgorithmus ist ein rekursiver Algorithmus. Das Ergebnis der Suche sind alle Datenobjekte, die sich mit der Suchregion schneiden. Suchpunkt: Ost West (Mainz ) Deutschland Deutschland Süd West SH. NS. NW. He. He. 07.06.2001 Th. RP. Sa. Süd Süd BW. Ba. BW. Ost MV. Br. Be. SA. Sach. Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 20 Einfüge-Algorithmus des R-Baumes Für einen neuen Indexeintrag in den Baum: Suche nach einem geeigneten Blatt Der neue Indexeintrag wird (inklusive des Zeigers auf das Datenobjekt) in das so gefundene Blatt eingefügt. Das bestehende Blatt muss in zwei neue Blätter aufgespalten werden (bei Overflow). Während des Einfügens werden die umschreibenden Rechtecke der Knoten angepasst. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 21 Beispiel B A f d e A B k g o h m j i n d e C f l g C h i j k l h o o m i j n k P B2 C A B1 d e 07.06.2001 f g h o i j k Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> l m n Folie 22 Entfernen Um ein Datenobjekt und den zugehörigen Indexeintrag zu löschen: Suche im Baum nach einem Blatt, das den Eintrag enthält. Es werden alle Knoten (bzw. auch das Blatt) entfernt, die weniger als m Einträge besitzen. Alle so entfernten Knoten werden einer Menge R zugewiesen. Danach werden alle Knoten aus der Menge R wieder in den Baum eingefügt. Die Einfügung der Einträge von eliminierten Blättern erfolgt mit dem schon bekannten Einfüge-Algorithmus. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 23 R*-Baum R*-Baum stellt Verbesserungen und Erweiterungen des R-Baum dar. Bisher (R-Baum) wurde nur der Parameter Fläche benutzt, um einen überfüllten Knoten aufzuteilen und einen geeigneten Knoten zum Einfügen eines neuen Objektes zu finden. Der Einfüge-Algorithmus des R*-Baumes verwendet neben der Fläche auch noch den Parameter Überlappung. Die Überlappung von MURs eines Knotens soll minimal sein, da dadurch die Anzahl der Pfade, die verfolgt werden müssen, verringert wird. p Überlappung eines Knotens:= area ( E .MUR E .MUR) j -1, j k k j , 1 k p seien E1, ..., Ep die Einträge des aktuellen Knotens 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 24 Z-Ordering (Motivation) Um räumliche Indexstrukturen in kommerzielle Datenbankmanagementsysteme (DBMS) zu integrieren, sind herkömmliche relationale Datenbanken nicht ausreichend funktionsfähig. um räumliche Attribute innerhalb der Datenbank zu speichern, ist die Datenbank in dem relationalen Modell abzubilden. Eine frühe Lösung für das Management von multidimensionalen Daten in Beziehung basiert auf raumfüllenden Kurven. Abstrakt Raumfüllende Kurven bilden Punkte eines multidimensionalen Raumes in eindimensionalen Werten ab. Dabei werden Distanzen bewahrt, d.h., wenn zwei Punkte im multidimensionalen Raum eng beieinander liegen, liegen sie auch im eindimensionalen Raum eng beieinander. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 25 Z-Ordering (1) Die Suche nach übereinstimmenden Objekten ist normalerweise begrenzt auf ein bestimmtes Gebiet in dem eingebetteten Raum. Konzept: Das Konzept der raumfüllenden Kurven wurde erweitert, um mit Polygonen arbeiten zu können. Idee: Diese Idee basiert auf der Zerlegung der Polygone entsprechend der raumfüllenden Kurve. Nachteil: Ein Nachteil dieser Methode ist ihre Empfindlichkeit gegenüber einer passenden Auswahl der Auflösungsparameter. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 26 Z-Ordering (2) Z-Ordering basiert auf der rekursive Zerlegung des Datenraumes, wie er von der raumfüllenden Kurve zur Verfügung gestellt wird. Algorithmus: Z-Ordering in Punktdatenbanksystemen : Der Algorithmus teilt das Einheitsquadrat in vier Quadranten von gleicher Größe auf, welche kanonisch nummeriert sind von null bis drei. 23 22 2 212 212 20 210 21211 0 3 1 Dann wird dieser Quadrant in seine vier unter Quadranten geteilt. Das wird rekursiv wiederholt bis eine bestimmte Grundauflösung erreicht wurde. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 27 Z-Ordering (3) Definitionen: „g“ ist das Auflösungsniveau (die feste Zahl der rekursiven Wiederholung). „g Ziffern“ ist der Anordnungsschlüssell für die Punkte (Quadrantenreihenfolge). Zwischenergebnisse: Die Interpretation von Reihenfolgen als Ziffern erleichtert ihr Management im Index. Die Punkte werden in einer reihenfolgeerhaltenden und eindimensionalen Indexstruktur wie dem B*-Baum gesteuert. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 28 Eine Einfache Methode für Polygondatenbanken Um das Konzept des Z-Ordering für das Management von Objekten mit räumlicher Ausdehnung (Polygonen) auszudehnen, müssen wir das Problem betrachten, dass ein gegebenes Polygon sich mit vielen Zellen schneiden. Eine einfache Methode: jede Zelle, welche durch das Objekt bedeckt wird, in der Datenbank zu speichern. Nachteil: Ein riesiger Speicheraufwand 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 29 Ein-Wert-Approximation Algorithmus: Die Objekte werden an das kleinste Element, welches das vollständige Objekt einschließt angenähert. Es wird der gegenwärtige Datenraum in vier Quadranten aufgeteilt. Wenn genau ein Quadrant durch das Objekt geschnitten wird, fährt man rekursiv mit diesem Quadranten fort. Wenn mehr als ein Quadrant geschnitten wird, dann benutzt man die Quadrantenreihenfolge, welche zu diesem Punkt als ein Ordnungsschlüssel gebracht wurde. 22 2 23 32 33 30 3 31 03 12 13 0 01 10 1 11 20 02 00 21 Diese Interpretation wird als ein numerischer Wert in einer reihenfolgeerhaltenden und eindimensionalen Indexstruktur wie dem B*-Baum gesteuert. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 30 Alternative Techniken Verschiedene Verbesserung des Z-Orderingkonzeptes: a) Hilbert b) Peano(Z-Order) c) Gray-Codes d) Z-Mirror e) U-Index Man nutzt die Peano/Morton Kurve, weil sie einfacher zu berechen ist. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 31 SQL Unterstützung für räumliche Daten Das herkömmliche SQL wurde so erweitert, dass es in der Lage ist, den Zugang zu neuen Datentypen zu unterstützen. Im Fall von Oracle8i wird SQL auf zwei Wegen erweitert: SQL kann auch benutzt werden, um Objekte räumlichen Typs zu bestimmen und zu schaffen. SQL kann auch benutzt werden, um DML zu folgen, und auch in Ergänzung die räumlichen Daten mit Hilfe räumlicher Funktionen abzufragen. Beispiel: SELECT A.feature FROM parks A, rivers B WHERE sdo_geom.relate(A.geometry, B.geometry, ‘OVERLAP’) =TRUE; 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 32 Oracle 8i Spatial Data Cartdridge Die Oracle8i räumliche cartdridge erlaubt dem Nutzer den räumlichen Index und die Anfragen an die räumlichen Daten zu speichern. Die räumlichen Daten sind als ein Objekttyp SDO-GEOMETRY modelliert. Ein räumlicher Index kann auf einer SDO- Geometrie Spalte aufgebaut werden. Der räumliche Indextyp unterstützt einen Operator, der als „Overlaps“ bezeichnet wird. Vor Oracle8i mußte der Benutzer explizit das PPISQL Paket aufrufen, um einen Index zu kreieren oder den räumlichen Index zu pflegen. Nachteil: Der Anfragealgorithmus, der geschützt (geregelt) sein kann, muss dem Nutzer erklärt werden, die innere Logik muss also ein extra SQL Statement ausgedrückt werden. 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 33 Beispiel Vor Oracle8i wird z.B. eine räumliche Anfrage wie folgt formuliert: SELECT DISTINCT r.gid, p.gid FROM roads_sdoindex r, parks_sdoindex p WHERE (r.grpcode = p.grpcode) AND (r.sdo_code BETWEEN p.sdo_code AND p.sdo_maxcode OR p.sdo_code BETWEEN r.sdo_code AND r.sdo_maxcode) 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 34 Zusammenfassung Darstellung der Anwendung von B/B*-Bäumen in traditionellen Datenbanksystemen Objekte, Operationen, Anforderungen im traditionellen Datenbanksystem Fähigkeiten von Oracle8i Spatial zur Unterstützung von 3 einfachen geometrischen Typen Räumliche Zugriffsstrukturen und Möglichkeiten zur Approximation Strukturen und Algorithmen von R-Baum und R*-Baum Z-Ordering SQL Unterstützung für räumliche Daten 07.06.2001 Jamshid Azizi: <Fortgeschrittene Themen der Datenbanken und GIS> Folie 35