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!