verwaltung von geodaten in datenbanksystemen · create table rivers (name varchar(30) primary key,...

22
© DBIS Uni Augsburg 2011 Verwaltung von Geodaten in Datenbanksystemen

Upload: others

Post on 21-Nov-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

© DBIS Uni Augsburg 2011

Verwaltung von Geodaten in

Datenbanksystemen

© DBIS Uni Augsburg 2011

ISO/IEC 13249 SQL/MM

• Standardisierung von SQL-Erweiterungen für Multimedia und applikationsspezifische Pakete

• Part 1: Definitionen und Konventionen, Rahmenbedingungen zur Implementierung

• Part 2: Volltext-Suche, die über die Standardfunktionalität von SQL hinausgeht

• Part 3: Speicherung, Abfrage und Verarbeitung von räumlichen Daten

• Part 4: allgemeine Funktionalität • Part 5: Verwaltung von Bilddaten• Part 6: Data-Mining

2

© DBIS Uni Augsburg 2011

Räumliche Daten

• Geometrien wie Punkte, Linienzüge und Polygone und daraus bestehende zusammengesetzte Geometrien werden als räumliche Daten bezeichnet

• Geographische Geometrie: „a point or aggregate of points representing a feature on the ground.“

• Geometrien haben Koordinaten bezüglich eines eindeutigen Bezugspunktes

• Räumliche Bezugssysteme: –Geographische Koordinatensysteme –Projizierte Koordinatensysteme–EPSG-Bezugssysteme

3

© DBIS Uni Augsburg 2011

Räumliche Datentypen

• OpenGIS Simple Features Specification for SQL

• Definition von Beziehungen und Vererbung• Beispiel: Methode Area für Surface und Subklassen,

ExteriorRing nur für Polygon4

• SQL Type Hierarchy für SQL/MM Standard

• Hinterlegte Typen sind nicht instanziierbar, alle Typen repräsentieren Features in 2D

© DBIS Uni Augsburg 2011

Räumliche Datentypen

5

© DBIS Uni Augsburg 2011

Unterschiede OGC und SQL/MM

6

OGC Simple Feature SQL/MM Part 3

Line, LinearRing ST_LineString

nur lineare Segmente zusätzliche Typen für Kurven: z.B. ST_CircularString, ST_CompoundCurve

Assoziation zwischen MultiPoint und Point

Typ von Aggregationen nicht ersichtlich

• St_LineString: Startpunkt und Endpunkt eines Segments durch (x,y) Koordinate gegeben, dazwischen lineare Interpolation

• ST_CircularString: Segment besteht aus drei Punkten, Startpunkt, Endpunkt und Punkt auf dem Kreisbogen

• ST_CompoundCurve: Kombination beider Segmenttypen

© DBIS Uni Augsburg 2011

Geometrien mit Kreisbögen

7

© DBIS Uni Augsburg 2011

Geometrien mit Kreisbögen

• Auch 2D-Oberflächen können mittels Kreisbögen definiert werden

• Die Begrenzung einer Fläche ist dabei eine Kurve, oder eine Menge von Kurven, sofern die Oberfläche Löcher enthält

• ST_CurvePolygon erlaubt Kurven als Begrenzung, ST_Polygon nur lineare Verbindungen zwischen Punkten

8

© DBIS Uni Augsburg 2011

Methoden

• 4 Kategorien von Methoden:– Konvertierung zwischen Geometrien und externen

Datenformaten– Bezug von Maßeinheiten oder Eigenschaften einer

Geometrie– Vergleich zweier Geometrien bezüglich ihrer räumlichen

Beziehung– Erstellung neuer Geometrien aus bestehenden

• Eindeutige Zuordnung zu einer Kategorie oft nicht möglich, siehe ST_FirstPoint

9

© DBIS Uni Augsburg 2011

Konvertierung

• Konvertierung in externe Datenformate bzw. aus externen Datenformaten

• well-known text representation (WKT):–POINT (30 10)

–LINESTRING (30 10, 10 30, 40 40)

–MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))

• well-known binary representation (WKB)• geography markup language (GML)

10

© DBIS Uni Augsburg 2011

Konvertierung

• Konstruktormethoden für alle instanziierbaren Typen bezüglich WKT und WKB

• ST_LineFromGML, ST_MPointFromGML für GML• ST_GeometryFromWKB, ST_PointFromText für

Rückwärtskompatibilität

11

© DBIS Uni Augsburg 2011

Abfrage von Eigenschaften

• Eigenschaften von Geometrien:–ST_Boundary: gibt die Begrenzung einer Geometrie

zurück–ST_IsValid: überprüft Geometrie auf Validität–ST_IsEmpty: überprüft, ob eine Geometrie leer ist–ST_X bzw. ST_Y: gibt die X oder Y Koordinate eines

Punktes zurück–ST_IsRing: testet, ob eine Kurvengeometrie ein Ring

