Einführung in die Geoinformatik 3 Prof. Dr. Sabine Timpf ©s.timpf 1 Ausgewählte Themen der Geoinformatik ©s.timpf • • • Erfassen geografischer Daten • • • Analyse der Geodaten Modellierung der Geodaten Entwicklung und Management von Datenbanken mit geografischen Daten (Geodatenmanagement) Visualisierung der Geodaten Entwicklung und Integration der Werkzeuge und Software für diese Aufgaben, insbesondere Weiterentwicklung von Geografischen Informationssystemen 2 2 Geodatenbanken topologisches Vektormodell räumliche Indizes SQL ©s.timpf 3 Konventionelle Datenbanksysteme (DBS) ©s.timpf • Bei konventionellen Datenbanksystemen spielt der Raumbezug der Geoobjekte keine besondere Rolle. Geometrische Merkmale werden hier ebenso wie Fachdaten als im Prinzip gleichwertige Attribute behandelt. • Dies hat den Vorteil, dass man sich um komplizierte geometrische Analysen und den Aufbau topologischer Beziehungen nicht kümmern muß. • Es hat aber auch den Nachteil, dass • geometrische Suchbedingungen (z.B.: Suche alle Geoobjekte innerhalb eines Raumausschnittes) und • topologische Abfragen (z.B.: Finde alle Polygone, die von einem Liniensegment geschnitten werden) nicht oder nur mit sehr hohem Aufwand möglich sind. 4 4 Geodatenbanksysteme • Wenn geometrische oder topologische Abfragen eine Rolle spielen, sollten Geodatenbanksysteme verwendet werden. • Diese unterscheiden sich von konventionellen DBS durch die • • • • • • ©s.timpf spezielle Behandlung der Koordinaten, die Einführung von räumlichen Typen, die Speicherung von topologischen Beziehungen und die Verwendung von räumlichen Indizes. Geodatenbanksysteme haben den Vorteil, dass • • geometrische Suchbedingungen und topologische Abfragen mit geringem Aufwand möglich sind. Nachteile sind • • • erhöhter Schulungsaufwand erhöhte Abhängigkeit von einem GIS-Anbieter Entwicklung der GDB bleibt häufig hinter technologischer Entwicklung zurück 5 5 Räumliche Basisanfragen: Punktanfrage ©s.timpf • Enthält eine Anfragebedingung eine oder mehrere Operationen, die einen Raumbezug aufweisen, wird die Anfrage auf eine oder eine Folge von räumlichen Basisanfragen zurückgeführt, die vom Geo-DBS effizient unterstützt werden müssen. • Zur Bearbeitung räumlicher Basisanfragen werden vom Geo-DBS geeignete Algorithmen und Datenstrukturen bereitgestellt. • Die Punktanfrage (engl. Point Query) bestimmt zu einem gegebenen Anfragepunkt p alle Geoobjekte, die diesen Punkt enthalten. • Ein typischer Anwendungsfall der Punktanfrage ist die Selektion von Geoobjekten über eine Koordinate oder eine interaktive Auswahl. 6 6 Basisanfrage: Rechteckanfrage ©s.timpf • Eine Rechteckanfrage (engl. Window Query) bestimmt zu einem gegebenen Anfragerechteck r alle Geoobjekte, die r schneiden (d.h. im Rechteck liegen oder einen Schnitt mit dessen Rand aufweisen). • Die Darstellung von (rechteckigen) Kartenausschnitten in einem GIS beruht auf der Rechteckanfrage. 7 7 Basisanfrage: Regionsanfrage ©s.timpf • Eine Regionsanfrage (engl. Region Query) bestimmt zu einem gegebenen Anfragepolygon pol alle Geoobjekte, die pol schneiden (d.h. im Polygon liegen oder einen Schnitt mit dessen Rand aufweisen) • Ein typischer Anwendungsfall ist die Bestimmung aller Geoobjekte innerhalb einer Pufferzone (z.B. aller Spielplätze in einem 150m breiten Streifen um alle Hauptstraßen einer Stadt). 8 8 Weitere Basisanfragen ©s.timpf • Abstandsanfragen (engl. Distance Queries) Abstandsanfragen bestimmen alle Geoobjekte, die sich in einer vorgegebenen Entfernung dist zu einem Anfragepunkt p befinden. Sie entsprechen kreisförmigen Regionsanfragen mit Radius dist. • Bestimmung der nächstgelegenen Nachbarn (engl. Nearest Neighbor Query, NNQ) Eine Nächste-Nachbar-Suche bestimmt zu einer Anfragegeometrie g die nächstgelegenen Objekte. • Es gibt verschiedene Varianten der NNQ: • Die einfache NNQ bestimmt als Anfrageergebnis das Geoobjekt, das den geringsten Abstand zu g aufweist. • Die k-Nearest Neighbor Query bestimmt die k nächstgelegenen Nachbarn zu g (k ist eine ganze Zahl größer 0). Die einfache NNQ entspricht somit der 1-Nearest Neighbor Query • Die inkrementelle NNQ bestimmt zunächst das zu g nächstgelegene Geoobjekt. Danach kann man wiederholt das Objekt mit der geringsten Distanz zu g anfordern, das noch nicht als Antwort geliefert worden ist. Die inkrementelle Nearest Neighbor Query ist also eine k-NNQ, bei der k zu Beginn der Anfrage noch nicht feststeht. 9 9 Weitere Basisanfragen • ©s.timpf Geometrischer Verbund • Der geometrische (oder räumliche) Verbund (engl. Spatial Join) ist eine Verbundoperation zwischen zwei (oder mehr) Relationen, die mindestens eine geometrische Verbundbedingung beinhaltet. • Eine solche geometrische Verbundbedingung ist zum Beispiel der Test auf Schnitt, d.h. es werden alle Paare von Geoobjekten bestimmt, deren Geometrie sich schneidet (Intersection Join). • Ein geometrischer Verbund ist die Grundlage für die Verschneidung von Karten (engl. Map Overlay) in einem GIS. 10 10 Beispiel: Messnetz Wetterstationen • • ©s.timpf Messnetz von automatischen Wetterstationen aufbauen und warten • Messdaten der unterschiedlichen Sensoren an den verschiedenen Messstationen sollen zentral gespeichert und verwaltet werden • Datenbanksystem aufbauen, das alle verfügbaren Informationen über die Messstationen und die gemessenen Wetterdaten enthält und für Auswertungen bereitstellt Externe Ebene: • • • Es sollen 12 Wetterstationen mit je 5 Sensoren erfasst werden. • • Die Sensoren haben unterschiedliche Hersteller Positionierung der Stationen im Gauß-Krüger-Koordinatensystem Lufttemperatur wird kontinuierlich in 10 cm, 100 cm und 200 cm Höhe, die Niederschlagssumme nur alle 24 Stunden geMessen Die Messstation wird von mehreren Personen betreut 11 11 Beispiel: Messnetz Wetterstationen • Konzeptionelle Ebene • • Jede Wetterstation erhält einen eindeutigen Objektidentifikator (Schlüssel) • Die Menge der Parameter bildet eine Objektklasse mit den Attributen Parametername und Maßeinheit • Die Messwerte werden in einer eigenen Objektklasse mit den Attributen Messdatum, Parametername und Messwert modelliert Die Gauß-Krüger-Koordinaten werden separat als Rechts- bzw. Hoch-Werte abgelegt (nicht als Wertepaar) Warum sind Parameter und Messwerte in jeweils einer eigenen Klasse? ©s.timpf 12 12 Beispiel: Messnetz Wetterstation • Die Standort-Beschreibung der Wetterstation mit Rechts- und Hochwert sowie Höhenlage soll hier nur durch Attribute erfolgen, soll also nicht definierende Eigenschaft der Objekte sein. Streng genommen betrachtet man damit die Wetterstationen nicht als Geoobjekte. • Jede Wetterstation hat einen bestimmten Standort. Die Klasse "Standort" besitzt die Attribute "Rechtswert", "Hochwert" und "Höhenlage". • • ©s.timpf Das Objekt "Wetterstation_am_Institut" besitzt die Attributwerte "3 403980,0m "5 758140,0m und "67,5m", wäre also mit dem aus drei Datenfeldern bestehenden Datensatz (3403980,0; 5758140,0; 67,5) in einer Datei aller Wetterstations-Standorte repräsentiert. Für das Beispiel der Wetterstationen können mehrere Dateien aufgebaut werden, etwa für die Standorte, Sensoren und Betreuer. Sie bilden gemeinsam die Datenbank "Wetterstationen". 13 13 Organisationsschema ©s.timpf • Konzeptionelle Modelle sind zwar eine notwendige Grundlage für ein funktionsfähiges Datenbanksystem, zur konkreten Implementierung reichen sie aber noch nicht aus. • Es fehlt ein Organisationsschema, in dem die Datenfelder, Datensätze und Dateien mit ihren Beziehungen zueinander abgebildet sind und in dem die Operationen im Datenbestand definiert werden. • Solche Organisationsschemata werden als konzeptionelle Datenschemata oder auch logische Datenmodelle bezeichnet. 14 14 Organisationsschema • Für konzeptionelle Modelle gibt es durchaus verschiedene Möglichkeiten der Umsetzung in ein konzeptionelles Datenschema. • Auch für die Modelle auf der externen und internen Ebene kann man z.B. die Unified Modeling Language UML als grafische Beschreibungssprache nutzen. • Die Datenbank-Theorie als Teilbereich der Informatik hat bislang vier Grundtypen konzeptioneller Datenschemata (Datenmodelle) entwickelt: • • • • • ©s.timpf (Hierarchisches Datenschema) (Netzwerk Datenschema) Relationales Datenschema Objekt-orientiertes Datenschema Objekt-relationales Datenschema 15 15 Relationales Datenschema • • Das relationale Datenschema basiert auf dem mathematischen Begriff der Relation. Eine Relation R ist definiert als Teilmenge einer Produktmenge P: • ©s.timpf R = { (a, b, . . . z) | a elem A, b elem B, . . . z elem Z} für A x B x . . . x Z = P • Stellt man sich die einzelnen Mengen A, B etc. jeweils als Wertemenge eines Attributes vor, so beschreibt jedes Attributwerte-Tupel (a, b, . . . z) gerade eine Entität innerhalb des durch diese Attribut-Menge definierten Entitätstyps. • Eine solche Relation lässt sich sehr anschaulich in Form einer Tabelle darstellen 16 16 Relationales Datenschema: Tabellen • Tabellenname = Relationenname; die Begriffe Relation und Tabelle werden deshalb in der Praxis meist gleichbedeutend benutzt. • Eine Spalte der Tabelle repräsentiert also ein bestimmtes Attribut mit den Attributwerten für alle Entitäten. Eine Tabellen-Zeile charakterisiert eine bestimmte Entität mit ihren Werten für alle Attribute. Die Tabellenstruktur als Ganzes stellt den Entitäts-Typ dar. Entität/Attribut ©s.timpf Attribut 1 Attribut 2 Attribut z Entität 1 Wert von Attribut 1 für Wert von Attribut 2 für Wert von Attribut z für Entität 1 Entität 1 Entität 1 Entität 2 Wert von Attribut 1 für Entität 2 Entität 3 Wert von Attribut 1 für Entität 3 17 17 Relationales Datenschema: Schlüssel • Die Assoziationen (1:1, 1:n, m:n) zwischen den Entitätstypen werden durch sog. Schlüssel hergestellt. • Schlüssel sind einzelne oder mehrere miteinander kombinierte Datenfelder (Attribute), die eigentlich sogar zwei Funktionen besitzen: • • ©s.timpf Schlüssel bilden die Assoziationen zwischen den Entitäten ab, d.h. sie stellen inhaltliche Querverweise zwischen verschiedenen Tabellen her (Zeiger, pointer). • In diesem Sinne sind es relative Zeiger, weil sie die Verbindung zu anderen Entitäten nicht über eine absolute Adresse von Datenelementen herstellen sondern über Attributwerte. • Dies hat den Vorteil, dass bei einer Änderung der physikalischen Speicherstruktur (z.B. neues Betriebssystem) das Datenmodell selbst nicht geändert werden muss. Schlüssel dienen zugleich der eindeutigen Identifikation von Datensätzen, also der Tabellenzeilen. Solche Schlüssel heissen Primärschlüssel. 18 18 Relationales Datenschema: Stabilität • Ein wesentliches Ziel beim Aufbau eines relationales Datenschema ist die Stabilität der Datenstruktur: • Durch logische Entkopplung (Auftrennung) der Tabellen sorgt man dafür, dass • • • ©s.timpf Änderungen der Daten einfacher durchgeführt werden können (möglichst nur in einer Tabelle) Redundanzen möglichst nicht auftreten (mehr Arbeit, mehr Speicherplatz). Als Stabilitätskriterien definiert man sog. Normalformen, die hierarchisch aufgebaute Anforderungen an die Relationen (Tabellen) richten. 19 19 Normalformen 1. 2. 3. ©s.timpf Normalform 1. Kein Datenelement darf mehrfach in einem Datentupel vorkommen (Eindeutigkeit der Namen) 2. Jedes Datentupel besitzt einen Primärschlüssel 3. Assoziationen werden nur durch Schlüssel (logische Verweise), nicht aber durch physische Speicheradressen abgebildet 4. Jedes Datenelement muss atomar sein Normalform 1. Die Relation besitzt die 1.NF 2. Jedes Datenelement, das nicht selbst zum Primärschlüssel gehört, ist voll funktional abhängig vom gesamten Primärschlüssel. Normalform 1. Die Relation besitzt die 2NF 2. Es gibt keine transitive Abhängigkeit eines Nicht-Primärschlüssels vom Primärschlüssel 20 20 Beispiel: Messnetz Wetterstationen Welche Entitäten gibt es hier? Welche Attribute? Wieviele Tabellen? ©s.timpf 21 21 Zerlegungsansatz • Ein wesentliches Merkmal des relationalen Datenbankmodells ist die Beschränkung auf atomare Datentypen gemäß der ersten Normalform. Dies wirft Probleme bei der Speicherung komplexer Datentypen wie Streckenzüge oder (Multi-) Polygone auf. • Ein naheliegender Lösungsansatz besteht aus dessen Zerlegung in mehrere Teile, die in verschiedenen Tabellen gespeichert werden. Diese Tabellen sind über Beziehungen miteinander verbunden. • • • • ©s.timpf Informationen, die eigentlich zusammengehören, verteilen sich auf mehrere Tabellen. Das Zusammenführen dieser Daten ist sehr aufwändig; man benötigt dazu viele Verbund- und Sortieroperationen Die Formulierung der dargestellten Anfrage ist recht benutzerunfreundlich. Räumliche Basisanfragen wie die Punktanfrage oder die Regionsanfrage lassen sich über SQL nicht formulieren. Der Zerlegungsansatz ist somit weder funktional noch von der Effizienz her eine befriedigende Lösung. 22 22 Getrennte Speicherung • Eine Lösung, die in der Vergangenheit bei Geoinformationssystemen oft zu finden war, ist die getrennte Speicherung von geometrischen und Sach- (d.h. nicht-geometrischen) Attributen: • • • • Die zugehörigen geometrischen Attribute sind in Dateien abgelegt. Die Kopplung zwischen diesen beiden Teilen eines Geoobjektes erfolgt über einen gemeinsamen Schlüssel. Nachteile • • ©s.timpf Die Sachattribute eines Geoobjektes sind in einer relationalen Datenbank gespeichert. Alle Vorteile von Datenbanksystemen für die geometrischen Attribute gehen verloren. Eine Nutzung der Geodaten außerhalb des spezifischen Geoinformationssystems wird vereitelt, da in der Regel das Datenformat proprietär ist und sich bei einem Versionswechsel des GIS verändern kann. 23 23 Standardmodell für komplexe Geometrien: Topologisches Vektormodell ©s.timpf 24 24 Nachteile der relationalen Modellierung ©s.timpf • Die Bildung komplexer Objekte (z.B. Wetterstation) durch Zusammensetzung einfacher Basis-Objekte ist aufwendig und erfordert mehrere Tabellen. • Grossvolumige Objekte wie z.B. Bilder sind im relationalen Datenmodell nicht vorgesehen. RDBMS-Entwickler haben deshalb den Datentyp BLOB (binary large object) eingeführt, um z.B. auch Bilder in einer relationalen DB speichern zu können. Allerdings sind dies 'proprietäre' Lösungen einzelner Hersteller; solche BLOBs können mit dem SQL-Standardsprachumfang nicht angesprochen werden. • Spezialisierte Klassen (z.B. Niederschlagsstationen) können Eigenschaften einer allgemeineren Klasse (z.B. Wetterstationen) nicht einfach erben sondern müssen in eigenen Relationen definiert werden. 25 25 Nachteile der relationalen Modellierung • Primärschlüssel zur Identifikation der Entitäten (Datensätze) einer Relation werden automatisch vom DBMS vergeben- diese Werte sind häufig einfach nur Zahlen; der Anwender muss dafür sorgen, dass die Primärschlüssel-Werte wirklich eindeutig (einmalig) und sinnvoll sind. • • ©s.timpf Welcher Primärschlüssel eignet sich für die Beschreibung von Städten? Das relationale Modell basiert auf dem Mengen-Konzept: Eine SQL-Abfrage liefert also eine Teilmenge von Daten. Moderne Programmiersprachen dagegen können auch einzelne Datenelemente bzw. Bestandteile von Datenelementen verarbeiten. Die Nutzung von RDBMS in anderen Systemen wird durch diesen sog. impedance mismatch erschwert. 26 26 Objekt-orientiertes Datenschema ©s.timpf • Jedes Objekt ist gegenüber der Umwelt gekapselt; sein Zustand kann nur über die Operationen erfragt und geändert werden, die in der entsprechenden Klasse definiert sind. Wenn also eine Klasse vollständig spezifiziert ist, interessiert nur noch das Verhalten der Objekte nach aussen, nicht mehr die internen Vorgänge. • Oberklassen und Unterklassen können als hierarchisches Konstrukt aufgebaut werden. Unterklassen erben die Attribute und Methoden der Oberklasse. Diese Vererbung ermöglicht die Wiederverwendung einmal definierter Strukturen und Operationen. • Eine Operation kann sich in verschieden Klassen unterschiedlich verhalten (Polymorphismus). Dies erlaubt eine allgemeine Definition von Methoden. 27 27 Objekt-orientiertes Schema • ©s.timpf entspricht den objekt-orientierten Modellierungsgrundsätzen: • Geoobjekte werden als Objekte mit eigener Identität modelliert; die Identität des Objektes wird systemseitig vergeben und geht während seiner Lebensdauer nicht verloren • • Objekte sind stets Instanzen (Exemplare) der sie erzeugenden Klasse. • Für jedes Attribut können der Datentyp, ein Initialwert und Gültigkeitsregeln angegeben werden. Neben den Standard-Datentypen (integer, real ect.) können auch komplexe Datentypen definiert werden (z.B. Koordinatentripel, image ect.) • Operationen beschreiben die Verhaltensweisen der Objekte und wie Objekte miteinander verarbeitet werden können. Die Klasse beschreibt die Struktur und das Verhalten der von ihr erzeugbaren Objekte; sie fungiert also als eine Art Bauplan für Objekte. Die Klasse spezifiziert sowohl die Attribute als auch die Operationen, die für alle Objekte gelten. 28 28 Beispiel: Messnetz Wetterstationen Welche Objekte gibt es hier? Welche Attribute? Welche Operationen? ©s.timpf 29 29 Objekt-relationales Schema • Das objektrelationale (und das objektorientierte) Datenbankmodell erlauben die Speicherung von komplexen Daten mit Hilfe benutzerdefinierter Klassen. • Damit sind sie für die integrierte Speicherung von Geoobjekten geeignet: • • • ©s.timpf Die erforderlichen geometrischen Basistypen können als Klassen definiert werden. Die erforderlichen geometrischen Methoden können den geometrischen Klassen hinzugefügt werden. Wenn dem Datenbanksystem die Struktur und die Bedeutung von Datentypen bekannt sind, kann dies prinzipiell auch bei der Anfragebearbeitung und -optimierung berücksichtigt werden. Für die räumlichen Basisanfragen bedeutet dies insbesondere, dass das DBS effizient die Datensätze auswählt, die räumliche Anfragenbedingungen erfüllen. Dies ist keine triviale Aufgabe und erfordert das Einbinden neuer Algorithmen und Datenstrukturen auch in tieferen Schichten des Datenbankmanagementsystems. 30 30 Anforderungen an Datentypen ©s.timpf • Alle wichtigen relationalen Konzepte bleiben beim objektrelationalen Datenbankmodell erhalten. Dazu sind weitere Anforderungen zu erfüllen. • Anforderungen an Datentypen Konzept Erläuterung Strukturierte Datentypen z.B. Feldtypen Benutzerdefinierte Datentypen z.B. benutzerdefinierte Verbundtypen Objektidentität erforderlich Klassen erforderlich Kapselung von Attributen optional Zugriffsrestriktionen Vererbung von Attributen erforderlich 31 31 Anforderungen an Methoden Konzept Erläuterung Methoden in der DB gespeicherte und dort ausführbare Methoden, die benutzerseitig programmiert sind Kapselung von Methoden optional: Zugriffsrestriktionen wie public, private etc. Vererbung von Methoden erforderlich Polymorphie erforderlich • Die Standardisierung objektrelationaler Erweiterungen erfolgte insbesondere über die beiden nachfolgenden SQL-Standards der ISO: • • ©s.timpf SQL:1999 (auch SQL-3 genannt) spezifiziert objektrelationale Erweiterungen SQL:2003 definiert zusätzliche Datentypen und Funktionalität 32 32 Objekte in objekt-relationalen DB • Im objektrelationalen Datenbankmodell können Objekte und Klassen auf zwei unterschiedliche Arten eingeführt werden. • • ©s.timpf Objekttabellen • Bei Objekttabellen korrespondiert eine Klasse mit der Tabelle und die Objekte entsprechen den Tupeln der Tabelle. • Objekttabellen besitzen immer eine Spalte für Object Identifier (OID), die die Aufgabe der Primärschlüssel übernehmen. • Tupel (= Objekte) sind über einen Referenztyp (REF) referenzierbar, denen die Rolle von Fremdschlüsseln zufällt. Spaltenobjekte • Spaltenobjekte sind Attributwerte in herkömmlichen Tabellen, bei denen allerdings eine Klasse den Datentyp des Attributs definiert. • Die 1. Normalform wird damit aufgegeben. 33 33 Objekt-relationale Datenbanksysteme • Ein objekt-relationales GDBS ist ein objekt-relationales DBS, dass einen Satz von geometrischen Datentypen mit entsprechenden geometrischen Methoden anbietet und (systemseitig) eine räumliche Anfragebearbeitung unterstützt. • In den letzten Jahren wurden eine Reihe von objektrelationalen GDBS entwickelt: • • • • • • ©s.timpf IBM Informix: Spatial DataBlade IBM DB2 mit Erweiterungskomponente Spatial Extender Microsoft SQL Server 2008 Spatial Oracle Spatial (unterstützt neben geometrischen auch topologische Datenmodelle) PostgreSQL -> PostGIS MySQL (ohne ojektrelationale Erweiterungen, Geometrie: MBR) 34 34 Standards für Geodatenbanken • Das Simple Feature Model ist eine Implementierungsspezifikation, die auf einer Untermenge des abstrakten Feature Geometry Models (ISO-Norm 19107 "Spatial Schema") beruht. • Das OGC hat drei Spezifikationen für Simple Features vorgelegt, die sich nach dem Einsatzzweck des Modells unterscheiden. Diese Norm gliedert sich in einen allgemeinen und einen datenbankspezifischen Teil: • • • ISO 19125-2: Simple Feature Access – SQL Option SQL/MM Spatial • Im Rahmen der Standardisierung von SQL hatte man erkannt, dass es eine Reihe von Anwendungsgebieten gibt, die man nicht im reinen SQL-Standard abdecken kann, sondern nur in SQL-Erweiterungen. Ein in diesem Rahmen entstandener Standard ist SQL/MM, wobei MM für Multimedia steht. Diese ISO-Norm 13249 untergliedert sich in einen allgemeinen Teil, der generelle Konzepte definiert, und in mehrere Unterbereiche: • • • • ©s.timpf ISO 19125-1: Simple Feature Access – Common Architecture "SQL/MM Full-Text" zur Unterstützung der Suche in Dokumenten "SQL/MM Still Image" zur Speicherung von Rasterbildern "SQL/MM Data Mining" zur Unterstützung von Suchanfragen insbesondere für DataWarehouse-Anwendungen "SQL/MM Spatial" für Geodaten. 35 35 Simple Features • Simple Features sind Geoobjekte mit Geometrien im zweidimensionalen Datenraum, deren Stützpunkte geradlinig miteinander verbunden sind. • Modell: • • • ©s.timpf abstrakte Klasse Geometry, verweist auf ein Spatial Reference System Subklassen Point, Curve, Surface, Geometry Collection Methoden • • • • zur Prüfung topologischer Beziehungen zur Approximation von Geometrien, zur Berechung geometrischer Eigenschaften (z.B. Länge, Abstand) und zur Verschneidung von Geometrien 36 36 Simple Feature Model ©s.timpf 37 37 Räumliche Indizes Materialien entnommen aus www.fergi.de und www.geoinformation.net ©s.timpf 38 Anfragebearbeitung in GeoDBs ©s.timpf • In relationalen Datenbanksystemen werden als Datenstrukturen für einen Index typischerweise B-Bäume bzw.Varianten davon eingesetzt. • B-Bäume sollen Datenbankblöcke organisieren. Daher entspricht ein Knoten eines BBaums einem Datenbankblock; es werden somit meist mehrere Datensätze in einem Knoten gespeichert • B-Bäume sind Suchbäume: Jeder Datensatz x im Baum besitzt einen Schlüssel S(x), wobei gilt: S(l) < S(x) für alle Datensätze l im „linken“ Teilbaum von x S(r) > S(x) für alle Datensätze r im „rechten“ Teilbaum von x • B-Bäume sind balanciert: Wenn n die Anzahl der gespeicherten Datensätze angibt, dann hängt die Höhe h logorithmisch von n ab; d.h. im Worst Case O(log n). 39 39 Definition B-Baum • Ein B-Baum der Ordnung m ist ein Suchbaum mit folgenden Eigenschaften: • • • • Jeder Knoten enthält höchstens 2m Schlüssel. Jeder Knoten außer der Wurzel enthält mindestens m Schlüssel. Die Wurzel enthält mindestens einen Schlüssel. Ein Knoten mit x Schlüsseln hat genau x+1 direkte Nachfahren (Sohnknoten) oder keine Nachfahren. • • ©s.timpf Falls keine Söhne existieren, handelt es sich um ein Blatt. Die maximale Anzahl von direkten Nachfahren beträgt damit 2m+1. • Alle Blätter befinden sich auf dem gleichen Niveau, d.h. die Weglänge von der Wurzel zu allen Blättern ist gleich; der B-Baum ist damit balanciert. • • Da ein B-Baum balanciert ist, gilt für dessen Höhe h: h ≤ logm+1 n Da jeder Knoten (mit Ausnahme der Wurzel) mindestens zur Hälfte mit Datensätzen gefüllt ist, beträgt die Speicherplatzausnutzung mindestens 50%. 40 40 Suche im B-Baum • • • B-Baum der Ebene 2 (0-1-2) Suche G Wurzel des Baumen: K • • ©s.timpf G < K = ja, dann im “linken” Teilbaum suchen G > C bzw. F = ja, dann im “rechten” Teilbaum suchen 41 41 Einfügen im B-Baum ©s.timpf • • Es wird das Blatt gesucht, in dem der neue Datensatz eingefügt wird. • • Im Vaterknoten kann es ggf. zu einem Überlauf kommen, der analog behandelt wird. Kommt es dabei zu einem Überlauf, so wird der Knoten aufgespalten und der "mittlere" Datensatz und ein neuer Verweis in den Vaterknoten eingefügt. Wird die Wurzel aufgespalten, so wird eine neue Wurzel angelegt, so dass der Baum um 1 in der Höhe zunimmt. 42 42 + B Bäume • • Eine wichtige Variante von B-Bäumen stellt der B+-Baum (sprich: B-Plus-Baum) dar. • Die inneren Knoten eines B+-Baums bilden das Verzeichnis (engl. Directory). Sie werden dementsprechend auch Verzeichnisknoten oder -blöcke genannt. • Die Einträge in den Directoryknoten heißen Separatoren. Für einen Separator sep gelten die folgenden Suchbaumeigenschaften: Dieser speichert die Daten nur in seinen Blättern, die daher auch Datenknoten oder Datenblöcke genannt werden. • • • • ©s.timpf sepl < sep für alle Separatoren sepl im „linken“ Teilbaum von sep, S(l) < sep für alle Datensätze l in den Blättern des „linken“ Teilbaums von sep, sepr > sep für alle Separatoren sepr im „rechten“ Teilbaum von sep und S(r) ≥ sep für alle Datensätze r in den Blättern des „rechten“ Teilbaums von sep. 43 43 + B ©s.timpf Bäume 44 44 + B ©s.timpf Bäume mit verkürzten Separatoren • In einem B+-Baum kann man Separatoren gegenüber den Originalschlüsseln verkürzen. Außerdem brauchen in den Verzeichnisknoten nur die Attribute, die zum Schlüssel gehören, gespeichert werden. • Damit ist die maximale Zahl der Einträge in einem Verzeichnisknoten deutlich größer als in einem Datenknoten bzw. einem Knoten eines B-Baums. • Dies führt zu einer geringeren Höhe gegenüber einem vergleichbaren B-Baum 45 45 + B • Bäume mit verkürzten Separatoren Warum ist es wichtig, dass der Baum in der Höhe möglichst klein ist? ©s.timpf 46 46 Räumliche Indizes ©s.timpf • Herkömmlichen Indizes liegt typischerweise mit B- oder B+-Bäumen eine Indexstruktur zugrunde, die eine lineare Ordnung benötigt, um die Daten im Suchbaum richtig anordnen zu können. • Eine solche lineare Ordnung ist für Zahlen oder Zeichenketten offenkundig gegeben, für geometrische Datentypen hingegen nicht. • Daher können herkömmliche Indexstrukturen nicht (ohne Weiteres) zur Indizierung von Geodaten eingesetzt werden. • Räumliche Indizes (engl. Spatial Access Methods, SAM) dienen dazu, die Kandidaten zu bestimmen, die potenziell eine räumliche Anfragebedingung erfüllen. 47 47 Räumliche Indizes • ©s.timpf Räumliche Indexstrukturen müssen • • Approximationen von Punkten, Linien und Flächen verwalten. • Geoobjekte laufend einfügen, löschen und verändern können, wobei die Effizienz der Indexstruktur dadurch sich nicht (wesentlich) verschlechtern darf. • • eine gute Speicherplatzausnutzung garantieren. • Die wichtigsten räumlichen Indexstrukturen sind R-Bäume und lineare Quadtrees. Räumliche Basisanfragen effizient ausführen. Eine unmittelbare Konsequenz aus dieser Forderung ist, dass Daten, die räumlich benachbart sind und daher in räumlichen Anfragen häufig gemeinsam eingelesen werden, mit hoher Wahrscheinlichkeit in einem gemeinsamen Datenbankblock liegen. robust bzgl. Anfragezeiten und Speicherplatzausnutzung gegenüber Ungleichverteilungen der Geoobjekte im Datenraum sein. 48 48 R-Baum • ©s.timpf Der R-Baum (engl. R-Tree) ist eine räumliche Indexstruktur, die zwei- oder mehrdimensionale Rechtecke mit Hilfe überlappender Blockregionen auf dem Hintergrundspeicher organisiert. siehe auch: http://www.geoinformation.net/lernmodule/folien/Lernmodul_08/Lerneinheit_11/index.html 49 49 R-Baum • Der R-Baum ist wie B+-Baum ein balancierter Baum, der ein Verzeichnis besitzt und bei dem alle Datenknoten den gleichen Abstand zur Wurzel haben. • Ein Verzeichnisknoten umfasst Einträge der Form (eintr.ref, eintr.mur). • • • ©s.timpf eintr.ref ist ein Verweis auf die Wurzel des zugehörigen Teilbaums. eintr.mur ist das MUR (minimale umschreibende Rechteck - minimum bounding rectangle mbr) um alle Rechtecke in diesem Teilbaum. Durch eintr.mur wird also die Blockregion des Knotens beschrieben, auf den eintr.ref verweist. 50 50 R-Baum • Beim Datenknoten korrespondiert ein Eintrag mit einem Datensatz, der ein Geoobjekt beschreibt oder auf ein Geoobjekt verweist. • Dazu enthält ein Eintrag im Datenknoten das MUR (eintr.mur) als Approximation der Objektgeometrie. • Das MUR dient als geometrischer Schlüssel, an dem sich die Einfüge- und Suchoperationen des R-Baums orientieren. ©s.timpf 51 51 Quadtrees ©s.timpf • Quadtrees (deutsch auch: Quadrantenbäume) sind räumliche Datenstrukturen, die einen k-dimensionalen Datenraum rekursiv in 2k gleich große Zellen unterteilen • • Je nach Variante lassen sich über Quadtrees Punkte, Linien oder Flächen verwalten. Quadtrees werden in vielen Anwendungsbereichen der Computergrafik und der Bildverarbeitung genutzt 52 52 PR-Quadtree • PR-Quadtree: Der (zweidimensionale) PR-Quadtree teilt eine Zelle solange in vier neue Zellen auf, die nach der jeweiligen Himmelsrichtung mit NW, NO, SW und SO bezeichnet sind, bis die Zelle nur noch einen Punkt enthält. NW NO SW SO ©s.timpf 53 53 Linearer Quadtree ©s.timpf • Der PR-Quadtree speichert maximal nur einen Punkt pro Zelle. Ein solches Verfahren ist als Index für Geodatenbanken zunächst völlig ungeeignet, denn eine Indexstruktur muss in der Lage sein, mehrere Datensätze in einem Block zusammenzufassen. • Ein Linearer Quadtree bildet die Quadtree-Zellen in den eindimensionalen Datenraum ab und definiert dazu eine Ordnungsrelation, um die Zellen mit Hilfe einer herkömlichen Indexstruktur verwalten zu können. 54 54 Linearer Quadtree • Die Zellen eines Quadtree sind reguläre Binärregionen: • Eine Binärregion entsteht durch fortgesetztes Halbieren des Datenraums bezüglich jeder der Dimensionen. • Eine reguläre Binärregion ist eine Binärregion, die durch zyklischen Wechsel der Dimension, bezüglich der halbiert wird, entstanden ist. • Die Auflösung einer Binärregion gibt an, wie oft der ursprüngliche Datenraum halbiert wurde. 2 ©s.timpf 3 1 55 55 Linearer Quadtree: z-Wert • • Eine reguläre Binärregion kann durch eine Binärfolge repräsentiert werden: • Falls die zu beschreibende Region sich links bzw. unterhalb der Partitionierungslinie befindet, wird bei jedem Halbieren eine 0 gesetzt. • Falls die zu beschreibende Region sich rechts bzw. oberhalb der Partitionierungslinie befindet, wird bei jedem Halbieren eine 1 gesetzt. Damit erhält man eine Binärfolge, die als ganze Zahl interpretiert werden kann: • • • • • ©s.timpf die zuletzt bestimmte Ziffer = Stelle 20 = 1, die vorletzte Ziffer = Stelle 21 = 2 die vorvorletzte Ziffer = Stelle 22 = 4 usw. z-Wert: 011 Ein z-Wert ist das Paar, das aus der Binärfolge, die eine reguläre Binärregion beschreibt, und der Auflösung der Binärregion (= Anzahl der Binärstellen der Binärfolge) besteht. 56 56 SQL die wichtigsten Befehle Materialien entnommen aus www.gitta.info ‘Die relationale Anfragesprache SQL’ ©s.timpf 57 SQL - Abfragesprache ©s.timpf • SQL (Structured Query Language) ist eine standardisierte Abfragesprache, die alle erforderlichen Sprachelemente enthält, um sämtliche Arbeiten, die beim Umgang mit einer relationalen Datenbank anfallen, auszuführen. • SQL wird als einer der Hauptgründe für den kommerziellen Erfolg von relationalen Datenbanken in der Geschäftswelt angesehen. Grundlage für die Datenmanipulation im Relationenmodell bildet die relationale Algebra. • SQL kann in drei konzeptionelle Einheiten aufgeteilt werden: • Datendefinition (DDL – Data Definition Language) – zuständig für die Erstellung und Veränderung der Struktur der Datenbank • Datenmanipulation (DML – Data Manipulation Language) – zuständig für den (Daten-) Inhalt der Datenbank (Daten hinzufügen, ändern, löschen, abfragen,...) • Datenkontrolle / -steuerung (DCL – Data Controlling Language) – zuständig für die Sicherheit der Datenbank 58 58 Data Definition Language: DDL • In SQL werden die Begriffe TABLE, ROW und COLUMN synonym für Relation, Tupel und Attribute gebraucht. • CREATE TABLE-Befehl definiert ein Relationenschema in der Datenbank create table Abonnement ( ©s.timpf Name char (30) not null, KundNr number (5) not null, AboArt char (15) default ‘jährlich’ check (Aboart in (‘jährlich’, ‘halbjährlich’)), AboBeginn date, constraint pk_abo primary key (Name, KundNr), constraint fk_name foreign key (Name) references Zeitung (Name), constraint fk_kundnr foreign key (KundNr) references Kund (KundNr) ); 59 59 Tabellenmanipulationen • • • http://www.gitta.info/RelQueryLang/de/multimedia/SQL_create.swf • ALTER [COLUMN] <Attributname> SET DEFAULT <Standardwert> neuen Standardwert festlegen • ALTER [COLUMN] <Attributname> DROP DEFAULT aktuellen Standardwert löschen • DROP [COLUMN] <Attributname> {RESTRICT | CASCADE} löschen eines Attributes • ADD <Tabellenbeschränkung> neue Tabellenbeschränkung hinzufügen (Tabellenbeschränkung wie bei CREATE) ©s.timpf http://www.gitta.info/RelQueryLang/de/multimedia/SQL_alter.swf ADD [COLUMN] <Attributdefintion> Attribut hinzufügen (Attributdefiniton wie bei CREATE) 60 60 DML - Data Manipulation Language • Möglichkeiten der Datenmanipulation mit SQL können in zwei Kategorien eingeteilt werden: • • • Datenbankabfragen (verändern die Inhalte nicht) Datenmanipulationen (ändern die Inhalte) Grundsätzliche Struktur von SQL Anfragen: SELECT <Attributliste> FROM <Relationenliste> WHERE <Bedingungen>; ©s.timpf • <Attributliste> besteht aus den Namen der Attribute, deren Werte man durch die Anfrage erhalten möchte. • <Relationenliste> ist die Aufführung der Namen der Relationen, die für die Anfrage gebraucht werden. • <Bedingungen> die jene Tupel identifizieren, die durch die Anfrage zurückgegeben werden sollen. 61 61 Datenbankabfragen • Standardanfrage: • • Verkettung • • http://www.gitta.info/RelQueryLang/de/multimedia/SQL_Basic5.swf Mengenoperation • ©s.timpf http://www.gitta.info/RelQueryLang/de/multimedia/SQL_Basic7.swf Verbundoperation (Daten aus mehreren Relationen miteinander verknüpfen) • • http://www.gitta.info/RelQueryLang/de/multimedia/SQL_Basic4.swf Arithmetische Operation (z.B. +, *, -, /) • • http://www.gitta.info/RelQueryLang/de/multimedia/SQL_Basic2.swf Vergleichsoperation (z.B. =, >, <...) • • http://www.gitta.info/RelQueryLang/de/multimedia/SQL_Basic1b.swf http://www.gitta.info/RelQueryLang/de/multimedia/SQL_Basic10.swf 62 62 Anwendungsbeispiel ©s.timpf • • Finden Sie die korrekten Lösungstabellen für die nachstehenden SQL Anfragen. • Select pname From projekt Where abt = 5 PR pnummer = 30 • Select Angestellter.nname From angestellter, arbeitet_an Where arbeitet_an.projekt = ’20’ And angestelter.ahvnr = arbeitet_an.ang Select vname, nname From angestellter Where salaer = 25000 and ahvnr > 5000 63 63 Datenbankmanipulationen • Einfügen von Tupeln • • Löschen von Tupeln • • http://www.gitta.info/RelQueryLang/de/multimedia/SQL_delete.swf Ändern von Tupeln • ©s.timpf http://www.gitta.info/RelQueryLang/de/multimedia/SQL_insert.swf http://www.gitta.info/RelQueryLang/de/multimedia/SQL_update.swf 64 64 DCL - Data Control Language • SQL-Befehle der Datenkontroll-Sprache (DCL) kontrollieren die Sicherheit und die Zugriffsrechte für Objekte oder Teile eines Datenbanksystems. • • Diese Befehle können in verschiedenen Implementierungen der SQL stark variieren. Typische Befehle sind: • • • ©s.timpf GRANT – vergibt Zugriffsrechte DENY – verweigert Zugriffsrechte REVOKE – löscht vorher vergebene oder verweigerte Zugriffsrechte 65 65 Spezialfälle der Modellierung von Geodaten Oberflächen - TIN’s Strassennetze - Netzwerke ©s.timpf 66 Oberflächenmodellierung • ©s.timpf Triangular Irregular Networks 67 67 Netzwerke, z.B. Strassen, Leitungen, Gewässer • ©s.timpf Graphen/Netzwerke 68 68