- Überblick - Motivation GIS G - IS Geo • erdbezogen • raumbezogen Informationssystem System zum ‚Handling‘ von Informationen = Daten System zum Umgang mit erd-/ raumbezogenen Daten Motivation Informationssystem Erfassung Speicherung Verarbeitung Aktualisierung • dauerhaft • range queries • platzsparend • nearest neighbourhood queries • strukturiert • für primären und sekundären Speicher • statistische Analysen Visualisierung • Einfügen • Ändern • Löschen Basis: raumbezogene / erdbezogene Daten Motivation raumbezogene / erdbezogene Daten: Beispiel Höhendaten: • unregelmäßig • unregelmäßig und • umfangreich • umfangreich • dynamisch Beispiel Grenzverhältnisse Anmerkung: • dynamisch und Die Eigenschaften hängen natürlich von dem Maßstab ab, in dem sie betrachtet werden... • umfangreich Motivation Beispiel Verknüpfung der Telefonnummern aller Einwohner einer Stadt mit den Standorten der Anschlüsse... Müller Meier Becker Schäfer ... 5123122 4564123 54112 378122 „Suche in einem Stadtviertel alle Telefonnummern beginnend mit 5 und endend mit 3.“ Dauert mit einem Telefonbuch und einem Stadtplan mehrere Tage... Motivation Folgerungen Für das Handling von Geo-Daten mit den Zielsetzungen eines GIS sind Verfahren notwendig, die 1. den Zugriff auf die Daten und generell die Speicherung der Daten in den verschiedenen Speichern erlauben, und 2. diese Aufgaben schnell und effizient ausführen, um die Interaktivität zu gewährleisten. Respektive... Es gilt auch eine Lösung für die effiziente Speicherung von mehrdimensionalen Daten im eindimensionalen Speicher zu finden, da dies immensen Einfluss auf die Funktionalität eines GIS hat... Raumbezogene Zugriffsverfahren Zielsetzungen Unterstützung schnellen Zugriffs auf raumbezogene Daten, sowie effiziente Speicherung dieser für z.B. ... • range queries „Finde alle gespeicherten Objekte, die in den definierten Suchbereich passen“ • nearest neighbourhood queries „Finde die Objekte mit der minimalen Entfernung zu dem gegebenen Punkt“ • raumbezogene Analysen/ Operationen z.B. map overlay + = Raumbezogene Zugriffsverfahren Aus diesen Überlegungen resultieren einige Notwendige Eigenschaften „Spatial Indexing“ • Strukturierung der Daten mittels bestimmter Kriterien • Vermeidung des Zugriffs auf jedes einzelne Element der immensen Datenmengen bei den verschiedenen Datenbankanfragen (queries), um die geforderte Interaktivität zu gewährleisten. sonst... Zzzzz..Zzz zz..Zzzz... Raumbezogene Zugriffsverfahren Notwendige Eigenschaften „Clustering“ • Aufteilung der Daten gemäß ihrer Nutzungshäufigkeit und/oder Nachbarschaftsverhältnisse Lage der Daten im Speicher ähnelt der ‚Lage‘ in der Realität • Vermeidung der unkontrollierten und unsortierten, „wilden“ Speicherung, da die Daten aufgrund des Umfanges auch im langsamen Sekundärspeicher gespeichert werden müssen Veranschaulichung: 10.000.000 Zugriffe... Dauer: 0,01 s Dauer: 10 s Raumbezogene Zugriffsverfahren Platz und Zeit sind knappe Güter Exkurs / Wiederholung: Bäume Auffrischung des Inhalts von Diskrete Mathematik II... Freier Baum Graph ohne Zyklen mit nur einer Komponente Baum - Tree Freier Baum, von dem ein Knoten als Wurzel ausgezeichnet ist Binärbaum Baum, dessen Knoten maximal 2 Nachfolger haben ausgeglichen, falls sich in jedem Knoten die Anzahl der Knoten im linken und rechten Teilbaum um höchstens 1 unterscheiden Exkurs / Wiederholung: Bäume Suchbaum – Trie (von engl. reTRIEval) Jeder Knoten wird mit einem Schlüssel belegt, in der Weise, daß der linke Innerer Nachfolger und dessen Knoten Nachfolgeknoten kleinere Schlüssel, und der rechte Nachfolgeknoten mit allen 4 Nachfolgeknoten größere Schlüssel haben. äußerer Knoten/ Blatt 2 Wurzel 9 17 7 13 23 Zugriffsverfahren kd – Tree • Speicherung von k-dimensionalen Punktobjekten (hier beispielhaft zwei Dimensionen) • Die gesamte Region wird durch die Wurzel referenziert • Jeder innere Knoten enthält einen Punkt und referenziert eine rechteckige Region, die wiederrum in zwei rechteckige Regionen unterteilt wird. Auf geraden Höhen des Baumes geschieht dies durch die y-Koordinate; auf Ungeraden durch die x-Koordinate Zugriffsverfahren kd – Tree • Jeder neue Punkt führt zu einem neuen inneren Knoten • Operation ‚Einfügen‘ sehr simpel, dafür führen ‚Löschen‘ und ‚Ändern‘ zu großen Problemen • Die Struktur des Baumes ist in hohem Maße von der Reihenfolge des Einfügens der Punkte abhängig • Baum ist unausgeglichen... im ‚worst case‘: pro Punkt eine neue Ebene! Zugriffsverfahren adaptive kd – Tree • Wahl der Punkte, die ein Gebiet referenzieren, nicht mehr auf gegebene Punktmenge beschränkt • Erzeugung von gleiche Punktmengen enthaltender Regionen Baum ist ausgeglichen • Neues Problem: dynamisches Handling und gleichzeitige Ausgleichung des Baumes sehr schwierig • Leistungsfähigkeit (bei 2 Dimensionen) • build time: O( n log(n) ) • range query: O( sqrt(n) + Anzahl gefundener Punkte) Zugriffsverfahren kdB – Tree • Kombination aus kD – Tree und B – Tree • Ziele... • Effizienz für Ein-/Ausgabe bestimmt durch B – Tree • Effizienz für mehrdimensionale Suchanfragen bestimmt duch kD – Tree • Interne Knoten enthalten mehr als ein Datenobjekt; der maximale Wert wird durch die ‚bucket-size‘ bestimmt • ‚bucket-size‘ – Größenangabe, die angibt, wie viele Datenobjekte maximal in eine ‚page‘ (=Seite) des Speichers passen Minimierung der Anzahl der Speicherzugriffe, sowie Geschwindigkeitsvorteil • Ständige Ausbalancierung des Baumes • Problem: ungeeignet für räumlich ausgedehnte Objekte GIS Zugriffsverfahren BSP – Tree (Binary Space Partitioning Tree) • Nutzung von Liniensegmenten von Polylinien und deren Ecken zur rekursiven Unterteilung des Raumes (nicht rechteckig) A links B D1 A B rechts C C D D2 D1 D2 • Gut geeignet für raumbezogene Operationen, jedoch nur für beziehungslose Liniensegmente für GIS noch Erweiterung nötig... Zugriffsverfahren multi object BSP – Tree • Erweiterung der BSP – Tree struktur Speicherung der zu einem Objekt gehörigen Liniensegmenten mit explizieter Referenzierung in den Blättern R D R R • Problem: Objekte sind über mehrere Äste verteilt • Vorteil: effiziente raumbezogene Operationen möglich D Zugriffsverfahren Point Quadtree • Unterteilung des Datenraums (Punktraums) in Quadranten mit den vorhandenen Punkten als Zentrum • Jeder Knoten hat vier Nachfolger (NW,NO,SW,SO) und enthält selber die Punktkoordinaten des Zentrums, sowie evtl. weitere Informationen NW SO NO SW Zugriffsverfahren Point Quadtree • Baumstruktur ist von der Reihenfolge des Einfügens der Punkte abhängig … nicht eindeutig • Entstehung von unausgeglichenen Bäumen – ‘worst case’ … nur ein Ast • Operation Einfügen ist trivial; Operationen Ändern und Löschen können jedoch die Struktur des Baumes radikal verändern ungeeignet für dynamische Daten, jedoch geeignet z.B. für die Speicherung von Rasterdaten • Leistungsfähigkeit: • build time: O( n log(n) ) • point query: O( log(n) ) Zugriffsverfahren Region Quadtree • Speicherung einer Rasterapproximation eines Polygons Rekursive Unterteilung des relevanten Bereichs in Quadrate, bis jedes einzelne Quadrat entweder komplett innerhalb oder ausserhalb liegt, oder die maxiamle Auflösung erreicht wurde • Problem: nur näherungsweise / Approximation • Prinzip für das Speichern von Rasterinformationen geeignet... Zugriffsverfahren Fixed Grid • Unterteilung des Raumes in gleich große Zellen (regelmäßiges Raster) • Alle Punkte, die in einer Zelle liegen, werden gemeinsam im Speicher abgelegt gute Performance für range queries • großer Nachteil: es wird auch Speicherplatz für leere Zellen verbraucht • Ferner: Das fixed Grid ist unsensibel gegenüber unregelmäßigen Datenverteilungen Zugriffsverfahren Grid File • Erweiterung des fixed grid • Basisidee: Zuordnung der Datenblöcke zu den physikalischen Speichereinheiten (buckets) des Speichermediums • Durch Einführung des ‚grid-directory‘ wird die Unterteilung abhängig von der Punktverteilung realisiert • v.a. geeignet für dynamische Daten, da Einfügen und Löschen, sowie Verändern sehr einfach sind... y A B C B Grid directory x Zugriffsverfahren R - Tree • Gruppierung der Objekte in einer hierarchischen Struktur auf Grundlage ihrer Lage • Verwendung der sog. ‚bounding boxes‘ zur Gruppierung – minimale umschließende Rechtecke (MBR‘s) • Inhalt der Blätter: Zeiger auf die kompletten Objekte, sowie Angabe des MBR‘s • Inhalt der internen Knoten: Zeiger auf den Nachfolger und Angabe dessen MBR‘s • ‚branching factor‘: maximale Anzahl der Einträge pro Knoten; abhängig von der ‚page size‘ ... Performancesteigerung • Vorteil: Objekte werden komplett referenziert und nicht auseinandergenommen Zugriffsverfahren R - Tree branching factor 4 D A E B G F H I K A B C J C D E F G H I J K Zusammenfassung Verfahren Vorteile Nachteile Geeignet für kd - Tree Einfache Struktur Nicht eindeutig, Unausgeglichen Statische Punktmenge adaptive kd - Tree Schnelle Suche Komplexe Struktur mäßig dynamische Punktmengen kdB - Tree Speicherorientiert, schnell, dynamisch Nicht für räumliche Objekte geeignet Dynamische Punktmengen Datentauglichkeit: Rasterdaten Punktdaten Objektdaten Zusammenfassung Verfahren Vorteile Nachteile Geeignet für BSP – Tree Gutes Handling raumbezogener Operationen Nur für beziehungslose Liniensegmente Beziehungslose Raumdaten Multi object BSP Tree Effiziente raumbezogene Operationen Objekte verteilen sich über mehrere Äste - Komplexität GIS Datentauglichkeit: Rasterdaten Punktdaten Objektdaten Zusammenfassung Verfahren Vorteile Nachteile Geeignet für Point Quadtree Einfache Struktur Nicht eindeutig, unausgeglichen, nicht dynamisch Statische Rasterdaten Region Quadtree Einfache Approximation von ‚ausgedehnten‘ Objekten nur näherungsweise Beschreibung statische Rasterdaten Fixed Grid Einfache Struktur, intelligente Speichernutzung speicherintensiv gleichmäßig verteilte Punktdaten Grid File Dynamisches Datenhandling sehr einfach, einfache Struktur, intelligente Speichernutzung primär für Punktdaten vorgesehen dynamische, mehrdimensionale Punktdaten Rasterdaten Punktdaten Objektdaten Zusammenfassung Verfahren Vorteile Nachteile Geeignet für R – Tree komplette Objektreferenzierung Intelligente Speichernutzung Ausgeglichenheit abhängig von Einfügereihenfolge GIS Rasterdaten Punktdaten Objektdaten