MSC Bau, Modul „GIS“ (Nr. 1620) Kap 1. Datenbanken und Geo - Datenbanken Prof. Dr.-Ing. Wolfgang Reinhardt AGIS / Institut für Angewandte Informatik Universität der Bundeswehr München [email protected] www.agis.unibw.de Ziele und Inhalte – Vorlesung GIS Ziele: Weitergehende GIS-Technologien kennen (Datenerfassung, Datenbanken, Analysen, Geo Web Services,) GIS Analysen durchführen können Grundbegriffe der Datenbanken kennen, mit DB „umgehen“ können Grundlagen der Visualisierung kennen 09.01.2012 Kap 1. 16.01.2012 Datenbanken 1 Datenbanken 2 23.01.2012 Kap 2. GIS Analysen 30.01.2012 Kap 3. Geo Web Services 1 06.02.2012 13.02.2012 Geo Web Services 2 Kap 4. Visualisierung 20.02.2012 Übung 27.02.2012 Übung 05.03.2012 Übung 12.03.2012 Übung 19.03.2012 26.03.2012 Kap 5. Div. Themen Abschlußbesprechung 2.Geodatenbanken 2 / 69 Überblick – Kap. 1 • Einführung Datenbanken • Arten von Datenbanken • Eigenschaften von Datenbanken • Relationale Datenbanken • SQL • Geodatenbanken, • Räumliche Indices • Räumliche Operatoren, Praktische Vertiefung in den Übungen 2.Geodatenbanken 3 / 69 Inhalte Übung Übungsinhalt: primär Methoden, nicht Software-Werkzeuge (die sind Voraussetzung) Software: ArcGIS, MS Access (DB) • Arbeiten mit Datenbanken, Datenabfragen, Analysen / SQL • Einfache Analyseverfahren in GIS • Komplexe Analyseverfahren in GIS • Geoprocessing, Geo Web Services Anfertigung von Ausarbeitungen / Hausarbeiten! 2.Geodatenbanken 4 / 69 Literatur Zu Datenbanken große Auswahl! Ein Beispiel: On-line-version verfügbar (->google) Zu Geodatenbanken: 2.Geodatenbanken 5 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Datenbank - Wieso? Weshalb? Warum? Räumliche Operatoren • Daten unabhängig von Anwendungsprogrammen • Selbstbeschreibend (Schema als Metadaten) • Simultanzugriff (Viele Nutzer teilen gleiche Daten) • Verschiedene Sichten (der untersch. Benutzer) • Zugriffskontrolle (Benutzer) • Fehlertoleranz / Transaktionen • Datenkonsistenz (Kontrolle, Sicherstellung) • Datensicherheit (Wiederherstellbarkeit) 2.Geodatenbanken 6 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Weitere Vorteile Räumliche Operatoren • Nutzung von Standards (Zugriff, Bedienung ..) • Effizienter Datenzugriff • Grosser Funktionsumfang • Hohe Flexibilität (Nutzeranforderungen) • Hohe Verfügbarkeit (s. z.B. banking) • Gute Wirtschaftlichkeit 2.Geodatenbanken 7 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren Arten von Datenbanken • Relationale Datenbanken - RDB im weiteren primär betrachtet • Objektorientierte Datenbanken • Mischformen (z.B. Objektrelationale) • Weitere (z.B. hierarchische) • Vgl. auch Folien zu Geodatenbanken 2.Geodatenbanken 8 / 69 Allgemeines zu Datenbanken Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren Relationale Datenbanken – Beispiele für Software Produkte / Hersteller: • Oracle • DB2 (IBM) • MySQL (open source) • SQL-Server (MS) • PostgreSQL (open source) • MS Access • U.v.m. 2.Geodatenbanken 9 / 69 Allgemeine Datenbankeigenschaften Architektur Geodatenbanken Räumlicher Index Räumliche Operatoren Mensch BenutzerIn Anwendungsprogramm Datenbanksystem DBMS Anfragebearbeitung Datenzugriff Benutzeroberfläche Access, MySQL, Oracle Software Datenbank Metadaten: Daten DB-Definition 2.Geodatenbanken Datenspeicherung und Beschreibung 10 / 69 Allgemeine Datenbankeigenschaften Überblick Geodatenbanken Räumlicher Index Räumliche Operatoren Anforderungsanalyse Text Konzeptionelles Schema ER-Schema (o. UML) Logisches Schema DB-Schema Implementierung Schema Anwendung/Nutzung SQL Wartung und Pflege 2.Geodatenbanken 11 / 69 Allgemeine Datenbankeigenschaften Definition Datei Geodatenbanken Räumlicher Index Räumliche Operatoren Eine Datei… …Eine Datei ist ein strukturierter Bestand inhaltlich zusammengehöriger Daten, die auf einem beliebigen Datenträger oder Speichermedium abgelegt bzw. gespeichert werden kann. Diese Daten existieren über die Laufzeit eines Programms hinaus und werden als nicht flüchtig oder persistent (Gegensatz: transient) bezeichnet. ... 2.Geodatenbanken 12 / 69 Definition Datenbank Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Eine Datenbank besteht aus … Räumliche Operatoren … 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. 2.Geodatenbanken 13 / 69 Allgemeine Datenbankeigenschaften RDB - Datenbankgrundlagen Geodatenbanken Räumlicher Index Datenbankdesign: Räumliche Operatoren Anforderungsanalyse, was wird benötigt! Beschreibung mit ER (Entity Relationship) – Diagramm bzw. auch Entity Relationship Modell (ERM) genannt Bzw. alternativ mit UML Entity = etwas, das existiert - Bsp: Studentin, Dozentin, Vorlesung Attribute = Eigenschaften eines Entity - Bsp: Name, Studiengang, Titel, Raum, Zeit 2.Geodatenbanken 14 / 69 Allgemeine Datenbankeigenschaften ERM Geodatenbanken Räumlicher Index Beispiele – Entites, Attribute: Räumliche Operatoren Vorlesung Name DozentIn Zeit Vorl.nr. Titel Fachgebiet Raum Raum Gewässer Name Typ Wassergüte 2.Geodatenbanken 15 / 69 Allgemeine Datenbankeigenschaften ERM Geodatenbanken Räumlicher Index Beispiele –ER-Modell: Name MatrNr Räumliche Operatoren Studiengang StudentIn Name DozentIn hören Fachgebiet Zeit Raum Raum halten Vorlesung DozNr Titel 2.Geodatenbanken 16 / 69 Allgemeine Datenbankeigenschaften Relationales Modell (1) Geodatenbanken Math. Hintergrund der RDB (math. Definition von Operationen etc.) • Relationale Algebra Mathematische Struktur • Relationales Schema: Relname(Attribut1, ..., Attributn) • Relation Menge von Tupeln ( auch: „n-Tupel“ oder verkürzt „Tupel“ bezeichnet eine Sammlung mit einer beliebigen Anzahl n von Attributen) • Mengen plus Operationen Projektion, Selektion, Durchschnitt, Differenz,... • Wertebereiche für Tupel 2.Geodatenbanken 17 / 69 Räumlicher Index Räumliche Operatoren Relationales Modell (2) ER-Modell leicht in Relationales Modell (RM) und RDB transformierbar (s. Folie 22) Relationale Datenbank (RDB) Grundstruktur: Relation (Tabelle) Studentin Attribute (Spalten) Tupel / Datensatz (Zeilen) 2.Geodatenbanken MatrNr Studiengang Anna Katz 630057 Mathematik Bea Fischer 631124 Informatik Carla Maus 626115 Informatik Dorina Hai 702007 Mathematik Name 18 / 69 Allgemeine Datenbankeigenschaften RDB - Datenbankgrundlagen Geodatenbanken Räumlicher Index Implementierung in Tabellen: Räumliche Operatoren Vorlesung VorlNr Titel Raum Zeit Inf 04 Geoinformationssysteme LB 107 Di 13 - 15 Mat 12 Einführung in Datenbanksysteme LB 131 Di + Do 8 - 10 Bau 121 Statik LF 257 Mi 14 - 16 2.Geodatenbanken 19 / 69 Allgemeine Datenbankeigenschaften RDB - Datenbankgrundlagen Geodatenbanken Räumlicher Index Datenbank Schlüssel, dient in einer Relationalen Datenbank dazu, die Tupel einer Relation eindeutig zu identifizieren, ist also: • Eindeutig • Besteht aus ein oder mehreren Attributen • Beispiel: Matrikelnummer (StudentIn) • Welcher Schlüssel für „Vorlesung"? 2.Geodatenbanken 20 / 69 Räumliche Operatoren Allgemeine Datenbankeigenschaften RDB - Datenbankgrundlagen Geodatenbanken Räumlicher Index Ein Fremdschlüssel Räumliche Operatoren ist ein Attribut einer Relation, das in einer anderen Relation Primärschlüssel oder Schlüsselkandidat ist. Er dient als Verweis zwischen zwei Relationen, d. h. er zeigt an, welche Tupel der Relationen inhaltlich miteinander in Verbindung stehen. Beispiel: Buch Autor Name Nr. A-Nr. Titel A-Nr. ISBN 11 201 Datenbanken Bartelme, No 201 ISBN 12 202 GIS Bill, Ralf 202 ISBN 13 203 Mathematik Frank, Andre 203 ISBN 14 203 Informatik 2.Geodatenbanken 21 / 69 Allgemeine Datenbankeigenschaften Vergleich von Begriffen / Konzepten Geodatenbanken Räumlicher Index Räumliche Operatoren Relationale Datenbank (RDB) RelationalesModell (RM) EntityRelationshipModell (ERM) Unified Modeling Language (UML) Tabelle Relation Entität Objekt-Klasse Spaltenüberschrift Attribut Attribut Attribut Zeile Tupel Entität Objekt, Instanz Zelle Attributwert Attributwert Attributwert (Fremd)schlüssel (Fremd)schlüssel Relationship Assoziation Wiederholung: • ERM / UML zur Modellierung der Anforderungen (-> konzeptionelles Modell) • RM bildet math. Grundlage für RDB 2.Geodatenbanken 22 / 69 Allgemeine Datenbankeigenschaften SQL Geodatenbanken Räumlicher Index Räumliche Operatoren Structured Query Language (-> Standard!) • Anlegen der DB • Füllen mit Daten / Änderungen / Löschen • Zugriffsrechte • Anfragen an Datenbank 2.Geodatenbanken 23 / 69 Anlegen einer Datenbank Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Sql> create database semesterplan Räumliche Operatoren Sql> Create table vorlesung (Vorlnr char(10) not null, Titel char(40) not null, Raum char(10) not null, Wtag char(10) not null, Zeit datetime, PRIMARY KEY (Vorlnr) ); Sql> insert into Vorlesung (Vorlnr,titel) values („Inf 04“, „Geoinformationssysteme“); 2.Geodatenbanken 24 / 69 Allgemeine Datenbankeigenschaften Anlegen einer Datenbank Geodatenbanken Ein Beispiel, wie es ein unerfahrener Nutzer machen könnte Räumlicher Index Räumliche Operatoren (durch Überführung seiner „Papierstruktur“): AuftrNr. Datum Kunde Artikelnr. Bezeichnung Menge 1 1.1.99 1 Schmitt, Bonn 134 Coxorange 4 Kisten 1 1.1.99 1 Schmitt, Bonn 135 Kiwi 4 Kisten 2 1.1.99 2 Müller, Köln 140 Butterbirne 2 Kisten 2 1.1.99 2 Müller, Köln 160 Kürbis, rot 2 Stück 2 1.1.99 2 Müller, Köln 160 Kürbis, gelb 10 Stück 3 2.2.99 1 Schmitz, Bonn 103 Johannisbeeren 5 Kilo 3 2.2.99 1 Schmitz, Bonn 134 Coxorange 12 Kisten 3 2.2.99 1 Schmitz, Bonn 135 Kiwi 2 Kisten 4 2.2.99 45 Lehmann, Jülich 30 Bananen 12 Kilo 4 2.2.99 45 Lehmenn, Jülich 27 Ananas 60 Stück Quelle: http://www.little-idiot.de/mysql/mysql-255.html Bewertung? 2.Geodatenbanken 25 / 69 Anlegen einer Datenbank Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren Bewertung: • Viele gleiche Einträge (Redundanz) sorgen nach ein paar Monaten dafür, dass die Datenbank unnötig groß wird. • Tippfehler (letzte Zeile: Lehmenn) machen das Auffinden aller Lieferungen an Lehmann, Jülich unmöglich. • In der Spalte Kunde sind sowohl Kundennummer, Name und Ort zugleich eingetragen. Herr Krämer muß sich stets selber die Kundennummer merken und alle Daten bei jedem neuen Auftrag stets neu eintippen. • Artikelnummer und Bezeichnung könnten als Synonyme verwendet werden, sind aber hier jeweils für sich in getrennten Spalten gespeichert. • Die Farbe des Kürbis gibt eine andere Art an, die eine neue Artikelnummer erfordert. • Die Spalte Menge enthält sowohl die Stückzahl als auch die Einheit der Ware (Kiste, Stück, Kilo). Die Einheit ist aber stets an die Art der Ware gekoppelt. 2.Geodatenbanken 26 / 69 Allgemeine Datenbankeigenschaften Anlegen einer Datenbank Geodatenbanken Räumlicher Index Die Normalisierung eines relationalen Datenschemas Überführt es in eine Form, die keine vermeidbaren Redundanzen Räumliche Operatoren enthält (Details zur Normalisierung / den Normalformen s. Literatur) Das Beispiel: in der 2. Normalform 1.Tabelle: AuftrNr. Datum KundenNr. Name Ort 1 1.1.99 1 Schmitt Bonn Bewertung? Nicht wirklich zusammengehörende 2. Tabelle: Attribute in einer Relation! AuftrNr. ArtNr. Bez. Menge 1 134 Cox Orange 4 2.Geodatenbanken 27 / 69 Allgemeine Datenbankeigenschaften Anlegen einer Datenbank Geodatenbanken Räumlicher Index Das Beispiel, vollständig normalisiert: Räumliche Operatoren 1. Tabelle: ArtNr. Bez. 134 Cox Orange AuftrNr. Menge ArtNr. 1 4 134 Bewertung? 2. Tabelle: 3. Tabelle: Auftr.Nr. KundenNr. Datum 1 1.1.99 1 4. Tabelle: KundenNr. Name Ort (Anschrift...) 1 Schmitt Bonn 2.Geodatenbanken 28 / 69 Anfragen (Queries) an DB Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren SELECT * FROM tabelle WHERE bedingung; Beispiel: Wie heißt die Vorlesung mit der Nummer Inf 04? SELECT titel FROM Vorlesung WHERE VorlNr = Inf 04; Weitere Beispiele! 2.Geodatenbanken 29 / 69 Allgemeine Datenbankeigenschaften Anfragen über mehrere Tabellen Geodatenbanken Räumlicher Index Räumliche Operatoren Sinn: alle möglichen Kombinationen der Zeilen ausgeben (ohne Bedingung) ® ergibt das "Kreuz-Produkt" oder "kartesische Produkt„ Tabellen verbinden -> Auch „Tabellen-JOIN“ genannt, hier: „cross JOIN“genannt Beispiel von oben: Buch Autor Name Nr. A-Nr. Titel A-Nr. ISBN 11 201 Datenbanken Bartelme, Jo 201 ISBN 12 202 GIS Bill, Ralf 202 ISBN 13 203 Mathematik Frank, Andre 203 ISBN 14 203 Informatik select autor.name, buch.titel from autor, buch where autor.A-Nr. = buch.A-Nr. 2.Geodatenbanken 30 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften (1a) Geodatenbanken Räumlicher Index Verteilte Datenhaltung / verteilte Datenbanken Räumliche Operatoren Teile einer Datenbasis befinden sich auf unterschiedlichen Rechnern (z. B. in einem Netzwerk), jeweils verwaltet durch das 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 Client NETZWERK Datenbank 2 Abteilung B Datenbank 3 Abteilung C Beispiel: geographisch verteilte Datenhaltung 2.Geodatenbanken 31 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften (1b) Geodatenbanken Räumlicher Index Vorteile: Räumliche Operatoren - 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 Datenbank 1 Abteilung A Client NETZWERK Anwendung: Unterteilung nach: Datenbank 2 Abteilung B • Zuständigkeit, • thematisch, Datenbank 3 Abteilung C Beispiel: geographisch verteilte Datenhaltung • geographisch 2.Geodatenbanken 32 / 69 Allgemeine Datenbankeigenschaften (2a) Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren 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.: 2.Geodatenbanken 33 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften (2b) Geodatenbanken Räumlicher Index Räumliche Operatoren 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 der Datenbasis notwendig. Pessimistischer Ansatz: Lesen für Änderungen nur für einen Benutzer erlaubt (beachte: Sperrgranularität). 2.Geodatenbanken 34 / 69 Allgemeine Datenbankeigenschaften (3) Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren 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) 2.Geodatenbanken 35 / 69 Allgemeine Datenbankeigenschaften Allgemeine Datenbankeigenschaften (4) Geodatenbanken Constraints: Räumlicher Index Constraints sind im Datenbankschema enthaltene Vorschriften,Räumliche Operatoren 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: - Schlüsseleigenschaften / Fremdschlüsselbeziehungen - Einschränkungen des Wertebereichs von Attributen - Semantische constraints (z.B. Hausanschluss - Leitung) Trigger: Trigger sind weitere Konstrukte (Prozeduren) zur Sicherung der Integrität, die automatisch nach bestimmten Datenbankoperationen aufgerufen werden. Beispiele - Tabelle Autor und Buch -> Schlüsselbeziehung - Nutzer versucht einen Eintrag zu löschen -> Warnung über trigger 2.Geodatenbanken 36 / 69 Allgemeine Datenbankeigenschaften (5) Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Transaktionen Räumliche Operatoren Sind zu Paketen zusammengefasste Anweisungen an die Datenbank (z. B. beliebige Änderungsanweisungen). Ein Paket von Anweisungen wird als Transaktion bezeichnet, wenn es die ACID-Eigenschaften besitzt: A = Atomicity: Transaktionen sind atomar – entweder alle Transaktionen werden durchgeführt oder keine. C = Consistency: Transaktionen bewahren die Konsistenz einer Datenbank, überführen die Datenbank also von einem konsistenten Zustand in einen neuen (konsistenten) Zustand. (Zwischendurch können inkonsistente Zustände eintreten.) I = Isolation: Transaktionen sind voneinander isoliert. D. h. auch wenn viele Transaktionen gleichzeitig ablaufen, sind die Änderungen innerhalb einer Transaktion für andere nicht sichtbar, bis die Transaktion beendet ist. D = Durability: Ist eine Transaktion beendet, sind die durchgeführten Änderungen dauerhaft. Auch ein nachfolgender Systemabsturz kann die Änderungen nicht mehr rückgängig machen. 2.Geodatenbanken 37 / 69 Allgemeine Datenbankeigenschaften (6) Allgemeine Datenbankeigenschaften Geodatenbanken Benutzerrechte: Räumlicher Index Räumliche Operatoren - 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 2.Geodatenbanken 38 / 69 Allgemeine Datenbankeigenschaften Geodatenbanken Geodatenbanken Räumlicher Index Warum spezielle Geodatenbanken Räumliche Operatoren Überblick Themen: • Datentypen in Geodatenbanken • Organisationsformen von Geodatenbanken • Gegenüberstellung objektorientiert - relational • Objektrelationales GeoDBMS 2.Geodatenbanken 39 / 69 Allgemeine Datenbankeigenschaften Geodatenbanken Geodatenbanken Räumlicher Index • Warum spezielle Geodatenbanken? Räumliche Operatoren Anforderungen an Geodatenbanken: - Raumbezogene Objekte (komplexe Datentypen) - Verwaltung großer Datenmengen mit Raumbezug - Abfragen hinsichtlich der Existenz, Position und den Eigenschaften / Beziehungen von raumbezogenen Objekten (interaktiv) Interaktivität erfordert spez. Zugriffsstrukturen (räumliche Indizierung) 2.Geodatenbanken 40 / 69 Allgemeine Datenbankeigenschaften Geodatenbanken Geodatenbanken Räumlicher Index 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 GeoDatenbankmanagementsystem. 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. 2.Geodatenbanken 41 / 69 Allgemeine Datenbankeigenschaften Datentypen in Geodatenbanken Geodatenbanken Räumlicher Index 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). 2.Geodatenbanken 42 / 69 Organisationsformen von Geodatenbanken Relationales GeoDBMS Alle Entitäten werden in Tabellen bzw. Relationen gehalten. Anfragen an die Datenbank über SQL. Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Zeile = „Objekt“ Spalte = Attribut Duales GeoDBMS Es gibt zwei Datenbasen: Sachdaten GEO-Daten - 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 SW-Funktionen Objektorientiertes GeoDBMS - Abstrakte und vom Benutzer definierbare Datentypen - Objektbildung, - Klassenbildung, gekoppelt mit Vererbung von elementaren und strukturierten Attributen - Kapselung von Objekteigenschaften, -bedingungen, operationen - Anfragen an die Datenbank über objektorientierte query 2.Geodatenbanken 43 / 69 language Objekt Attribut 1 … Methode 1 … Allgemeine Datenbankeigenschaften Gegenüberstellung: objektorientiert - relational Geodatenbanken Räumlicher Index objektorientiert relational Grundelemente Klassen, Objekte, Attribute, Methoden Tabellen (Relationen), Zeilen, Spalten Datentypen komplexe Datentypen einfache Datentypen Eigenschaften und Begriffe Object Query Language (OQL), Kapselung, Vererbung, Identität, Polymorphismus, Aggregation Strukturierte Anfragesprache (z.B. SQL), Abfrageverarbeitung und -optimierung, Primärschlüssel, Fremdschlüssel Objektklasse Objekt Attribut 1 Attribut 1 Attribut 2 Methode 1 Methode 1 Methode 2 Vererbung: Objekte einer Unterklasse erben Eigenschaften und Methoden der Oberklasse 2.Geodatenbanken Nummer 111 112 113 114 … … … … … STUDENT … … … … … … … … … … Allg. DB-Konzepte! PLZ 80686 80141 10899 10561 Primärschlüssel Fremdschlüssel PLZ 80686 80141 10899 10561 ORT Ort München München Berlin Berlin Beziehungen zwischen relationalen Tabellen 44 / 69 … … … … … Allgemeine Datenbankeigenschaften Objektrelationales GeoDBMS Geodatenbanken Räumlicher Index 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 2.Geodatenbanken 45 / 69 Geometrische Zugriffsstrukturen (räumlicher Index) Allgemeine Datenbankeigenschaften Geodatenbanken 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 2.Geodatenbanken 46 / 69 Allgemeine Datenbankeigenschaften Indexstrukturen in Datenbanken Geodatenbanken Räumlicher Index Um Anfragen an die Datenbank zu beschleunigen, verwendet man Indexe (gespeicherte, zusätzliche Informationen über die Daten in der Datenbasis). Bei Anfragen mit sehr großen Datenmengen werden als StandardIndexstrukturen Binär Bäume verwendet. <n … Kunden-Nr. … 92 … 1215 … 10301 Sortierung nach Größe Index Beispiel: Standarddatentyp Integer Wurzel 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. 2.Geodatenbanken 47 / 69 Allgemeine Datenbankeigenschaften Räumliche Anfragen Geodatenbanken Räumlicher Index 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? • Bereichsanfrage: Welche Orte (Polygone) liegen innerhalb des achsenparallelen Rechtecks Q? 2.Geodatenbanken Orte Name Einwohner Paunzhausen 1 200 Walterskirchen 250 Angerköfe 200 Geometrie Animation: 3x klicken 48 / 69 Allgemeine Datenbankeigenschaften Motivation Geodatenbanken Räumlicher Index 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 zu 2): Indexstrukturen für BBs aufbauen 2.Geodatenbanken Animation: 3x klicken 49 / 69 Allgemeine Datenbankeigenschaften R-Baum (1) Geodatenbanken Räumlicher Index Definition: dynamische Zugriffsmethode oder 01 Indexstruktur in der Datenhaltung für R11 02 mehrdimensionale Räume 03 Struktur entspricht einem balancierten Baum: 07 R15 R16 R13 Jede Baumebene gruppiert und aggregiert die 04 08 05 Elemente der nach-folgenden Ebene. R12 R14 09 10 In jedem Blatt werden Referenzen auf die 06 eigentlichen Geometrien, sowie deren 15 16 Bounding Boxes gespeichert. Jeder 13 14 11 12 Vaterknoten speichert für jeden seiner 08 10 Nachfolger wieder die Bounding Box über alle 01 02 03 04 06 09 05 07 seine Teilgeometrien. Animation: 3x klicken Legende: Beispiel: innere Knoten zeigen auf einen Teilbaum, welcher von einer BB begrenzt wird. 2.Geodatenbanken 15 Innere Knoten 11 Blattknoten 01 Blattknoten 50 / 69 Allgemeine Datenbankeigenschaften R-Baum (2) Geodatenbanken Räumlicher Index 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 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 2.Geodatenbanken 51 / 69 Strategie: Filter und Refine Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index 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. 2.Geodatenbanken 52 / 69 Allgemeine Datenbankeigenschaften R-Raum - Punktsuche Geodatenbanken Räumlicher Index Welche Bounding Boxes (BBs) enthalten den Punkt P? 01 Beginne an der Wurzel R11 02 03 07 R15 innere Knoten: Durchsuche jeden Sohnknoten, dessen BB P enthält P R13 04 08 05 R12 R14 10 09 06 Blattknoten: Suche alle BBs, die P enthalten 15 16 Achtung: Ggf. muss in mehreren Teilbäumen gesucht werden! 2.Geodatenbanken 13 14 11 12 01 02 03 Fertig! R16 04 06 09 05 07 08 10 Animation: klicken 53 / 69 Allgemeine Datenbankeigenschaften R-Baum - Bereichsanfrage Geodatenbanken Räumlicher Index Welche BBs liegen im Rechteck Q? 01 R11 02 Beginne an der Wurzel 03 07 R15 innere Knoten: Suche in jedem Sohnknoten, dessen DirBB das Rechteck Q schneidet R13 04 08 05 R12 Q R16 R14 10 09 06 15 16 Blattknoten: Suche alle BBs, die Q schneiden 13 14 11 12 01 02 03 04 06 09 05 07 08 10 Animation: klicken Fertig! 2.Geodatenbanken 54 / 69 Allgemeine Datenbankeigenschaften Quadtree Geodatenbanken Räumlicher Index Räumlicher Index als Erweiterung von Binärbäumen • Zerlegung des Raumes und Schaffung einer Zugriffsstruktur • 0 NW Baumartige Datenstruktur NW - jeder Knoten hat 0 oder 4 Nachfolger: Nordwest SW NO NW NO NW NO SOSW SO Nordost Animation: 5x klicken Südwest Südost - Blattknoten sind homogen 2.Geodatenbanken SO 55 / 69 SW NO SO SW Allgemeine Datenbankeigenschaften Aufbau des Quadtree Geodatenbanken Räumlicher Index Sukzessive Viertelung der Ebene in Unterquadrate, abhängig von der Lage der gegebenen Objekte. Speichergröße für ein Quadrat (Zelle) ist konstant (Größe abhängig vom Speichermedium). Aufteilung erfolgt, wenn Speichergröße für eine Zelle überschritten wird. - Gegeben: Raum begrenzt durch Rechteck - Einfügen eines Objektes (Polygon) - Einfügen eines weiteren Objektes (Linie) - Überschreitung der vorgegebenen Speichergröße Unterteilung in 4 Unterquadrate - Einfügen von weiteren Objekten und weitere Aufteilung der Zellen Animation: 4x klicken 2.Geodatenbanken 56 / 69 Allgemeine Datenbankeigenschaften Q-Tree: Beispiel Geodatenbanken Räumlicher Index Gegeben: P1 (x1, y1) Gesucht: Unterquadrat mit P1 0 1.) liegt P1 in 1, 2, 3, oder 4; Ergebnis: 4 1 1 3.) liegt P1 in 421, 422, 423 oder 424; Ergebnis: 422 2.Geodatenbanken 421 421 422 41 424 423 42 4 44 43 3 41 2 P1 2.) liegt P1 in 41, 42, 43 oder 44; Ergebnis: 42 2 3 Animation: klicken 57 / 69 4 42 422 43 423 44 424 Weitere Quadtree- Anwendungen Allgemeine Datenbankeigenschaften Geodatenbanken Räumlicher Index Räumliche Operatoren 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) 2.Geodatenbanken 58 / 69 Allgemeine Datenbankeigenschaften Zusammenfassung Geodatenbanken Räumlicher Index • Räumliche Indizes (Zugriffsstrukturen) haben hohe Bedeutung in der Geoinformatik. • Quadtree und R-Tree sind sehr verbreitet. • Weitere Verfahren: Räumliche Operatoren - Grid file - R*-Tree - ... 2.Geodatenbanken 59 / 69 Räumliche Operatoren Allgemeine Datenbankeigenschaften Geometrische Zugriffsstrukturen Räumliche Operatoren - Motivation - Geometrische Operatoren - Topologische Operatoren - Beispiele für - Übersicht topologische Operatoren nach Egenhofer - Verwendung in SQL 2.Geodatenbanken 60 / 69 Allgemeine Datenbankeigenschaften Geometrische Operatoren STArea STAsBinary STAsText STBoundary STBuffer STCentroid STContains STConvexHull STCrosses STDifference STDimension STDisjoint STDistance STEndpoint STEnvelope STEquals STExteriorRing STNumInteriorRing STGeometryN STNumPoints STGeometryType STOverlaps STInteriorRingN STPointN STIntersection STPointOnSurface STIntersects STRelate STIsClosed STSrid STIsEmpty STStartPoint STIsRing STSymDifference STIsSimple STTouches STIsValid STUnion STLength STWithin STNumGeometries STX, STY 2.Geodatenbanken -> in den GIS Produkten proprietär realisiert 61 / 69 Geometrische Zugriffsstrukturen Räumliche Operatoren Allgemeine Datenbankeigenschaften Geometrische Operatoren Geometrische Zugriffsstrukturen Beispiele: Räumliche Operatoren STArea (id1): Liefert die Fläche eines zweidimensionalen Spatial-Objekts (einer Fläche). Die Einheit hängt von der SRID ab und ist bei SRID 4326 ‚Quadratmeter’. STDistance(id1,id2) Liefert die Entfernung (Luftlinie) zweier Spatial-Objekte. Wie die Fläche ist die Einheit auch von der SRID abhängig. Ist diese 4326, so ist dies Meter. … 2.Geodatenbanken -> in den GIS Produkten proprietär realisiert 62 / 69 Topologische Operatoren und deren Definition Allgemeine Datenbankeigenschaften Geometrische Zugriffsstrukturen Räumliche Operatoren - Motivation - Topologische Operatoren - Beispiele für topologische Operatoren (1) - Beispiele für topologische Operatoren (2) - Verwendung in SQL 2.Geodatenbanken 63 / 69 Allgemeine Datenbankeigenschaften Motivation Geometrische Zugriffsstrukturen Räumliche Operatoren Vektortopologien in Geodatenbanken ermöglichen raumbezogene Anfragen. Beispiel Schemaplan: Wie komme ich mit öffentlichen Verkehrsmitteln von Ort A nach Ort B? Dabei werden Bahnstrecken als Kanten und Haltestellen als Knoten in Beziehung gesetzt. Die exakte geometrische Lage ist hier zweitrangig. Beispiel für eine topologische Darstellung 2.Geodatenbanken 64 / 69 Topologische Operatoren Allgemeine Datenbankeigenschaften Geometrische Zugriffsstrukturen Topologische Operatoren Mit Hilfe von Topologischen Operatoren werden die topologischen Beziehungen von zwei gegebenen Objekten analysiert. Gegeben: Objekt a, Objekt b Anwendung eines topologischen Operators (TOi) auf Element a und b: TOi (a,b) [True, false] 2.Geodatenbanken 65 / 69 Beispiele für Topologische Operatoren (1) Allgemeine Datenbankeigenschaften Geometrische Zugriffsstrukturen Topologische Operatoren Mit dem Operator „Overlap“ wird geprüft, ob sich zwei Objekte überlappen. Mit dem Operator “Disjoint” wird geprüft, ob sich zwei Objekte weder berühren Noch überlappen (also “disjoint” sind). F = Fläche, L = Linie 2.Geodatenbanken 66 / 69 Beispiele für Topologische Operatoren (2) Allgemeine Datenbankeigenschaften Geometrische Zugriffsstrukturen Topologische Operatoren Mit dem Operator „Touch“ wird geprüft, ob sich verschiedene Objekte Berühren. Mit dem Operator „In“ wird geprüft, ob ein Objekt ein anderes (vollständig) enthält. 2.Geodatenbanken 67 / 69 Übersicht topologische Operatoren nach Egenhofer Allgemeine Datenbankeigenschaften Geometrische Zugriffsstrukturen Topologische Operatoren x x x y y X disjoint y y y X touch y X equal y x x x X inside y y X contains y y x y x y X covers y X coveredby y 2.Geodatenbanken y X overlaps y Animation: 8 x klicken 68 / 69 Allgemeine Datenbankeigenschaften Verwendung in SQL Geometrische Zugriffsstrukturen Topologische Operatoren SQL Abfragestruktur SELECT spaltenname FROM tabellenname [WHERE bedingung]; SQL Beispiel mit einfacher Bedingung: SELECT autor, titel FROM buch WHERE autor = „Schiller“; 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`; 2.Geodatenbanken 69 / 69 Vielen Dank für die Aufmerksamkeit! Weitere Fragen? 2.Geodatenbanken 70 / 69 Kontakt Keine festen Sprechstunden, einfach vorbeikommen, oder besser vorher anrufen, bzw. noch besser: email schreiben Univ.-Prof. Dr.-Ing. Wolfgang Reinhardt AGIS / Inst. Für Angewandte Informatik (INF4) Universität der Bundeswehr München D-85577 Neubiberg Telefon +49 (0)89 6004-2450 Telefax +49 (0)89 6004-3906 [email protected] www.agis.unibw.de Geb 37/200 Raum 0208 2.Geodatenbanken 71 / 69