verwaltung von geodaten in datenbanksystemen · create table rivers (name varchar(30) primary key,...
TRANSCRIPT
© 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]