ist–ST_Length: gibt die Länge eines Linestrings oder

Multilinestrings zurück12

© DBIS Uni Augsburg 2011

Vergleich zweier Geometrien

• Notwendige Funktionen zur Beantwortung komplexer GIS-Anfragen:–Welche Gebäude befinden sich in einer

Überflutungszone?–Wo gibt es Kreuzungen von Straßen und

Eisenbahnschienen?

13

© DBIS Uni Augsburg 2011

Vergleich zweier Geometrien

• ST_Equals: testet räumliche Gleichheit von Geometrien• ST_Disjoint: testet, ob sich zwei Geometrien nicht

schneiden• ST_Intersects, ST_Crosses, ST_Overlaps: testet, ob

sich die Innenbereiche von Geometrien nicht überschneiden

• ST_Touches: testet, ob sich zwei Geometrien in ihren Begrenzungen berühren, aber nicht in ihren Innenbereichen überschneiden

• ST_Within, ST_Contains: testet, ob sich eine Geometrie vollständig in einer anderen befindet

14

© DBIS Uni Augsburg 2011

Erstellung neuer Geometrien

• Methoden, die die Erstellung neuer Geometrien aus bestehenden Geometrien erlauben

• Neue Geometrien entstehen aus der Anwendung von Mengen-Operationen auf zwei Geometrien oder auf die Anwendung von Algorithmen auf eine Geometrie

• ST_Buffer: konstruiert einen Buffer in festem Abstand von der Geometrie

• ST_ConvexHull: berechnet die konvexe Hülle einer Geometrie

• ST_Difference, ST_Intersection, ST_Union: konstruiert die Differenz, den Schnitt zweier Punktmengen

15

© DBIS Uni Augsburg 2011

Szenario: Versicherung

• Nach einer Flut möchte die Versicherungsgesellschaft alle Informationen von Gebäuden innerhalb der Überflutungszone verändern.

• Relationen:

16

rivers(name, water_amount, river_line, flood_zones)

buildings(customer_name, street, city, zip, ground_plot)

© DBIS Uni Augsburg 2011

Szenario: Versicherung

• DDL:

17

CREATE TABLE rivers (name VARCHAR(30) PRIMARY KEY,water_amount DOUBLE PRECISION,river_line ST_LineString,flood_zones ST_MultiPolygon )

CREATE TABLE buildings (customer_name VARCHAR(50) PRIMARY KEY,street VARCHAR(50),city VARCHAR(20),zip VARCHAR(10),ground_plot ST_Polygon )

© DBIS Uni Augsburg 2011

Szenario: Versicherung

• Erweitern der Überflutungszonen des Flusses „Lech“ um 2 Kilometer:

• Auswahl der Kunden, die in den erweiterten Überflutungszonen leben:

18

UPDATE riversSET flood_zones = flood_zones.ST_Buffer(2, 'KILOMETER')WHERE name = 'Lech'

SELECT customer_name, street, city, zipFROM buildings AS b, rivers AS rWHERE b.ground_plot.ST_Within(r.flood_zones) = 1

© DBIS Uni Augsburg 2011

Information Schema

• Das Information Schema gibt Applikationen eine Möglichkeit, die unterstützten und bereitgestellte räumliche Funktionalität zu ermitteln.

• Das Information Schema besteht aus vier Views

19

© DBIS Uni Augsburg 2011

Information Schema

• ST_GEOMETRY_COLUMNS: listet alle Attribute aller Relationen vom Typ ST_Geometry oder Untertypen

• ST_SPATIAL_REFERENCE_SYSTEMS: listet Namen und numerischen Identifier von räumlichen Referenzsystemen (SRS)

• ST_UNITS_OF_MEASURE: listet unterstützte Maßeinheiten für Berechnungen auf.

• ST_SIZINGS: listet Meta-Variablen und deren Werte. Eine gültige Meta-Variable ist z.B. die maximal zulässige Länge von WKT-Strings.

20

© DBIS Uni Augsburg 2011

Ausblick

• Folien beziehen sich auf die erste Version des Standards

• Aktuelle Version ISO/IEC 13249-3:2011• Standard enthält seit der dritten Edition (2006) auch ein

Netzwerk- und ein Topologiedatenbankschema sowie z-Koordinaten

• Implementiert von PostGIS und Oracle Spatial

21

© DBIS Uni Augsburg 2011

Literatur

22

[1] Stolze K., SQL/MM Spatial: The Standard to Manage Spatial Data in Relational Database Systems, In Proceedings Databases for Business, Technology and the Web, Leipzig, 2003

[2] Störl U., Geodatenbanksysteme SS 2011, https://www.fbi.h-da.de/fileadmin/personal/u.stoerl/DBAkt-SS11/Vorlesung/DBAkt-SS11-GeoDB-Kap2.pdf [Zugriff: 11.05.11]