® GIS und relationale Datenbanken: Arc/Info SDE und Oracle 8i Spatial Übersicht • Relationale Datenbanken • Grenzen von Relationalen Datenbanken • Oracle 8i Spatial • ArcSDE RDBMS Relationale Datenbanken Managment Systeme • • Alle Informationen werden in Tabellen gespeichert • Jeder Datensatz wird mit einem eindeutigen Schlüssel (Primary Key) versehen (z.B. ID) • Beziehungen zwischen Datensätzen werden über Fremdschlüssel realisiert • Indizierung von Feldern zur Steigerung der Geschwindigkeit bei der Datensatzsuche • Abfragesprache SQL (Structured Query Language) In jedem Feld befindet sich eine (atomare) Information RDBMS Relationale Datenbanken Managment Systeme Primärschlüssel Fremdschlüssel Grenzen von RDBMS • • Keine komplexen Objekte in Feldern • • Alle Operationen basieren auf Tabellenstruktur • Komplexe Objekte müssen auf mehrere Spalten oder gar Relationen verteilt werden Es sind keine direkten Operationen mit Objekten möglich Körper Beispiel GIS: Flächen Knoten Kanten Bisherige GIS-Systeme • Getrennte Speicherung von Geometrie und Sachdaten – Sachdaten/Topologie in Shapefiles – Geometrie/Attribute in RDBMS – Gründe: – Mangel an OO-DBMS – Performance (räumliche Indizes) • Geometrie in BLOB-Feldern – Keine Datenbankoperationen mit Blob-Feldern möglich – GIS-System ist für die Arbeit mit diesen Daten notwendig Neue GIS-Systeme • Ideale Lösung – Eine Datenbank für alle Daten • Kommerzielle Systeme – Oracle 8i Spatial – Esri ArcSDE – IBM DB2 Spatial Extender – Informix Spatial DataBlade • Oracle 8i – Keine Größenbegrenzung (mehrere Terrabyte möglich) – Automatische Aufteilung auf Teildatenbanken z.B. nach Staaten, Regionen oder anderen Kriterien – Orientiert sich weitestgehend an OGC SQL Spezifikationen ® Oracle 8i - Primitive Geometrie Typen Point Line string Arc line string Compound line string Self-crossing line strings Zulässig Polygon Polygon with hole Compound polygon Optimized polygons circle rectangle Self-crossing polygons Nicht zulässig ® Oracle 8i - Erstellung von Objekten SQL> INSERT INTO LINES VALUES ( 2> attribute_1, …. attribute_n, 3> MDSYS.SDO_GEOMETRY ( 4> 2002, null, null, 5> MDSYS.SDO_ELEM_INFO_ARRAY (1,2,1), 6> MDSYS.SDO_ORDINATE_ARRAY ( 7> 10,10, 20,25, 30,10, 40,10)) 8> ); (20,25) (10,10) (30,10) (40,10) ® Shapefile → Oracle 8i - Converter • • Verwendet den Oracle „SQL*Loader“ • Erstellt ein SQL-Skript zur Generierung einer Spatial-Tabelle • Unterteilt große Daten automatisch in vom „SQLLoader“ verarbeitbare SQL-Scripts • Wird nicht offiziell unterstützt Verarbeitet Attribute (.DBF) ebenso wie Geometrie (.SHP and .SHX) ® Spatial Indizierung • • • Basiert auf „Quad Tree Decomposition“ Indiziert Punkte, Linien und Polygone Zwei unterschiedliche Methoden – Fixed tiling – Hybrid tiling • Der Vorgang der Indizierung nennt sicht „tessellation“ (Überlappungsfreie und vollständige Abdeckung des Raumes) • Die Ergebnisse eines Tessellation-Prozesses werden in einem „spatial index“ gespeichert Quad Tree - Tessellation Fixed Tile Decomposition Hybrid Tile Decomposition ® Oracle 8i – Auffinden von Objekten Datenbank nach „Fixed Tiling Tesselation“ T1 T2 T3 T4 T5 T6 T7 T8 T9 ® Oracle 8i – Auffinden von Objekten 1. Filterschritt: Grobfilterung T1 T2 T3 T4 T5 T6 T7 T8 T9 ® Oracle 8i – Auffinden von Objekten 2. Filterschritt: exakte Filterung T1 T2 T3 T4 T5 T6 T7 T8 T9 Egenhoefer 4-Schnittmodell B A A 1 0 1 0 0 0 0 0 B Egenhoefer 9-Schnittmodell B A A 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 B ® Oracle 8i - Topologische Relationen A B A B A B Contains Inside Touch Covers Covered by A A B A B B Overlap Boundaries Intersect Overlap Boundaries Disjoint A B Disjoint Equal ® Oracle 8i – Beispiele für Buffering • • Einfache Geometrietypen Gruppen von Geometrietypen ® Oracle 8i – Beispiel Suche alle Städte in einem Bereich um Highway I 170 select from where and c.city cities c, interstates i highway = 'I 170' mdsys.sdo_relate ( c.location, mdsys.sdo_geom.sdo_buffer ( i.geom, 0.5, 0.00000005), 'mask=ANYINTERACT querytype=WINDOW' ) = 'TRUE'; ArcSDE – Universelle Datenschnittstelle • • • Server für den Zugriff auf Geo-Daten (über Dienste) • 2 Module Zugriff auf die Daten übers Netzwerk / Internet Erleichtert den Übergang zu RDBMS – SDE Server for Coverages – SDE Server for DBMS ArcSDE – Universelle Datenschnittstelle • Zugriff auf die Daten in Tabellenform mit komplexen Objekten in Feldern • • Programmierschnittstelle (C, C++, VisualBasic, ...) Zugriff auf Daten aus verschiedensten Systemen (ArcInfo, ArcView, IMS, AutoCad, MicroStation, ...) ArcSDE Server for Coverages • • Nutzt die ArcInfo Datenformate Es ist keine Konvertierung notwendig ArcSDE Server for DBMS • Speichert die Daten in üblichen RDBMS (wie z.b Oracle, IBM DB2, Informix, MS SQL-Server, Sybase usw.) • Nutzt eventuell vorhandene Spatial-Funktionen der Datenbanken – Oracle 8i Spatial – IBM DB2 Spatial Extender – Informix Spatial DataBlade ® Ende Oracle 8i – OGC Spezifikationen Oracle OGC Point Point Point Cluster Multipoint Curve Circle Optimized Rectangle LineString LineString, Line, Linear Ring Arc Strings MultiCurve Compound Line String MultiLineString Surface Polygon Polygon ArcPolygon MultiSurface Compound Polygon MultiPolygon