Integration of Spatial Data in Enterprise Relational Database Systems

Werbung
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Integration of Spatial Data in
Enterprise Relational Database Systems
– Integration von räumlichen Daten in komplexen
relationalen Datenbanksystemen –
Knut Stolze
Lehrstuhl für Datenbanken und Informationssysteme
Friedrich–Schiller–Universität Jena
2006–11–10
Einführung
Unterstützung für 3D
Graphenoperationen
Agenda
1
Einführung
Räumliche Daten
SQL/MM Part 3: Spatial
2
Unterstützung für 3D
Erweiterung der Norm
Spatial 3D Extender Prototyp
Ergebnisse
3
Graphenoperationen
Erweiterung der Norm
Spatial Graph Extender Prototyp
Ergebnisse
4
Zusammenfassung & Ausblick
Zusammenfassung & Ausblick
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Räumliche Daten in Datenbanksystemen
Hauptsächlich für Karten genutzt
Typische Anfragen
Gib mir alle Daten von Kunden, die nicht weiter als 100km
vom meinem Laden entfernt wohnen.
Welche Gebäude existieren in einem bestimmten
Schutzgebiet, und wer sind die jeweiligen Besitzer?
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Räumliche Daten in Datenbanksystemen
Hauptsächlich für Karten genutzt
Typische Anfragen
Gib mir alle Daten von Kunden, die nicht weiter als 100km
vom meinem Laden entfernt wohnen.
Welche Gebäude existieren in einem bestimmten
Schutzgebiet, und wer sind die jeweiligen Besitzer?
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Typen von räumlichen Daten
Modellieren Objekte im 2-dimensionalen Raum
(Koordinatensystem)
Reale Objekte wie bspw. Straßen, Grundstücke, Brunnen,
Stromleitungen, . . .
Grundobjekte sind Punkte, Kurven (Linienzüge), Flächen
(Polygone) und Kollektionen
⇒ ISO/IEC 13249-3 SQL/MM: Spatial normiert räumliche
Funktionalität in relationalen Datenbanksystemen
Abgeleitet von der OpenGIS Simple Feature Specification
for SQL, die vom Open Geospatial Consortium stammt
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Typen von räumlichen Daten
Modellieren Objekte im 2-dimensionalen Raum
(Koordinatensystem)
Reale Objekte wie bspw. Straßen, Grundstücke, Brunnen,
Stromleitungen, . . .
Grundobjekte sind Punkte, Kurven (Linienzüge), Flächen
(Polygone) und Kollektionen
⇒ ISO/IEC 13249-3 SQL/MM: Spatial normiert räumliche
Funktionalität in relationalen Datenbanksystemen
Abgeleitet von der OpenGIS Simple Feature Specification
for SQL, die vom Open Geospatial Consortium stammt
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
SQL/MM Spatial – Typhierarchie
ST_Geometry
ST_Point
ST_Curve
ST_Surface
ST_LineString
ST_Polygon
ST_GeomCollection
ST_MultiPoint
ST_MultiCurve
ST_MultiSurface
ST_MultiLineString
ST_MultiPolygon
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
SQL/MM Spatial – Funktionalität
1
Konvertierung von und zu externen Datenformaten
WKT, WKB und GML Repräsentationen
ST_AsBinary, ST_AsGML, . . .
2
Ermitteln von geometrischen Eigenschaften
3
Räumlicher Vergleich zweier Geometrien
ST_IsRing, ST_Length, . . .
ST_Intersects, ST_Contains, . . .
4
Generation neuer Geometrien
ST_Buffer, ST_Union, . . .
Norm definiert lediglich Basisfunktionalität.
Produkte
DB2 Spatial Extender, Oracle Spatial
MySQL Spatial, PostgreSQL + PostGIS
MapInfo SpatialWare
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
SQL/MM Spatial – Funktionalität
1
Konvertierung von und zu externen Datenformaten
WKT, WKB und GML Repräsentationen
ST_AsBinary, ST_AsGML, . . .
2
Ermitteln von geometrischen Eigenschaften
3
Räumlicher Vergleich zweier Geometrien
ST_IsRing, ST_Length, . . .
ST_Intersects, ST_Contains, . . .
4
Generation neuer Geometrien
ST_Buffer, ST_Union, . . .
Norm definiert lediglich Basisfunktionalität.
Produkte
DB2 Spatial Extender, Oracle Spatial
MySQL Spatial, PostgreSQL + PostGIS
MapInfo SpatialWare
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
SQL/MM Spatial – Funktionalität
1
Konvertierung von und zu externen Datenformaten
WKT, WKB und GML Repräsentationen
ST_AsBinary, ST_AsGML, . . .
2
Ermitteln von geometrischen Eigenschaften
3
Räumlicher Vergleich zweier Geometrien
ST_IsRing, ST_Length, . . .
ST_Intersects, ST_Contains, . . .
4
Generation neuer Geometrien
ST_Buffer, ST_Union, . . .
Norm definiert lediglich Basisfunktionalität.
Produkte
DB2 Spatial Extender, Oracle Spatial
MySQL Spatial, PostgreSQL + PostGIS
MapInfo SpatialWare
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Lücken in der Norm
Kleinere Probleme
⇒ Ungeeignete Typhierarchie
⇒ Duplizierte Funktionalität
⇒ Fehlende Basisfunktionalität
Keine adäquate Einbindung in Schnittstellen zum
Datenbanksystem, wie z. B. JDBC
⇒ Anwendungen implementieren Verfahren selbst oder
ignorieren räumliche Daten
Keine Unterstützung von 3D-Objekten
⇒ Unerlässlich für CAD Anwendungen
⇒ Selbst GIS stellen mehr und mehr 3D-Funktionalität bereit
Keine Unterstützung für komplexere Operationen
⇒ Routenplanung und andere Graphenalgorithmen
⇒ Relationales Spatial Data Mining
Unzureichende Integration in föderierte Systeme und
Replikationskonfigurationen
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Lücken in der Norm
Kleinere Probleme
⇒ Ungeeignete Typhierarchie
⇒ Duplizierte Funktionalität
⇒ Fehlende Basisfunktionalität
Keine adäquate Einbindung in Schnittstellen zum
Datenbanksystem, wie z. B. JDBC
⇒ Anwendungen implementieren Verfahren selbst oder
ignorieren räumliche Daten
Keine Unterstützung von 3D-Objekten
⇒ Unerlässlich für CAD Anwendungen
⇒ Selbst GIS stellen mehr und mehr 3D-Funktionalität bereit
Keine Unterstützung für komplexere Operationen
⇒ Routenplanung und andere Graphenalgorithmen
⇒ Relationales Spatial Data Mining
Unzureichende Integration in föderierte Systeme und
Replikationskonfigurationen
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Lücken in der Norm
Kleinere Probleme
⇒ Ungeeignete Typhierarchie
⇒ Duplizierte Funktionalität
⇒ Fehlende Basisfunktionalität
Keine adäquate Einbindung in Schnittstellen zum
Datenbanksystem, wie z. B. JDBC
⇒ Anwendungen implementieren Verfahren selbst oder
ignorieren räumliche Daten
Keine Unterstützung von 3D-Objekten
⇒ Unerlässlich für CAD Anwendungen
⇒ Selbst GIS stellen mehr und mehr 3D-Funktionalität bereit
Keine Unterstützung für komplexere Operationen
⇒ Routenplanung und andere Graphenalgorithmen
⇒ Relationales Spatial Data Mining
Unzureichende Integration in föderierte Systeme und
Replikationskonfigurationen
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Lücken in der Norm
Kleinere Probleme
⇒ Ungeeignete Typhierarchie
⇒ Duplizierte Funktionalität
⇒ Fehlende Basisfunktionalität
Keine adäquate Einbindung in Schnittstellen zum
Datenbanksystem, wie z. B. JDBC
⇒ Anwendungen implementieren Verfahren selbst oder
ignorieren räumliche Daten
Keine Unterstützung von 3D-Objekten
⇒ Unerlässlich für CAD Anwendungen
⇒ Selbst GIS stellen mehr und mehr 3D-Funktionalität bereit
Keine Unterstützung für komplexere Operationen
⇒ Routenplanung und andere Graphenalgorithmen
⇒ Relationales Spatial Data Mining
Unzureichende Integration in föderierte Systeme und
Replikationskonfigurationen
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Lücken in der Norm
Kleinere Probleme
⇒ Ungeeignete Typhierarchie
⇒ Duplizierte Funktionalität
⇒ Fehlende Basisfunktionalität
Keine adäquate Einbindung in Schnittstellen zum
Datenbanksystem, wie z. B. JDBC
⇒ Anwendungen implementieren Verfahren selbst oder
ignorieren räumliche Daten
Keine Unterstützung von 3D-Objekten
⇒ Unerlässlich für CAD Anwendungen
⇒ Selbst GIS stellen mehr und mehr 3D-Funktionalität bereit
Keine Unterstützung für komplexere Operationen
⇒ Routenplanung und andere Graphenalgorithmen
⇒ Relationales Spatial Data Mining
Unzureichende Integration in föderierte Systeme und
Replikationskonfigurationen
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Lücken in der Norm
Kleinere Probleme
⇒ Ungeeignete Typhierarchie
⇒ Duplizierte Funktionalität
⇒ Fehlende Basisfunktionalität
Keine adäquate Einbindung in Schnittstellen zum
Datenbanksystem, wie z. B. JDBC
⇒ Anwendungen implementieren Verfahren selbst oder
ignorieren räumliche Daten
Keine Unterstützung von 3D-Objekten
⇒ Unerlässlich für CAD Anwendungen
⇒ Selbst GIS stellen mehr und mehr 3D-Funktionalität bereit
Keine Unterstützung für komplexere Operationen
⇒ Routenplanung und andere Graphenalgorithmen
⇒ Relationales Spatial Data Mining
Unzureichende Integration in föderierte Systeme und
Replikationskonfigurationen
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Modellierung von 3D-Objekten
Erweiterte Typhierarchie für Polyeder
ST_Geometry
ST_Solid
ST_Polyhedron
Gekrümmte Flächen mit Polygonen annähern
⇒
⇒
Neue Funktionen
ST_Volume, ST_BoundingArea, ST_ExteriorShell,
ST_InteriorShellN und ST_NumFacets
Anpassung existierender Funktionen für
1
2
Operationen auf 3D-Geometrien
Berechnungen im 3D-Raum
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Spatial 3D Extender
DB2 Spatial Extender um 3D-Funktionalität erweitert
CGAL Bibliothek für 3D-Berechnungen genutzt
Computational Geometry Algorithms Library
Geometrische Algorithmen mit optimaler theoretischer
Laufzeit
Nef-Polyeder für beliebige Objekte in 3D-Raum
Anwendung
Spatial Extender ESRI shape
3D Extender CGAL
DB2 UDB
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Performance-Tests
Angenäherte Kugeln mit steigender Komplexität
Funktionen
2
Formatkonvertierungen
Vergleich zweier Geometrien
3
Erzeugung neuer Geometrien
1
⇒ Performance des DB2 Spatial Extender nicht beeinflusst
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Zeit zum Erzeugen eines Polyeders
6
deflate
bzip2
wkb
uncompressed
Zeit [Sekunden]
5
4
3
2
1
0
0
500
1000
1500
2000
2500
3000
Komplexität der Geometrien [Anzahl Flächen]
3500
4000
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Test auf Schnitt zweier Polyeder
100
equals
contains
overlap
disjoint
90
80
Zeit [Sekunden]
70
60
50
40
30
20
10
0
0
500
1000
1500
2000
2500
3000
3500
Komplexität der Geometrien [Anzahl Flächen]
4000
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Ergebnisse
CGAL nicht brauchbar für praktischen Einsatz
Unakzeptable Performance
Dedizierte Methoden zum Testen räumlicher Beziehungen
fehlen
Bereits einfache Optimierungen zeigen enormes Potential
für Verbesserungen
1
Teste MBBs1 vor Schnittberechnung
2
Punktlokation
⇒ 60% schneller bei disjunkten Geometrien
⇒ 60% schneller bei überlappende Geometrien
Implementierung nicht robust und schwer zu warten
1
Minimum Bounding Box = kleinste umschließende achsenparallele Box
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Graphen & räumliche Daten
Geometrien haben inhärent topologische Eigenschaften
⇒ Topologie auf Graphstrukturen abbilden
⇒ Anwendungen können Graphalgorithmen direkt auf
Geometrien ausführen
Ausführen der Graphoperationen im DBMS
Anwendungen benötigen keine separate Komponente mehr
Anwendung
Anwendung
SQL
Geometrien
Graphalgorithmen
SQL
Graphdaten +
Geometrien
=⇒
Graphalgorithmen
Graphdaten
Graphdaten
DBMS
DBMS
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Abbildung zwischen Linienzügen und Graphen
1
Punkte zu Knoten
Schnittpunkt zweier Linienzüge wird kein Knoten ohne
expliziten Punkt
2
Liniensegmente werden Kanten
A
B
C
⇐⇒
D
F
J
H
I
K
L
Rückabbildung bedarf Schlüsselwerte
Primärschlüssel oder RID
Koordinaten der Punkte in Knoten beibehalten
G
E
M
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Verwendung in SQL-Anweisungen
Finde kürzesten Weg zwischen zwei gegebenen Punkten
SELECT sp.line, t.street_name
FROM
t, TABLE ( ST_ShortestPath(
ST_Point(3.25, 3.25),
ST_Point(5.5, 6.5),
’SAMPLE_GRAPH’) )
AS sp(seq, line, id)
WHERE sp.id = t.id
ORDER BY sp.seq
ST_ShortestPath findet und verwendet Graph automatisch
⇒ Graph dient als intelligenter Zugriffspfad
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Verwendung in SQL-Anweisungen
Finde kürzesten Weg zwischen zwei gegebenen Punkten
SELECT sp.line, t.street_name
FROM
t, TABLE ( ST_ShortestPath(
ST_Point(3.25, 3.25),
ST_Point(5.5, 6.5),
t.street) )
AS sp(seq, line, id)
WHERE sp.id = t.id
ORDER BY sp.seq
ST_ShortestPath findet und verwendet Graph automatisch
⇒ Graph dient als intelligenter Zugriffspfad
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Spatial Graph Extender
Graphen komplett im (virtuellen) Hauptspeicher
1
2
3
Anlegen, Löschen eines Graphs
Einfügen, Ändern und Löschen von Linienzügen
Katalog für Metadaten
Nicht-essentielle Knoten automatisch entfernt
Aufbau des Graphen mittels Sweep-Algorithmus
Rekonstruktion des vollständigen Teilgraphen im
betroffenen Bereich beim Einfügen und Ändern
Anwendung
Graph Extender
Spatial Extender
DB2 UDB
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Zeit zum Aufbau eines Graphen
60
ReduceAfterBuild
ReduceDuringBuild
Zeit [Minuten]
50
40
30
20
10
0
0
500
1000
1500
2000
Anzahl Linienzüge in Graph [x 1000]
2500
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Zusammenfassung und Ausblick
Zusammenfassung
1
Heutige Funktionalität für räumliche Daten in relationalen
Datenbanksystemen ist unzureichend
Bisher nur GIS-Anwendungen im Fokus
2
Nahtlose Erweiterung für 3D-Objekte praktikabel, aber:
Bessere 3D-Bibliothek notwendig (z. B. ACIS kernel)
3
Graphen können integriert werden und bieten echten
Mehrwert
Ausblick
Integration von Rasterdaten
Verwendung von räumlichen Daten in Content
Management Systemen
Ausnutzung von räumlichen Information in relationalen
Data Mining Produkten
Einführung
Unterstützung für 3D
Graphenoperationen
Zusammenfassung & Ausblick
Zusammenfassung und Ausblick
Zusammenfassung
1
Heutige Funktionalität für räumliche Daten in relationalen
Datenbanksystemen ist unzureichend
Bisher nur GIS-Anwendungen im Fokus
2
Nahtlose Erweiterung für 3D-Objekte praktikabel, aber:
Bessere 3D-Bibliothek notwendig (z. B. ACIS kernel)
3
Graphen können integriert werden und bieten echten
Mehrwert
Ausblick
Integration von Rasterdaten
Verwendung von räumlichen Daten in Content
Management Systemen
Ausnutzung von räumlichen Information in relationalen
Data Mining Produkten
Vielen Dank!
Herunterladen