Einführung in die Geoinformatik 3

Werbung
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
Herunterladen