Geoinformatik 2 (GI-2) Kapitel 4 Geodatenbanken Univ.-Prof. Dr.-Ing. Wolfgang Reinhardt AGIS / Inst. Für Angewandte Informatik (INF4) Universität der Bundeswehr München [email protected] www.agis.unibw.de Inhalte • • • • • Motivation / Hintergrund Wiederholung Datenbanken und ausgewählte Eigenschaften Organisationsformen von Geodatenbanken Räumlicher Index Anmerkungen Geodatenbanken 2 / 35 Wiederholung: Charakteristika von Geodaten Bzgl. der Speicherung und Abfrage in Datenbanken besonders zu berücksichtigen: • Große Anzahl von Objekten in einer Geodatenbank, oft mehrere Millionen • Komplexe Datentypen (s. Kap. 3), dabei ist auch der Test ob sich 2 Geoobjekte z.B. schneiden wesentlich aufwändiger als festzustellen ob 2 einfache Datentypen (z.B. Zahlen) identisch sind • Sehr heterogene Datenbestände, unterschiedliche Objektdichte, sehr kleinräumige aber auch sehr großräumige bzw. langgestreckte Objekte, sehr vielfältige Formen von Attributen • Geodatenerfassung ist relativ aufwändig und teuer, daraus ergibt sich die Anforderung einer langfristigen Nutzung. Dies erfordert wiederum eine ständige Aktualisierung, da die Welt sich ja ständig ändert. Geodatenbanken 3 / 35 Räumliche Basisanfragen • Punktanfrage, ermittelt für einen gegebenen Punkt alle • • • • • • “betroffenen” Geoobjekte (-> Selektion) Rechteck- oder Fenster- Anfrage (s. Skizze), berechnet alle Geoobjekte, die das Rechteck schneiden Regions- oder Polygonanfrage (statt Rechteck allg. Polygon) Richtungsanfrage (z.B. alle Objekte nördl. eines Objektes / einer Linie, die durch das Objekt definiert wird -> unbegrenzte Region Abstandsanfrage Nächste-Nachbar-Anfrage Räumlicher / geometrischer Verbund (z.B. Verschneidung) Weitere Anfragen werden weitgehend auf Basisanfragen zurückgeführt Anfragen werden auf Grund der großen Objektanzahl und der Komplexität mehrstufig durchgeführt -> „Filter and Refine“ (s.unten) Geodatenbanken 4 / 35 Rechteckanfrage Wiederholung Datenbank Eine Datenbank besteht aus … … der Datenbasis, d. h. einer Sammlung strukturierter Daten mit ihrem Datenschema und einem Datenbankmanagementsystem zur Verwaltung der Datenbasis. Ein Datenbankmanagementsystem (DBMS) … … ist ein Softwaresystem, das die Daten in der Datenbasis entsprechend vorgegebener Beschreibungen effizient verwaltet (Speichern, Auffinden, weitere Operationen). Typischerweise enthält ein DBMS Routinen zur Dateneingabe, Datenüberprüfung, Speicherung, Abfrage, Kombination und Analyse. Geodatenbanken 5 / 35 Geodatenbanken Anforderungen an Geodatenbanken: - Raumbezogene Objekte (komplexe Datentypen) - Verwaltung großer Datenmengen mit räumlicher Indizierung - Abfragen hinsichtlich der Existenz, Position und den Eigenschaften / Beziehungen von raumbezogenen Objekten (interaktiv) Eine Geodatenbank … … ist eine Datenbank, deren Datenbasis neben den Standard- Datentypen (Zeichen, Zahlen usw.) auch Objekte mit Raumbezug verwalten kann. Der Zugriff auf die Daten und die Verwaltung der gesamten Datenbasis (z.B. auch Indexdaten und Metadaten) erfolgt über ein Geo-Datenbankmanagementsystem. Ein Geo-Datenbank-Management-System (GeoDBMS) … … ist ein vollständiges DBMS mit zusätzlichen Möglichkeiten zur Verwaltung (Repräsentation, Abfrage, Manipulation + weitere Operatoren) von Objekten mit Raumbezug. Geodatenbanken 6 / 35 Datentypen in Geodatenbanken Ein Datentyp legt eine Menge von Werten und eine Menge von darauf zugeschnittenen Operationen fest. INTEGER Wertebereich (Ganze Zahlen) von -32768 bis 32768 Operationen Addition, Subtraktion, Multiplikation, Division, … Beispiel: Datentyp Integer Unterscheidung zwischen: Basisdatentyp: im System enthalten, z.B. Integer benutzerdefinierten Datentyp: durch Benutzer festgelegt nichtraumbezogene Datentypen: Datentypen, die keine raumbezogenen Eigenschaften eines Objekts definieren, z.B. Integer, Character ... oder komplexe Datentypen, wie Foto, Ton, Video ... raumbezogene Datentypen: definieren die räumlichen Eigenschaften eines Objekts (geometrische und topologische Eigenschaften). Geodatenbanken 7 / 35 Organisationsformen von Geodatenbanken Relationales GeoDBMS Alle Entitäten werden in Tabellen bzw. Relationen gehalten. Anfragen an die Datenbank über SQL. Duales GeoDBMS Es gibt zwei Datenbasen: Zeile = Objekt Spalte = Attribut GEO-Daten Sachdaten - Nicht räumliche Entitäten werden in Tabellen bzw. Relationen gehalten (relationales Datenmodell) - Raumbezogene Entitäten in proprietären Strukturen - Verknüpfungsmöglichkeiten / Objektbildung durch spezielle Software realisiert Objektorientiertes GeoDBMS - Abstrakte und vom Benutzer definierbare Datentypen - Objektbildung auf mehreren Komplexitätsniveaus - Klassenbildung, gekoppelt mit Vererbung von elementaren und strukturierten Attributen - Kapselung von Objekteigenschaften, -bedingungen, -operationen - Anfragen an die Datenbank über objektorientierte query language Geodatenbanken Objekt Attribut 1 … Methode 1 … 8 / 35 Gegenüberstellung: objektorientiert - relational relational objektorientiert Grundelemente Datentypen Eigenschaften und Begriffe Klassen, Objekte, Attribute, Methoden komplexe Datentypen einfache Datentypen Object Query Language (OQL), Kapselung, Vererbung, Identität, Polymorphismus, Aggregation Objektklasse Objekt Attribut 1 Attribut 1 Attribut 2 Methode 1 Tabellen (Relationen), Zeilen, Spalten Strukturierte Anfragesprache (z.B. SQL), Abfrageverarbeitung und optimierung, Primär-schlüssel, Fremdschlüssel Nummer 111 112 113 114 STUDENT … … … … … … … … … … PLZ 80686 80141 10899 10561 Primärschlüssel Methode 1 Methode 2 Vererbung: Objekte einer Unterklasse erben Eigenschaften und Methoden der Oberklasse … … … … … Fremdschlüssel PLZ 80686 80141 10899 10561 ORT Ort München München Berlin Berlin … … … … … Beziehungen zwischen relationalen Tabellen Geodatenbanken 9 / 35 Objektrelationales GeoDBMS Konsequente Erweiterung der relationalen GeoDBMS: • Erweiterung der relationalen Datenbanken um objektorientierte Eigenschaften • Komplexe Datentypen, benutzerdefiniert, in einer Spalte einer Tabelle: - Objekte mit eigenen Attributen und Methoden - erweiterte Anfragesprache - Methoden zur effizienten Speicherung und Indizierung dieser Datentypen ID Nutzung Fläche Geometrie ... 88 Acker 17593,81 Polygon ... ... ... ... ... ... “Sachdaten” und Geometriedaten als Attribut -> Datentypen „Spatial Schema“ Geodatenbanken 10 / 35 Allgemeine Datenbankeigenschaften (1) Verteilte Datenhaltung / verteilte Datenbanken Teile einer Datenbasis befinden sich auf unterschiedlichen Rechnern (z. B. in einem Netzwerk), jeweils verwaltet durch ein DBMS. Das DBMS führt diese zusammen und unterstützt den Zugriff auf die Datenbasen. Die verteilte Datenhaltung verläuft aus Sicht der Benutzer unbemerkt (Transparenz). Datenbank 1 Abteilung A Vorteile: - Lokalität der Daten (dezentrale Speicherung) - Leistungssteigerung durch Parallelisierung (bei Anfrageberechnungen) Probleme: - Netzausfall (keine Verbindung) - langsames, Teures Netz - bei redundanter Speicherung: evtl. Widersprüche bei Zusammenführung der Daten Client NETZWERK Datenbank 2 Abteilung B Datenbank 3 Abteilung C Beispiel: geographisch verteilte Datenhaltung Anwendung: Unterteilung nach: Zuständigkeit, thematisch, geographisch Geodatenbanken 11 / 35 Allgemeine Datenbankeigenschaften (2) Mehrbenutzerbetrieb / Transaktionskonzept: Mehrere Benutzer arbeiten gleichzeitig mit einer Datenbank (auch verteilt). Das DBMS hat dabei die Aufgabe, die Benutzer so zu verwalten, dass sie sich nicht gegenseitig behindern (unterschiedliche Benutzergruppen mit unterschiedlichen Benutzerrechten). Wenn mehrere Benutzer gleichzeitig an einer Datenbank arbeiten, können sich die Aktionen gegenseitig beeinflussen bzw. behindern (mehrere mit Schreibrechten!!!). Nimmt mehr als ein Benutzer Änderungen vor, kann es zu Konflikten kommen. Viele Lösungen sind möglich (abhängig von der Semantik), z. B.: Optimistischer Ansatz: Es werden keine Vorkehrungen gegen das Entstehen von Konflikten getroffen. Treten diese auf, sind sie von den Benutzern oder dem DBMS zu beseitigen. Aufdecken und beseitigen durch Benutzer problematisch, daher Ansätze durch DBMS: - Benachrichtigung: die von einem Konflikt Betroffenen werden benachrichtigt. - Semantische Konfliktlösung: Automatische Bereinigung durch das System (Wiederherstellen eines konsistenten Zustands). Dazu ist Wissen über die Semantik des Datenbasis notwendig. Pessimistischer Ansatz: Lesen für Änderungen nur für einen Benutzer erlaubt (beachte: Sperrgranularität). Geodatenbanken 12 / 35 Allgemeine Datenbankeigenschaften (3) Replikation Mehrfaches Vorhalten von Datenbeständen (redundant) - auf die replizierten Daten kann von unterschiedlichen Benutzern gleichzeitig zugegriffen werden. Ziel: Verbessern der Performance bei Netzverbindungen mit schmalen Bandbreiten Erhöhung der Verfügbarkeit bei unterbrochener Verbindung (s. o). Um Probleme bei der Konsistenthaltung / Aktuellhaltung der Datenbasen zu vermeiden werden folgende Methoden benötigt: • Schreibsperren • Transaktionsmechanismen: - lange Transaktionen - kurze Transaktionen • Konfliktauflösung (vgl. Mehrbenutzerbetrieb) Geodatenbanken 13 / 35 Allgemeine Datenbankeigenschaften (4) Constraints: Constraints sind im Datenbankschema enthaltene Vorschriften, die Eigenschaften der Daten in der Datenbasis beschreiben. Das DBMS überwacht die Erfüllung aller constraints. Entstehen bei Änderungsoperationen an der Datenbasis Verstöße gegen constraints im Datenbankschema, meldet das DBMS diese Verstöße und lehnt die entsprechenden Operationen ab. Beispiele für Konstrukte von constraints: - Schlüsseleigenschaften / Fremdschlüsselbeziehungen - Einschränkungen des Wertebereichs von Attributen - Komplexere geom./top./semant. constraints Trigger: Trigger sind weitere Konstrukte (Prozeduren) zur Sicherung der Integrität, die automatisch nach bestimmten Datenbankoperationen aufgerufen werden. Beispiele für „Geo-Constraints“ (semantisch/topologisch) : - Straßen müssen an Kreuzungen miteinander verbunden sein - Straßen dürfen nur an Brücken einen Fluss überqueren - Eine Hausanschluss Leitung muss mit einer Hauptleitung verbunden sein Geodatenbanken 14 / 35 Allgemeine Datenbankeigenschaften (5) Benutzerrechte: - Einzelne Benutzer oder Gruppen - Rechte nach thematischen oder räumlichen Kriterien, z. B.: - Leserechte - Schreibrechte - Änderungsrechte - Löschrechte - Administrationsrechte -… Versionsmanagement Version = Inhalt (Zustand) der Datenbank zu einem bestimmten Zeitpunkt - stichpunktsbezogen / diskret - kontinuierlich abrufbar (temporale Datenbank) • Versionen, z.B. für Historienbildung • Vollversionierung durch Speicherung der gesamten DB zu einem Stichpunkt • inkrementelle Versionierung durch Speicherung der Änderungen gegenüber einem bestimmten Stichpunkt Geodatenbanken 15 / 35 Geometrische Zugriffsstrukturen (Räumlicher Index) - Indexstrukturen in Datenbanken - Räumliche Anfragen - Motivation - R-Baum (1) - R-Baum (2) - Strategie: Filter and Refine - R-Baum - Punktsuche - R-Baum - Bereichsanfrage - Quadtree - Aufbau des Quadtree - Beispiel - Weitere Quadtree- Anwendungen - Zusammenfassung Geodatenbanken 16 / 35 Indexstrukturen in Datenbanken Um Anfragen an die Datenbank zu beschleunigen, verwendet man Indexe (gespeicherte, zusätzliche Informationen über die Daten in der Datenbasis). … Kunden-Nr. … 92 … 1215 … 10301 Sortierung nach Größe Index Beispiel: Standarddatentyp Integer Wurzel Bei Anfragen mit sehr großen Datenmengen werden als StandardIndexstrukturen Binär Bäume verwendet. n <n Blätter > n Standarddatentypen lassen sich linear sortieren. Für Komplexe Datentypen (z.B. Geometrien) sind Anfragen wie “In welchem Polygon liegt Punkt P” zu lösen. Für mehrdimensionale Daten wurden deshalb eigene Indexstrukturen entwickelt. Geodatenbanken 17 / 35 Räumliche Anfragen Gegeben: Menge von flächenhaften Geoobjekten z.B.: Orte (ID, Name, Einwohner, Geometrie) Gewünschte Anfragetypen: • Punktanfrage: In welchem Ort (Polygon) liegt der Punkt P? Orte Name Einwohner Paunzhausen 1 200 Walterskirchen 250 Angerköfe 200 • Bereichs- (Rechteck-) anfrage: Welche Orte (Polygone) liegen innerhalb des achsenparallelen Rechtecks Q? Geometrie Animation: 3x klicken Geodatenbanken 18 / 35 Motivation Naive Lösung: Sequentieller Test aller Polygone Probleme: 1. Die naive Berechnung ist sehr aufwendig 2. Suchzeit linear von der Anzahl der Polygone abhängig - Nicht vertretbar für große Mengen! Lösungsansätze: zu 1): Filterschritt: Zuerst das minimal umschließende, achsenparallele Rechteck (minimum Bounding Box = BB) testen, der Polygontest erfolgt, wenn der BB-Test dies erforderlich macht (Filter -> Refine) zu 2): Indexstrukturen für BBs aufbauen Animation: 3x klicken Geodatenbanken 19 / 35 Indexstrukturen - Einführung Räumliche Indexstrukturen beruhen auf einer (geographischen) Einschränkung des Suchraums bzw. einer Unterstützung der Suche durch Baumstrukturen Eine einfache, denkbare Lösung wäre eine Aufteilung des Raumes in gleich große Bereiche (s. Skizze) mit einer entsprechenden Verwaltung. Probleme: 1. Die Datendichte ist bei Geodaten i.d.R. nicht homogen 2. Zuordnung von Objekten zu einem Bereich mit Standardverfahren nicht möglich (s. Skizze) Weitergehende Lösungsansätze: • Gridfile (hier nicht behandelt) • R-Baum (R-Tree) • Quadtree • … Geodatenbanken 20 / 35 R-Baum (1) Definition: dynamische Zugriffsmethode oder Indexstruktur in der Datenhaltung für mehrdimensionale Räume Struktur entspricht einem balancierten Baum: Jede Baumebene gruppiert und aggregiert die Elemente der nachfolgenden Ebene. In jedem Blatt werden Referenzen auf die eigentlichen Geometrien, sowie deren Bounding Boxes gespeichert. Jeder Vaterknoten speichert für jeden seiner Nachfolger wieder die Bounding Box über alle seine Teilgeometrien. Beispiel: innere Knoten zeigen auf einen Teilbaum, welcher von einer BB begrenzt wird. Hinweis: Mit R-Bäumen können n-dimensionale Räume verwaltet werden, hier Beschränkung auf 2D 01 R11 02 03 07 R15 04 R12 09 R16 R13 08 05 R14 10 06 15 16 13 14 11 12 01 02 03 1 5 1 1 0 1 04 06 09 Legende: Innere Knoten Blattknoten Blattknoten Geodatenbanken 05 07 08 10 Animation: 3x klicken 21 / 35 R-Baum (2) Vorgegeben: • min. Anzahl Einträge pro Knoten: m • max. Anzahl Einträge pro Knoten: M mit m<=(M+1)/2 • Für die Wurzel des Baumes gilt die untere Schranke m=2 • M und m ist an die Eigenschaften des Speichermediums anzupassen Eigenschaften • Außer Punktanfragen auch Bereichsanfragen möglich • Objekte werden räumlich sortiert und können effizient abgefragt werden • keine disjunkte Aufteilung des Suchraumes (Rechtecke können sich überlappen) • Knoten realisieren räumliche Nachbarschaft • Alle Blätter haben die gleiche Distanz zur Wurzel • Knotengröße entspricht Seitengröße des DBMS • Der Vorteil des R-Baumes besteht, ähnlich eines B-Baumes, darin, daß er dynamisch, d.h. während der Einfüge- und Löschoperationen, ausgeglichen wird und so keine periodische Reorganisation der Baumstruktur notwendig wird Geodatenbanken 22 / 35 Strategie: Filter und Refine Gegeben: Ein räumliches Objekt P des gewünschten Anfragetyps: "schneidet Rechteck Q" oder "enthält Punkt q" Problem: 1. Bounding Boxes (BBs) approximieren räumliche Objekte. Es treten also Fälle auf, in denen P für eine BB erfüllt ist, nicht aber für deren approximiertes räumliches Objekt. 2. Die Indexstruktur liefert Anfrageresultate immer auf Basis der BBs, die in ihm gespeichert sind. Lösung: Punkt- und Bereichsanfragen mit Indexunterstützung werden in zwei Schritten bearbeitet: 1. Filter-Schritt: Anfrage an den Index; Ergebnis ist eine Kandidatenmenge auf Basis der BBs. 2. Refine-Schritt: Die Objekte der Kandidatenmenge werden auf der exakten Geometrie getestet, wobei falsche Kandidaten aussortiert werden. Geodatenbanken 23 / 35 R-Raum - Punktsuche Welche Bounding Boxes (BBs) enthalten den Punkt P? 01 Beginne an der Wurzel R11 02 03 innere Knoten: Durchsuche jeden Sohnknoten, dessen DirBB P enthält 04 R12 09 Blattknoten: Suche alle BBs, die P enthalten Fertig! 07 R15 R13 P 05 1 5 1 6 13 14 11 12 Achtung: Ggf. muss in mehreren Teilbäumen gesucht werden! 08 R14 10 06 01 02 03 R16 04 06 09 05 07 08 10 Animation: klicken Geodatenbanken 24 / 35 R-Baum - Bereichsanfrage Welche BBs liegen im Rechteck Q? Beginne an der Wurzel 01 R11 02 innere Knoten: Suche in jedem Sohnknoten, dessen DirBB das Rechteck Q schneidet 03 07 R15 04 R12 Q 09 Blattknoten: Suche alle BBs, die Q schneiden R13 05 1 5 1 6 13 14 11 12 01 02 03 08 R14 10 06 Fertig! R16 04 06 09 05 07 08 10 Animation: klicken Geodatenbanken 25 / 35 R-Baum Praktisches Arbeiten erfordert: - Einfügeoperationen (von Geoobjekten) in den R-Baum Löschoperationen (von Geoobjekten) im R-Baum Siehe hierzu http://www.iai.uni-bonn.de/~oms/d4/gtk/ge_rtree/rbaum.htm Bzw. Literatur im Anhang Geodatenbanken 26 / 35 Quadtree • Datenstruktur, die einen k-dim. Datenraum rekursiv in 2K große Zellen zerlegt • 2D: Quadtree, 3D: Octree • Zerlegung des Raumes, jeweils eine Zelle in 4 neue Zellen (NW, NO, SO, SW) NW NO NW SW NO SW SO SO • Zerlegung nach vorgegebenem Kriterium (z.B. Überschreitung der Speichergröße • Aufbau einer korrespondierenden Baumstruktur (-> Zugriffsstruktur) • Die Wurzel entspricht einer Aufteilung des Raumes in vier Quadranten • Die Blätter repräsentieren jeweils eine Zelle bzw. sind leer Geodatenbanken 27 / 35 Quadtree • Beispiel - jeder Knoten hat 0 oder 4 Nachfolger: 0 Nordwest NW NO SW SO Nordost Südwest NW Südost - Blattknoten sind homogen SW NO NW NW NO SO SW SO Animation: 5x klicken Geodatenbanken 28 / 35 NO SO SW Aufbau des Quadtree - Gegeben: Interessensgebiet begrenzt durch Rechteck - Einfügen eines Objektes (Polygon) - Einfügen eines weiteren Objektes (Linie) Animation: 4x klicken - Überschreitung der vorgegebenen Speichergröße des Quadrats und Unterteilung in 4 Unterquadrate - Einfügen von weiteren Objekten und weitere Aufteilung der Zellen Geodatenbanken 29 / 35 Beispiel einer Punktanfrage Gegeben: P1 (x1, y1) Gesucht: Unterquadrat mit P1 1.) liegt P1 in 1, 2, 3, oder 4; Ergebnis: 4 0 2.) liegt P1 in 41, 42, 43 oder 44; Ergebnis: 42 3.) liegt P1 in 421, 422, 423 oder 424; Ergebnis: 422 1 1 P1 P1 44 43 421 3 Animation: klicken Ergebnis: P1 liegt in 422 Geodatenbanken 3 41 2 42 422 1 41 424 42 42 3 4 2 30 / 35 4 42 422 43 423 44 424 Quadtree – Weitere Hinweise • Der Quadtree stellt ein reines Organisationsprinzip dar • Die Speicherung der Objekte erfolgt in sep. Blöcken • Für die Zellen werden Objekt- Directories geführt (Liste mit id´s der relevanten Objekte bzw. Verweis auf den Speicherort) • Auf große / langestreckte Objekte muss in allen relevanten Zellen verwiesen werden (s. Skizze) Geodatenbanken 31 / 35 Weitere Quadtree- Anwendungen Das Quadtree- Verfahren wird auch für die effiziente Verwaltung von Rasterdaten verwendet (Pixeldaten). Reduktion von Speicherplatz Quadtree- Zerlegung von flächenhaften Objekten (aus: Bill u. Fritsch, 1994) Geodatenbanken 32 / 35 Verwendung räumlicher Operatoren in SQL - Beispiel Wie in Kap. 2 dargestellt, gibt es im GeoDB – Umfeld vielfältige räumliche Operatoren. Diese können in vielen Systemen auch in SQL-Anfragen verwendet werden, unten ein Beispiel für Oracle SQL Abfragestruktur SELECT spaltenname FROM tabellenname [WHERE bedingung]; Spatial SQL Beispiel: SELECT Cities.shape, Cities.City_Name FROM Cities, Countries WHERE SDO_INSIDE( Cities.shape, Countries.shape ) = `TRUE` AND Countries.Country_Name = `Germany`; Geodatenbanken 33 / 35 Allgemeine Hinweise Zugriff auf Datenbanken erfolgt z.B. über ODBC, JDBC (siehe Literatur bzw. Vorlesung DB) Zugriff auf Geodaten z.B. über SQL bzw. GML – Schnittstellen (s. Kap 3 und Übungen) bzw. über Geo Web Services Nutzung von Geodatenbanken - Langfristige Datenverwaltung / Haltung (mit Aktualisierung) - Abfragen und Analysen - Komplexe Analysen, Datenerfassung/aktualisierung und Visualisierung durch GIS-Clients - Zunehmende Nutzung über standardisierte Dienste (s. Übungen) - Auch als Basis für die Programmierung von Applikationen mit Hilfe weiterer Werkzeuge (s. Übungen) Geodatenbanken 34 / 35 Literatur Brinkhoff, T. (2008): Geodatenbanksysteme in Theorie und Praxis (2. Auflage), Wichmann Geodatenbanken 35 / 35 Vielen Dank für die Aufmerksamkeit! Weitere Fragen? Geodatenbanken 36 / 35