Seminar: mobileGIS Einführung zu Geodatenbanken Ralph Zeumann Betreuer: Dipl.-Inform. Florian Wenzel Zusammenfassung Geodatenbanken sind spezielle Datenbank-Konzepte, die für den Einsatz innerhalb eines sogenannten Geographic Information System, kurz GIS, entwickelt wurden. Um ein ezientes Arbeiten mit dem GIS zu ermöglichen, muss die Modellierung einer Geodatenbank durchdacht sein. Da normale Datenbanken nur in geringem Maÿe zur Speicherung geographischer Daten geeignet sind, erhärtet sich der Wunsch nach spezialisierten Systemen. Dem Konzept der Geodatenbanken liegt die Idee zu Grunde, dass geographische Phänomene in speziell dafür entwickelten Datentypen im System gespeichert werden. Neben diesen angepassten Datentypen, müssen aber auch die Operationen zur Verwaltung der Daten angepasst werden. Hierzu gehören neben den bekannten Anfragen auch gesonderte Algorithmen, beispielsweise zur Berechnung der Fläche eines Landes, sowie Strategien zur Strukturierung der Datensätze. 1 Einführung zu GIS und Geodatenbanken Geoinformationssysteme, kurz GIS genannt, sind Systeme zur Verwaltung und Nutzung von geographischen Daten. Die Systeme bestehen hierbei meist aus einer Eingabe-/Ausgabemaske, einer Logikschicht mit Funktionen, sowie eines Datenbank-Back-Ends zur Speicherung der Daten. Im Gegensatz zu herkömmlicher Software spielt vor allem die Visualisierung der Daten eine enorme Rolle. Da ein GIS nur mit einem groÿen Vorrat an geographischen Daten ezient arbeiten kann, müssen die hinterlegten Daten gut organisiert sein. Hieraus resultierend werden an die Persitenzschicht enorme Ansprüche gestellt, die eine gesonderte Datenbankform - die sogenannte Geodatenbank - fordern. Mit Hilfe dieses erweiterten Datenbankmodells ist es möglich, die Funktionalität eines GIS entscheidend zu verbessern. 2 Nutzer von GIS und Geodatenbanken Spätestens mit der Veröentlichung von Google Earth hat die allgemeine Bevölkerung einen Einblick in ein Sortiment riesiger Geodatenbanken bekommen. Mit Hilfe dieser Software lassen sich unter anderem Städte auf der Weltkugel, sowie damit verknüpfte Daten, anzeigen. Besonders beeindruckend ist hierbei die graphische Datenaufbereitung, die an einen handelsüblichen Globus angelehnt ist. 2 Seminar: mobileGIS Aber Google Earth ist nicht die einzige Software im Spektrum der GIS. Der Nutzerkreis dieser (eigentlich speziell für Geographen) entwickelten Systeme ist gröÿer. Angefangen bei Geographen, Stadtplanern, Astrologen, Militäreinrichtungen und Routenplanern, lässt sich die Liste der Nutzer endlos weiterführen. Im mobilen Zeitalter stellen vor allem Smartphone-User einen nicht unerheblichen Teil an Nutzern dar. Da die meisten Smartphones über eine GPS- und Internetanbindung verfügen, nutzen viele Besitzer das groÿe Angebot an geographischen Daten um ihren Alltag zu erleichtern. Ersichtlich wird dieses Verhalten beispielsweise bei der Suche nach der nächsten Bushaltestelle, mit Hilfe des Smartphones. Eine weitere amüsante Sparte innerhalb der Verwendung geographischer Daten stellt das Geocaching dar. Bei diesem Spiel/Hobby werden mit Hilfe von GPSDaten Schnitzeljagden weltweit veranstaltet. 3 Datentypen in Geodatenbanken Bei der Erstellung eines ezienten GIS spielt die zugrunde liegende Datenverwaltung eine erhebliche Rolle. Da Geoinformationssysteme spezialisierte Systeme sind, sollte die Datenhaltung ebenfalls auf die geographische Daten abgestimmt sein. Die gröÿte Abgrenzung von normalen Datenbanken (beispielsweise einer MySqlDatenbank) stellt die Verwendung von gesonderten Datentypen dar. Hierbei werden die gebräuchlichen Datentypen um zusätzliche Strukturen zur Beschreibung von geographischen Phänomenen erweitert. Im Folgenden wird erläutert, anhand welcher Kriterien geographische Objekte kategorisiert werden können. Anschlieÿend wird die Modellierung spezieller Datentypen beschrieben. 3.1 Geographische Phänomene Vor der Modellierung einer Geodatenbank müssen die Geodaten analysiert werden. Um ein geographisches Objekt genau zu beschreiben, lässt sich dieses in mehrere Aspekte unterteilen. Hierzu gehört beispielsweise eine Einteilung des Objektes in: Name des Phänomens eine erdkundliche Kategorie: z. B. Stadt, Land, Fluss die Form des Objektes eine Gröÿe: z. B. Volumenangaben bei der Beschreibung eines unerschlossenen Ölfeldes oder Flächenangaben bei der Beschreibung eines Sees eine räumliche/örtliche Positionierung des Objektes. Beispielsweise mit Hilfe von Höhenangaben sowie Längen- und Breitengraden die Lage des Objektes zu anderen Objekten Einführung zu Geodatenbanken 3 Neben der Kategorisierung des einzelnen Phänomens, spielt die geographische Erfassung eine entscheidende Rolle. Die bekannteste Datenerfassung erfolgt mit Hilfe von Kartenmaterial (Landkarten, Satellitenaufnahmen). Die dadurch erfassten Daten werden Rasterdaten genannt. Bei dieser Methode wird die zugrundeliegende Karte in viele Segmente eingeteilt, ein Objekt wird durch seine Lage in einem oder mehreren Segmenten beschrieben. Je nach Rastergröÿe lassen sich unterschiedlich genaue Ergebnisse erzielen. Eine andere Möglichkeit stellt die Verwendung eines Koordinatensystems dar. Je nach Wahl des Systems (z.B. kartesisches Koordinatensystem, Polarkoordinaten etc.) lassen sich geographische Objekte auch mit Hilfe einfacher geometrischer Bezeichnungen beschreiben. So lässt sich eine Stadt auf einer Landkarte, entsprechend des Kartenmaÿstabes, sowohl als Punkt, Kreis oder Polygon bezeichnen. Aus den beschriebenen Aspekten ist ersichtlich, dass neben bekannten Datentypen, exemplarisch der Datentyp String, ein geographisches Objekt besser durch angepasste Datentypen beschrieben wird. 3.2 Modellierung von Datentypen Nach den Überlegungen des vorhergehenden Abschnittes, folgt nun der nächste Schritt bei der Erstellung einer Geodatenbank: die Modellierung spezieller Datentypen, die zu einer ezienten Nutzung des GIS beitragen. Diese speziellen Datentypen werden als Abstract Data Type, kurz ADT, sowie Spatial Data Type, kurz SDT, bezeichnet. Ein ADT ist eine komplexe Datenstruktur, die vom Softwareentwickler eigens zur Beschreibung eines gesonderten Sachverhaltes erstellt werden kann. Hierbei beinhalten die ADTs in Bezug auf Geodatenbanken meist SDTs zur exakteren Beschreibung geographischer Phänomene. Mit Hilfe der SDTs, werden neue Basis-Datentypen, wie beispielsweise Integer, erstellt, um eine einfachere und anschaulichere Datenverwaltung zu ermöglichen. Zu diesen SDT-Datentypen gehören: Point (zu dt. Punkt) zur Beschreibung eines geographischen Punktes. Städte können dadurch zum Beispiel auf einer Landkarte verzeichnet werden. Ein mögliche Beschreibung des Punktes kann hierbei durch Angabe von GPS-Koordinaten des Stadtzentrums erfolgen. Line (zu dt. Linie) zur Beschreibung einer Verbindung zwischen zwei Punkten. Bei geraden Linien sind die Koordinaten des Start- und Endpunktes ausreichend. Bei geschwungene/komplexere Linien, müssen weitere Zwischenpunkte angegeben werden. Dieser Datentyp wird zum Beispiel zur Beschreibung eines Flusses oder einer Straÿe auf einer Karte benötigt. Region (zu dt. Region) zur Beschreibung eines geographischen Gebiets. Soll beispielsweise Bayern auf einer Landkarte verzeichnet werden, können, ähnlich einem Polygon, Punkte zur Beschreibung der Fläche gespeichert werden. 4 Seminar: mobileGIS Weitere Datentypen Neben diesen einfachen geometrischen Objekten sind auch komplexere Datentypen denkbar. Exemplarisch sei hier die Beschreibung eines Gebietes mit Hilfe eines Kreises genannt. Hierbei könnte ein Datentyp RegionCircle zum Einsatz kommen, der aus einem Point mit zugehörigem Kreisradius besteht. 3.3 Beziehungen zwischen Daten Neben der Beschreibung eines erdkundlichen Merkmals spielt auch die Einordnung des Phänomens in Bezug auf andere Gegebenheiten eine groÿe Rolle. Unter diesen Aspekt fällt die Nachbarschaftsbeziehung zu anderen Objekte, die auch als Topologie bezeichnet wird. Da die Topologie, zum Beispiel bei der Ortswahl zum Bau eines neuen Sendemastes immens wichtig ist, muss die Geodatenbank ebenfalls geeignete Verfahren zur Berechnung von Lagebeziehungen bereitstellen. Mögliche Fälle werden in Abschnitt 4.2 erläutert. 4 Arbeitsweise von Geodatenbanken 4.1 Ein/Ausgabe von Daten Bei Datenbanken werden Daten mit Hilfe einer Query-Sprache in das System eingepegt. Meist reicht hierzu eine einfach gehaltene Eingabemaske aus, um die Daten zu verwalten. Die Ausgabe solcher Daten (wie sie zum Beispiel in einer normalen MySQL-Datenbank zum Einsatz kommen) erfolgt üblicherweise in Form einer Tabelle. Bei GIS/Geodatenbanken können je nach Verwendungszweck noch weitere Eingabemöglichkeiten sinnvoll sein. Nehmen wir exemplarisch an, ein Benutzer möchte Städte und Flüsse auf einer Landkarte markieren. Hierzu wäre eine graphische Oberäche mit entsprechenden Kartenausschnitt wünschenswert. Der Benutzer klickt auf die gewünschte Stelle, es erscheint eine Eingabemaske mit Namensfeld. Klickt der User auf Speichern werden automatisch die Koordinaten und der Namen in der Datenbank gespeichert. Bei der Speicherung eines Flusslaufes oder einer Region ist es intuitiv, wenn der User den Flussverlauf oder den Umriss mit gedrückter Maustaste nachfahren kann. Jedoch ist nicht nur eine graphische Eingabe, sondern auch eine graphische Ausgabe sinnvoll. Als Anwendungsbeispiel lässt sich eine Sprachenverteilung in Europa beschreiben. Soll beispielsweise visualisiert werden, in welchen Teilen Europas die Deutsche Sprache verbreitet ist, wäre eine Landkarte mit Ausdehnungsgrenze wünschenswert. Resultierend aus der Forderung nach graphischer Ein- und Ausgabe muss das GIS entsprechende Funktionen bereitstellen. Die Operationen müssen hierbei durch das System in datenbankveträgliche Befehle konvertiert werden. Eine Anpassung der Query-Sprache, sowie eine Erweiterung der vorhandenen Algorithmen ist unumgänglich. Einführung zu Geodatenbanken 4.2 5 Funktionen in Geodatenbanken Um geographische Daten in einer Datenbank zu verwalten, müssen viele Anpassungen in Bezug auf ein normales Datenbanksystem gemacht werden. Bevor man sich jedoch mit der Umsetzung innerhalb der Geodatenbank beschäftigt, sollte eine Liste der möglichen Anfragen an das System erstellt werden. Wichtig sind hierbei geographische Zusammenhänge der einzelnen Datensätze zueinander. Im folgenden Abschnitt werden die wichtigsten, beziehungsweise am häugsten benutzten Funktionen beschrieben. Einfache Anfragen sind Query-Anfrage wie sie auch in normalen Datenbank- systemen verwendet werden. Das Schema der Query ist meist wie folgt aufgebaut: mit Hilfe einer Auswahlklausel werden Daten aus einer Tabelle der Datenbank selektiert, die Daten werden eventuell noch durch Filterklauseln geltert (SELECTFROM-WHERE - Schema). Funktionen wie Wert-Vergleiche, Max/Min-Bestimmungen und ähnliche Filteroperationen fallen ebenfalls in die Kategorie Einfache Anfragen. Beispiel wörtlich: Finde alle Länder mit mehr als zwei Millionen Einwohner Beispiel in SQL: SELECT land FROM countries WHERE einwohnerzahl > 2000000; Spezielle Anfragen sind Datenbankanfragen die speziell auf geographische Daten zugeschnitten sind. Neben den Standardanfragen muss es dem User möglich sein, nicht nur einen einzelnen Datensatz alleine zu ltern, sondern auch Datensätze zu nden die mit anderen Datensätzen in Relation stehen. Hieraus lassen sich vorerst zwei unterschiedliche Kategorien bilden: die Schnittabfragen und Einschlussabfragen. Diese Funktionen werden meist bei der Verwendung des GIS benötigt. Man stelle sich beispielsweise vor, ein GIS-Nutzer möchte einen rechteckigen Kartenausschnitt vergröÿern. Die Datenbank muss nun alle Datensätze nden, die sich im neuen, vergröÿerten Kartenausschnitt benden. In Bezug auf diese Abfragekategorien spielen folgende Relationen eine Rolle: Schnitte: Liefere alle Datensätze, die die gegebene Region/Rechteck etc. schneiden (Gleichheit, Überlappung, Berührung, Einschluss) Einschlussabfrage: Liefere alle Datensätze, die vom gewählten Datensatz (z. B. einer Region) eingeschlossen werden, beziehungsweise, die der gewählte Datensatz selbst einschlieÿt Da geographische Merkmale meist zusätzlich noch in einer komplexeren Relation zu einander stehen, muss das System noch weitere Anfragen implementieren. Zu den erweiterten Anfragen zählen: 6 Seminar: mobileGIS Entfernungsberechung zwischen zwei Punkten (z.B. Wie weit liegen die Stadtzentren von Augsburg und München auseinander?) Nachbarschaftsanfrage (z.B. Welche Stadt liegt Augsburg am nächsten?) Kürzester Weg (z.B. bei der Planung von möglichen Routen einer Zugverbindung mit Dijkstra-Algorithmus) Längenberechnung (z.B. eines Flusslaufes) Flächenberechnung (z.B. die Gröÿe Deutschlands) Flächenschnitt Beispiel wörtlich Finde den längsten Fluss! Beispiel in SQL SELECT river FROM rivers WHERE MAX(LENGTH(startPoint, endPoint)); Verknüpfte Anfragen stellen eine Verknüpfung von Abfrage (Kombinationen der einfachen/speziellen Anfragen) dar. Bei der Bearbeitung der Abfrage spielt meist die Reihenfolge der verknüpften Teilanfragen eine entscheidende Rolle. Man stelle sich beispielsweise vor, es sollen alle Länder die von einer Frau regiert 2 werden, sowie eine Fläche gröÿer als 400.000 km besitzen, gefunden werden. Aus diesem Beispiel geht hervor, dass die Query, je nach Reihenfolge der zu bearbeitenden Teilabfragen, unterschiedliche lange Rechenzeiten benötigt. Je nach Anwendung, muss eine entsprechende Query-Optimierung vorgenommen werden. 4.3 Räumliche Indizes Um ein ezientes Arbeiten der Geodatenbank zu gewährleisten, wird eine räumliche Indizierung, sogenanntes Spatial Indexing, verwendet. Mit Hilfe dieser Indizierung kann man vor allem die häugen Select-Anfragen an die Datenbank optimieren. Die räumliche Indizierung ist hierbei in zwei grundlegende Schritte unterteilt: Approximation von geographischen Daten und Eingliederung der Daten in eine Indexstruktur. Hierbei wird jeder Datensatz approximiert und mit einem speziellen Schlüssel versehen. Der Schlüssel wird dabei mit Hilfe eines bestimmten Schemas in eine Indexstruktur eingegliedert. Wie aus der Theoretischen Informatik bekannt ist, eignen sich Baumstrukturen hervorragend zur ezienten Verwaltung vieler Schlüssel. Durch ihre Struktur kann die Anzahl an Operationen reduziert werden, da bei einer Anfrage nie der ganze Datensatz, sondern nur ein Teilbereich betrachtet werden muss. Dies führt zu einer erheblichen Performance-Steigerung des Gesamtsystems. In den folgenden Abschnitte werden die zwei bekanntesten Approximationsschemata erläutert. Nach diesen Methoden folgen drei Möglichkeiten, die Daten mit Hilfe von räumlichen Indizes zu strukturieren. Einführung zu Geodatenbanken Approximation von Daten 7 Bei der Verwaltung geographischer Gegebenhei- ten, hier exemplarisch bei der Auistung von Flächenbeschreibung anhand von Polygonzügen, kann eine riesige Menge an Daten entstehen. Sollen nun Anfragen ausgeführt werden, kommt es zu langen Rechenzeiten und somit zu Performanceverlust. Eine grundlegende Idee ist es, die Daten vorher mit Hilfe von Annäherungen, sogenannten Approximationen, zu vereinfachen. Auf den vereinfachten Daten werden anschlieÿend die gewünschten Operationen ausgeführt. Liefert die Operationen Resultate, wird auf das eigentliche, komplexere Objekt zurückgegrien. Diese Strategie wird auch als lter and rene-Strategie bezeichnet. Vorteil dieser Strategie ist es, dass bevor komplexe Rechenoperationen ausgeführt werden, erst eine Liste aller möglichen Kandidaten erstellt wird. Da die Anzahl möglicher Kandidaten reduziert wird, verringert sich auch die Anzahl der erforderlichen, komplexen Rechenoperationen. In den beiden folgenden Paragraphen werden zwei bekannte Approximationsarten vorgestellt. Bounding-Boxen Das bekannteste Beispiel einer gelungenen Approximation, ist die Verwendung von Bounding-Boxen. Bei diesem Verfahren wird ein Objekt durch ein minimales Rechteck beschrieben, in dem die zu approximierende Fläche gerade noch Platz hat. Im dreidimensionalen Raum wird zudem noch auf sogenannte Bounding Volumes zurückgegrien. Hierbei kommen dreidimensionale Hüllkörper, meist in Quader- oder Kugelform zum Einsatz. Mit Hilfe der erstellten Boxen, lassen sich nun Operationen auf den Daten vereinfacht ausführen. Ein simples Verfahren zur Bestimmung von Schnittächen stellt hierbei der Sweep-Algorithmus dar. Im genannten Algorithmus werden die Objekte meist nach einer Koordinatenachse sortiert und der Sweep arbeitet alle Einträge der Reihe nach durch. Exemplarisch stelle man sich eine mit Hilfe eines kartesischen Koordinatensystems eingeteilte Weltkarte vor. Jedes Land und jeder Kontinent sei mit Hilfe von Bounding-Boxen approximiert und gemäÿ seiner kleinsten x-Koordinate in die Gesamtreihenfolge der aufsteigenden x-Werte eingeordnet. Die gleiche Einordnung ist auch in Bezug auf die y-Werte nötig. Will ein Nutzer nun herausnden in welchem Kontinent ein bestimmtes Land liegt, vergleicht der Algorithmus die x-Werte des Landes mit denen der Kontinente. Schlieÿt die x-Startkoordinaten eines Kontinents, die des gewählten Landes ein, muss das Land zumindest in Betracht auf die x-Achse innerhalb des Kontinents liegen. Anschlieÿend wird der selbe Test in Bezug auf die y-Achse durchgeführt. Schlieÿen die y-Koordinaten des Kontinentes, die des Landes ebenfalls ein, ist das gewählte Land ein möglicher Kandidat (Filter-Schritt). Das endgültige, exakte Ergebnis liefert anschlieÿend die erneute Schnitt-Berechnung mit den potenziellen Kandidaten, diesmal jedoch mit den komplexen Daten (RenementSchritt). 8 Seminar: mobileGIS Gitter-Approximationen Die Datenannäherung mit Hilfe eines Gitters ist ebenfalls ein bekanntes Approximationsschema. Bei dieser Annäherung wird der Datenraum (exemplarisch eine Landkarte Deutschlands) mit Hilfe eines Gitters in einzelne Segmente unterteilt. Eine Unterteilung eines dreidimensionalen Raumes ist ebenfalls denkbar. Bei der Wahl der Gittergröÿe gilt es eine passende Skalierung zu nden, da zu wenige Segmente zu ungenauen Ergebnissen führen, zu viele Segmente zur Reduzierung des erwarteten Performance-Gewinns. Eine geographische Gegebenheit kann nun durch die Zugehörigkeit zu einem oder mehreren Segmenten beschrieben werden. Damit das System die einzelnen Zellen unterscheiden kann, werden diese nun mit unterschiedlichen Kennungen versehen. Sucht man auf einen Stadtkarte beispielsweise eine bestimmte Straÿe, entnimmt man dem Straÿenverzeichnis den gewünschten Straÿennamen und bekommt anschlieÿend die zugehörige Segmentnummer. Indizierung von Gitter-Approximationen Ein eektives Indizierungssche- ma bei durch gitterapproximierten Daten, stellt die Z-Kurve dar. Der Idee liegt hierbei zugrunde, dass benachbarte Objekte auch naheliegende Segmentkennungen besitzen. Führt man diesen Gedankengang fort, ist es empfehlenswert, die Kennungen in eine strukturierte Rangfolge einzugliedern. Die Z-Kurve basiert auf einem rekursiven Verfahren, in dem die Segmentkennungen nach einem bestimmten Verfahren zugeordnet werden. Verständlicher wird das Verfahren durch die folgende Grak: Abbildung 1. Indizierung durch Gitter-Approximation und Z-Kurve Wird nun eine Query auf einem Datensatz ausgeführt, werden vorerst alle Datensätze mit Hilfe eines Gitters approximiert, wobei jedem darin enthaltenen Objekt, eine durch die Z-Kurve generierte Kennung zukommt. Als nächster Schritt wird das in der Query verwendete Filterobjekt ebenfalls durch das Gitter approximiert und die einzelnen Segmente, mit Kennungen versehen. Diese Kennungen werden dann meist mit Hilfe eines Baumes strukturiert. Die Baumstruktur reduziert hierbei erneut die Anzahl an erforderlichen Rechenoperationen. Bei den anschlieÿenden Operationen werden nur noch die Segmentkennungen miteinander verglichen. Kommt es zu Treern, wird gemäÿ der in Abschnitt Einführung zu Geodatenbanken 9 4.3 beschriebenen lter and rene-Strategie, eine erneute Berechnung mit den komplexen Daten durchgeführt. Indizierung von Punkten Die Indizierung zur Verbesserung von Select- Anfragen wird meist mit Hilfe eines Gitters (meist als grid-le bezeichnet) oder mit Hilfe des kd-Baums realisiert. Bei der Gitter-Methode wird je nach Anzahl der Punkte, der Datenraum in Zellen eingeteilt. Die Raumeinteilung muss hierbei nicht gleichmäÿig erfolgen. Die neuentstandenen Zellen enthalten dabei einen Verweis auf einen bestimmten Bucket (zu dt. Eimer), worin sich der eigentliche Datensatz bendet. Hierbei ist es möglich, dass Buckets mehreren Zellen zugeordnet sind, sowie dass mehrere Punkte im selben Bucket liegen. Bei einer Punktanfrage wird im ersten Schritt die Adresse des Eimers ermittelt in dem der Punkt liegt, im zweiten Schritt ist der entsprechende Bucket gefunden und die Daten zum gesuchten Punkt können daraus entnommen werden. Die zweite Möglichkeit zur Indizierung von Punkten im Datenraum, stellt die Verwendung des kd-Baums dar. Ähnlich der Gitter-Methode wird der Datenraum in Bereiche gegliedert. Die Aufteilung des Raumes geschieht allerdings rekursiv, so dass die beiden neuentstanden Zellen möglichst die gleiche Anzahl an Punkten beinhalten. Die Rekursion endet, wenn in jedem Segement eine vorher festgelegte maximale Anzahl an Punkten liegt. Im Baum selbst sind die Punkte dann in den Blättern gespeichert, die restlichen Knoten enthalten lediglich Schlüssel (x- und y-Werte der Segmentgrenzen) zur Navigation im Baum. Soll nun ein bestimmter Punkt im Baum gefunden werden, navigieren die Knoten den Algorithmus bis zu den Blättern in denen die Punkte gespeichert sind. Durch die Baumstruktur kann die Suche nach einem Punkt optimiert werden. Eine Veranschaulichung zeigt Abbildung 2: es sei vorher festgelegt, dass in jeder Zelle nur ein Punkt liegen darf. Abbildung 2. Indizierung von Punkten mit Hilfe des kd-Baumes 10 Seminar: mobileGIS Indizierung von Rechtecken Da zur Approximation von Regionen oft recht- eckige Bounding-Boxen zum Einsatz kommen, ist es sinnvoll, auch Indizierungsstrukturen für Rechtecke zu betrachten. Hierbei kommen drei bekannte Methoden zum Einsatz: Transformation approach, Overlapping regions und Clipping. Im folgenden wird exemplarisch die Indizierung mit Hilfe der Overlapping regionsMethode beschrieben. Beim Overlapping regions-Verfahren werden, ähnlich dem in Abschnitt 4.3 erläuterten Vorgehen, Buckets verwendet. In diesem Fall wird für jeden Bucket eine Container-Bounding-Box erstellt, die eine bestimmte Anzahl an Rechtecken enthält. Durch diese Festlegung schneidet ein Rechteck eventuell mehrere Buckets, ist allerdings nur in einem einzelnen Bucket vollständig enthalten. Bei der Strukturierung der einzelnen Rechtecke anhand der Container, kommt wiederum eine Baumstruktur zum Zug. Hierbei werden die Buckets mit einer Kennung versehen, die anschlieÿend innerhalb eines Knoten gespeichert wird. Alle vom Container-Bucket eingeschlossenen Rechtecke werden als Söhne des Buckets dargestellt. Die eigentlichen Rechteck-Daten werden in den Blättern gespeichert. Abbildung 3 verdeutlicht das Overlapping-Regions-Verfahren. Abbildung 3. Indizierung von Rechtecken mit der Overlapping-Regions- Methode Bei der Suche nach bestimmten Schnittkandidaten zu einem gegebenen Rechteck, kann nun vorerst mit den Bucket-Regionen geschnitten werden. Dieses Verfahren reduziert daher die Anzahl möglicher Schnittkandidaten und somit die Rechenzeit. Ist ein Schnitt mit einem Bucket positiv, wird anschlieÿend mit den Elementen innerhalb des Buckets erneut geschnitten. 5 Architektur von Geodatenbanken Der Aufbau einer Geodatenbank kann auf vielerlei Arten realisiert werden. Nach den vorhergehenden Abschnitten liegt das Hauptaugenmerk auf der Implementierung von speziellen Datentypen sowie ezienten Methoden zur Verwaltung der Daten. Im folgenden Abschnitt werden mögliche Architekturvarianten beschrieben. Einführung zu Geodatenbanken 5.1 11 Schichtenarchitektur Mit Hilfe einer Schichtenarchitektur soll normalen Datenbanken die Verwendung als Geodatenbank ermöglicht werden. Hierbei bendet sich überhalb der eigentlichen Datenbank eine weitere Schicht, die neben speziellen geographischen Datentypen auch Funktionen zur Verwaltung der Daten bereithält. Stellt ein Benutzer eine Anfrage an die Datenbank, muss die Zwischenschicht die Anfrage in eine datenbankveträgliche Anfrage umwandeln. Stehen anschlieÿend die Ergebnisse der Anfrage fest, muss die Zwischenschicht die Daten, vor der Weiterleitung an das GIS, nachbearbeiten. Da die Datenbank selbst aber keine ADTs/SDTs zur Verfügung stellt, muss die erstellte Zwischenschicht diesen Schritt übernehmen. Die Schicht hat hierbei zwei Möglichkeiten: 1. Erstellen eines Eintrages bestehend aus vielen einzelnen Attributfeldern 2. Aufteilung eines Objektes in mehrere kleine Objekte (z.B. Polygonzüge beschrieben durch verkettete Punkte) Beide Lösungen sind nicht optimal und erschweren Strategien zur PerformanceSteigerung wie sie in Abschnitt 4.3 beschrieben werden. Zusätzlich kann jede Anfrage, je nach Interpretation der Zwischenschicht, lange Rechenzeiten nach sich ziehen. 5.2 Duale-Architektur Eine von den meisten GIS genutzte Architektur ist die Duale-Architektur. Ihr liegt eine logische Trennung der Daten zugrunde. Der jeweilige Datensatz wird dabei in einen geographischen und einen nicht-geographischen Teil zerlegt. Zur Speicherung von nicht-geographischen Daten (z.B. Name des geographischen Phänomens) wird hierzu ein normales Datenbanksystem verwendet. Damit die Verknüpfung zwischen den geographischen und nicht-geographischen Daten nicht verloren geht, wird zusätzlich ein Verweis im normalen Datenbanksystem hinterlegt. Der geographische Anteil selbst, wird im Dateisystem, zum Beispiel innerhalb einer xml-Datei, gespeichert und ist mit Hilfe des Verweises erreichbar. Vorteilhaft an diesem Ansatz ist, dass die getrennten Daten nun im Dateisystem mit Hilfe von Indizes strukturiert werden können. Leider ist aber hierbei auch eine Zwischenschicht nötig, die die Anfrage in die geographischen sowie nicht-geographischen Teile zerlegt, was erneut zu Performance-Einbuÿen führt. 5.3 Erweitertes DBMS Die beste Performance bieten speziell auf Geographie erweiterte Datenbanksysteme. Erweiterte Datenbanksysteme bieten die Möglichkeit, das jeweilige System nach belieben zu erweitern. 12 Seminar: mobileGIS Im Fallbeispiel Geographie ist es möglich spezielle Datentypen (vgl. Abschnitt 3.2) anzulegen. Ebenfalls müssen spezische Operationen (z.B. Test auf Flächenschnitt), sowie Techniken zur Performance-Steigerung (z.B. Filter and rene-Strategie mit Approximationen) in das System integriert werden. Gerade der letzte Schritt ist nicht intuitiv, da im System je nach verwendetem Datentyp, die Operationen angepasst werden müssen. 6 Ausblick GIS haben im Informationszeitalter einen groÿen Stellenwert erlangt. Da allerdings die Zahl an GIS-Nutzer stark angestiegen ist und neben den kommerziellen GIS auch abgespeckte, frei verfügbare Systeme bestehen, steigt die Motivation nach einer guten Datenbankunterstützung. Daraus folgernd, ist die Entwicklung von Geodatenbanken noch nicht abgeschlossen und wird auch in Zukunft neue Arten und Wege zur ezienten Verwaltung von geographischen Phänomenen bereitstellen. Einführung zu Geodatenbanken 13 Literatur 1. Shashi Shekhar; Sanjay Chawla. Spatial Databases A Tour. Prentice Hall, 2003. VLDB Journal, 2. Ralf Hartmut Gueting. An introduction to spatial database systems. 1994. 14 7 Seminar: mobileGIS Erklärung Hiermit erkläre ich, Ralph Zeumann, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen Hilfsmittel als die angegebenen verwendet habe. Die Stellen der Arbeit, die anderen Werken dem Wortlaut oder dem Sinn nach entnommen sind, wurden in jedem Fall unter Angabe der Quelle kenntlich gemacht.