View
223
Download
0
Category
Preview:
Citation preview
Was ist Oracle Spatial ?
� Schema zur Speicherung von Geodaten und zugehörigen Metadaten
� Datenmodell, kein starres Datenformat
� raumbezogene Indizes
� Funktionen für geometrischeund topologische Abfragenund Joins
� Weitergehende Funktionen
� Ausnutzung von Datenbankfunktionalität– Sicherheit, Verteilung, Verfügbarkeit,
Parallelisierung, Partitioning
� vereinfachte Administration– Backup/Recovery, große Datenmengen, ...
� Plattformunabhängigkeit (Client/Server)
� Skalierbarkeit
Oracle Spatial - Eigenschaften (1)
� Implementierung gemäß:OpenGIS Consortium Simple Features guidelines
� Konform zu SQL92 Repräsentation von geometrischen Objekten: points, lines, and polygons
� “Verständnis” für die Geometrie liegt im Server
– intelligente Verteilung der Anwendungslogik zwische Client und Server
Oracle Spatial - Eigenschaften (2)
Entwicklung: Status und Perspektive
Zeit
Entwick-lung
Oracle7.1.6MultiDimension
Oracle7.3.3Spatial Data Option
Oracle8.0.4Spatial Cartridge
Oracle8iSpatial
Points Only
Points, Lines, PolygonsSpatial Operators
Points, Lines, PolygonsSpatial Operators40% Faster Performance
Points, Lines, PolygonsCircles, Arcs, Additional Spatial OperatorsR-Trees, Versioning, ProjectionsObjects, Linear Referencing
Oracle7No Spatial Capability
1994 1995 1997 1998 1999
Oracle9iSpatial
Partitioning,Object Replication,Whole Earth Indexing
2001
Fokus-Themen
� Location-based Services
� Customer Relationship Management
� Business Intelligence (Beispiel Geomarketing)
� Geo-Portale
� klassische GIS
Oracle Applications
� Oracle Field Service und Oracle Scheduler
� Spatial wird Bestandteil jeder Implementie-rung von Release 11i
� Integration in weitere Module in Vorbereitung
Partnerstrategie
� Entwicklung mit Partnern für Partner– gemeinsame Produktspezifikation, Review,
Test
� gute Ergänzung:– Partner liefert Lösung und Implementierung
– Oracle liefert Datenhaltung samt Beratung, Ausbildung, Support
Verfügbare Komponenten
� GIS & Visualisierungskomponenten, z.B.
– Mapinfo: Professional,MapXtreme, MapX
– Intergraph: Geomedia, WebMap
– C-Plan: Topobase
– ESRI: ArcSDE, ArcIMS 3
– Smallworld 3.x, Spatial Intelligence
– Bentley: Microstation, Geographics
– Autodesk: Mapguide 5
– Xmarc Fire
– ILOG: JViews
Verfügbare Komponenten
� Lade- und Migrations-Werkzeuge, z.B.– CITRA
– FME
– Smallworld
� Geocoder, z.B.– Mapinfo MapMarker
� Datenabgabe, z.B.– XML Servlet
Installation Oracle Spatial
� Durch Installer und Database Configuration Assistant
� Manuell durch Skript: %ORACLE_HOME%\md\admin\mdinst.sql (8.1.7)%ORACLE_HOME%\md\admin\catmd.sql (9.x)
� User MDSYS besitzt Objekte:– Datentypen– Funktionen
• objekt-relationale Implementierung• ausgerichtet auf SQL3• “Types and Functions”
� rein relationale Implementierung– gemäß SQL92 Standard– “Normalized Geometry”
� binäre Implementierung– Geometrie codiert in BLOBs– “Binary Geometry”
Implementierungen
Objekt-relationale Implementierung
� Abstrakter Datentyp SDO_GEOMETRY
GKZ Name GrenzeNUMBER VARCHAR2(40) SDO_GEOMETRY
X1 Y1 X2 Y2 X3 Y3 X4 Y4 X5 Y5
Tabelle Gemeinde
Datentyp SDO_GEOMETRY
CREATE TABLE gemeinde (name VARCHAR2(30),gkz NUMBER(38),grenze SDO_GEOMETRY );
Beispiel
sdo_gtype NUMBERsdo_srid NUMBER,sdo_point SDO_POINT_TYPEsdo_elem_info SDO_ELEM_INFO_ARRAYsdo_ordinates SDO_ORDINATE_ARRAY
SDO_GEOMETRY
Punkt
Polygon Polygonmit Aussparung
Selbst kreuzende
Polylinie
Gültig
Selbst kreuzende
Polygone
Nicht gültig
Geometrische TypenGeometrische Typen
PolylinieKreisbogenString
Zusammen_GesetztePolylinie
Zusammenges.Polygon
OptimiertePolygone
Element Beispiel: PunktElement Beispiel: Punkt
� Punkt optimiert für den Raum
� Räumlicher Index ist 2-dimensional. x und y
� Punkt optimiert für den Raum
� Räumlicher Index ist 2-dimensional. x und y
(x, y, z)(x, y, z)
SQL> INSERT INTO telephone_poles 2> VALUES (attribute_1, …. attribute_n,3> mdsys.sdo_geometry (4> 3001, null,5> mdsys.sdo_point_type (43.7,-75.2,200),6> null, null)7> );
SQL> INSERT INTO telephone_poles 2> VALUES (attribute_1, …. attribute_n,3> mdsys.sdo_geometry (4> 3001, null,5> mdsys.sdo_point_type (43.7,-75.2,200),6> null, null)7> );
Geometrie Beispiel: PolygonGeometrie Beispiel: Polygon
SQL> INSERT INTO PARKS VALUES(2> attribute_1, …, attribute_n, 3> MDSYS.SDO_GEOMETRY(4> 2003, null, null,5> MDSYS.SDO_ELEM_INFO_ARRAY6> (1,1005,2, 1,2,1, 7,2,2, 17,2003,3),7> MDSYS.SDO_ORDINATE_ARRAY8> (10,50,10,30,50,30,50,50,40,60,9> 30,50,20,60,10,50,25,35,35,40 ));
SQL> INSERT INTO PARKS VALUES(2> attribute_1, …, attribute_n, 3> MDSYS.SDO_GEOMETRY(4> 2003, null, null,5> MDSYS.SDO_ELEM_INFO_ARRAY6> (1,1005,2, 1,2,1, 7,2,2, 17,2003,3),7> MDSYS.SDO_ORDINATE_ARRAY8> (10,50,10,30,50,30,50,50,40,60,9> 30,50,20,60,10,50,25,35,35,40 ));
(x5,y5)
(x4,y4)
(x3,y3)
(x6,y6)
(x7,y7)
(x1,y1)
(x2,y2)(x9,y9)
(x10,y10)
(x8,y8)
Laden von Spatial-Tabellen
� Über Update oder Insert Transaktionen
� SQL-Loader (kein Directload)
� Migration von früheren Versionen überOracle Spatial Migration Utility
� Shapefile Konverter für ESRI Shapefiles mit nachfolgendem SQL-Loader
Metadaten berücksichtigen !
Spatial MetadatenSpatial Metadaten
� View USER_SDO_GEOM_METADATA
� Enthält Metadaten zu allen Spatial Tabellen des Users
� Dies ist die einzige View der Metadaten-Views, auf die Updates möglich sind.
� Auf diese View müssen die relevanten Einträge zu den Spatial Tabellen durchgeführt werden.
� Kleinster und größter Wert der Dimensionen müssen bei Quadtree Index für alle Spatialtabellen gleich sein
� Metadaten der jeweiligen GIS-Applikation synchronisieren (manuell oder über Trigger)
� View USER_SDO_GEOM_METADATA
� Enthält Metadaten zu allen Spatial Tabellen des Users
� Dies ist die einzige View der Metadaten-Views, auf die Updates möglich sind.
� Auf diese View müssen die relevanten Einträge zu den Spatial Tabellen durchgeführt werden.
� Kleinster und größter Wert der Dimensionen müssen bei Quadtree Index für alle Spatialtabellen gleich sein
� Metadaten der jeweiligen GIS-Applikation synchronisieren (manuell oder über Trigger)
USER_SDO_GEOM_METADATAUSER_SDO_GEOM_METADATA
SDO_DIMNAME VARCHAR2(64)
SDO_LB NUMBER
SDO_UB NUMBER
SDO_TOLERANCE NUMBER
SDO_DIMNAME VARCHAR2(64)
SDO_LB NUMBER
SDO_UB NUMBER
SDO_TOLERANCE NUMBER
MDSYS.SDO_DIM_ELEMENT Objekt
VARRAY(4) OF SDO_DIM_ELEMENTVARRAY(4) OF SDO_DIM_ELEMENT
MDSYS.SDO_DIM_ARRAY
SQL> DESCRIBE USER_SDO_GEOM_METADATAName Null? Type-------------- ---------- ------------------TABLE_NAME NOT NULL VARCHAR2(32)COLUMN_NAME NOT NULL VARCHAR2(32)DIMINFO MDSYS.SDO_DIM_ARRAYSRID NUMBER
SQL> DESCRIBE USER_SDO_GEOM_METADATAName Null? Type-------------- ---------- ------------------TABLE_NAME NOT NULL VARCHAR2(32)COLUMN_NAME NOT NULL VARCHAR2(32)DIMINFO MDSYS.SDO_DIM_ARRAYSRID NUMBER
USER_SDO_GEOM_METADATAAttributeUSER_SDO_GEOM_METADATAAttribute
� SDO_DIMNAME– Name der Dimension
� SDO_LB– Niedrigst möglicher Wert der Dimension
� SDO_UB– Größter möglicher Wert der Dimension
� SDO_TOLERANCE– Rundungs – Toleranz, die von Oracle Spatial
bei Inidzierung, Operatoren und Funktionen Verwendung findet.
� SRID– Koordinaten System (räumliches
Referenzsystem)
� SDO_DIMNAME– Name der Dimension
� SDO_LB– Niedrigst möglicher Wert der Dimension
� SDO_UB– Größter möglicher Wert der Dimension
� SDO_TOLERANCE– Rundungs – Toleranz, die von Oracle Spatial
bei Inidzierung, Operatoren und Funktionen Verwendung findet.
� SRID– Koordinaten System (räumliches
Referenzsystem)
Beispiel zum Füllen vonUSER_SDO_GEOM_METADATABeispiel zum Füllen vonUSER_SDO_GEOM_METADATA
SQL> INSERT INTO USER_SDO_GEOM_METADATA 2> (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)3> VALUES (‘ROADS’, ‘GEOMETRY’,6> MDSYS.SDO_DIM_ARRAY (7> MDSYS.SDO_DIM_ELEMENT(’Long’, -180, 180, .005),8> MDSYS.SDO_DIM_ELEMENT(‘Lat’, -90, 90, .005)),9> NULL);
SQL> INSERT INTO USER_SDO_GEOM_METADATA 2> (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)3> VALUES (‘ROADS’, ‘GEOMETRY’,6> MDSYS.SDO_DIM_ARRAY (7> MDSYS.SDO_DIM_ELEMENT(’Long’, -180, 180, .005),8> MDSYS.SDO_DIM_ELEMENT(‘Lat’, -90, 90, .005)),9> NULL);
Koordinatensysteme
� basiert auf Implementierung desOpenGIS Consortium (bzw. POSC)
� Tabelle MDSYS.CS_SRS
� enthält >900 gängige Systeme
� explizite Transformation– sdo_cs.transform
– sdo_cs.tranform_layer
� eigene Koordinatensysteme möglich
Spatial Index
� Quadtree mit fester Kachelungsgröße
� Quadtree Hybrid mit verschiedener Kachelungsgröße
� R-Tree mit hierarchischen Kacheln
Spatial IndexSpatial Index
CREATE INDEX <index-name>
ON <table-name> (<column-name>)
INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS (
‘SDO_LEVEL = <level>,
SDO_COMMIT_INTERVAL = <n>,
[<parameter> = <param_value> ... ]’
);
CREATE INDEX <index-name>
ON <table-name> (<column-name>)
INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS (
‘SDO_LEVEL = <level>,
SDO_COMMIT_INTERVAL = <n>,
[<parameter> = <param_value> ... ]’
);
Quadtrees oder R-trees ?Quadtrees oder R-trees ?
� R-trees– Einfacher zu erstellen– Vorteile bei Nearest neighbor-Abfragen– Weniger Speicherverbrauch– Bei vielen Update Operationen wird die
Effizienz im Mitleidenschaft gezogen (Rebuild notwendig)
– Erweiterung des primären Filters auf 3D, 4D
� Quadtrees– Tuning ist notwendig– Updates haben kaum Performance-Einfluss– Mehrere Möglichkeiten der Optimierung
Beispiel f r Abfrage
� Finde alle an die Gemeinde Westerland angrenzenden Gemeinden:
select name from gemeinde g1, gemeinde g2
where g2.name = 'Westerland'and sdo_relate(g1.grenze, g2.grenze,'mask=touch querytype=window')
= 'TRUE';
Abfrage ModellAbfrage Modell
Räumliche LayerDaten
Tabelle in welcher Koordinaten gespeichert werden
PrimaryFilter
Spatial Index
Index liefert deninteresantenBereich (window)
ReduziertesDaten Set
SecondaryFilter
SpatialFunctions
Prozedurenermitteln exakte Beziehungen
ExaktesErgebnis
Set
Operatoren für Sekundärfilter
A
B
A
B
A
B
A
B
A
B
A red B green
A
B
Inside Contains CoversCovered by
Touch
OverlapBoundaries Intersect
OverlapBoundaries Disjoint
Equal
Disjoint
Weitere Operatoren und Funktionen, z.B.
� sdo_filter
� sdo_nn
� sdo_geom.sdo_area
� sdo_geom.sdo_union
� sdo_geom.validate_geometry
� sdo_aggr_union
� usw.
Oracle9i Spatial - New Features
� Besser Performanz R-Tree sekundärer Filter
� Räumliche Aggregation
� Functional Spatial Indexes
� Erweiterungen Koordinatensysteme; “Whole Earth” Indexing
� Replikation und Distributed (Spatial) Objects
� Partitioning Unterstützung
� Parallel Spatial Index Erzeugung
� MapViewer mit iAS
9iAS MapViewer
� Karten-Erzeugung in 9iAS.
� Visulaisiert Daten von Oracle Spatial.
� Verschiedene APIs (Java, XML)
� Lösung zur verwaltung von Spatial Metadaten
SDOVIS (rendering engine)
MapViewer
Oracle Spatial
Mappingmetadata
Database
Mid-tier (9iAS)
ClientBrowser/Apps
HTTP
MapViewer overview – architecture
JDBC
Zusammenfassung
� Integration von Geo- und Sachdaten– neue Möglichkeiten der Datenanalyse
– neue Dienstleistungen und Anwenderkreise
� Ausnutzung der vorhandener Infrastruktur für Geodaten
– Distribution via Intra-/Internet
– zentrale Verwaltung der Daten
� Zukunftssicherheit durch OpenGIS-Standard– Grundlage für Interoperabilität– komponentenbasierte Lösung
Wo liegt der Nutzen ?
IZB-Soft Geomarketing
� IZB-Soft = Dienstleister für Sparkassen� Geomarketing
– dient dem Marketier zur Analyse der Kundendaten und der Kundenpotentiale
– zeigt Stärken und Schächen des Vertriebs– Anstöße für Marketingmaßnahmen– Großprojekt mit mehreren Releases– Release 1 umfasst mikrogeographische Daten und
Analyse der Potentiale– Release 2 umfasst graphische Visualisierung
IZB-Soft Geomarketing
� Entwicklungspartner – Fa. Intergraph (GeoMedia Web Enterprise)
– Fa. Oracle (Datenbank, Oracle Transparent Gateway für DB2, Oracle Spatial)
Architektur
Host München
Rechenzentrum IZB
Applikations-Server
Sparkasse
Oracle 8.1.7+ Oracle Spatial
8i
Autorisierungs-modul (DLL)
GeoMedia WebEnterprise 4 SP1
Intranet(HTTP über
TCP/IP)
InternetInformationServer 5.0
Arbeitsplatz mitInternet Explorer
SQ
L*N
et8GIS-Applikation
S-DWHTG4DB28.0.4
DB-Server
Datenbanklink
Browser mit JavaApplet
Host Nürnberg
Host Nürnberg Neu
LDAP Server
RACF
Datenquellen:
GIS-Daten
Oracle 8.1.7+ Oracle Spatial 8i
DataWarehouse
MikrogeografischeDaten
IBM DB2
Windows2000
z/OS
Datenquelle 1: GIS-Daten in Oracle
� Geschäftsgebiet einer Sparkasse mit Unterteilung in PLZ-Gebiete
� Marktverantwortungsgebiete� Standorte (eigene und Konkurrenz)� Points of Interest (Parkplätze, Postämter,
Krankenhäuser, ...)� Gemeindegrenzen
Datenquelle 2: Data Warehouse in DB2
� Stammdaten:Name, Adresse, Geburtsdatum, Einkommen, Kundengruppe
� Nutzungsdaten:Produktnutzung, Vertriebswegenutzung
� Produkt- und Leistungsdaten:Kalkulationsergebnisse, Stückzahlen
� Kontakt- und Reaktionsdaten aus Marketing-aktionen, soweit erfasst
Datenquelle 3: Mikrogeografische Daten
aus DB2
� Zahlreiche Merkmale zu ...– Soziodemographie: Altersstruktur, Familienstruktur,
Kaufkraft– PKW-Dichte und -typen– Finanztypologien
� Verwendung der mikrogeografischen Datenbank „MIKROTYP” der Fa. Consodata
� Zweijähriges Update� Informationen liegen flächendeckend vor� Datenhaltung erfolgt auf Haus- / Adress-
Ebene
Fachliche Inhalte des S-GIS
� Anzeige der mikrogeografischen Daten– Darstellung auf Hausebene oder als Flächen für
Postleitzahlen und Marktverantwortungsgebiete
� Anzeige von Kundeninformationen– Darstellung als Punktsymbole für
Geschäftsstellen
– Flächen für PLZ- und Marktverantwortungsgebiete
� Anzeige von Kundenströmen– Darstellung in Business-Charts
� Anzeige von Kundeninformation mit allgemeinem Filter auf Hausebene
Erfahrungen
� Projekt sehr komplex, da Know-how in vielen Bereichen nötig (Oracle, DB2, Spatial, Mainframe, Transparent Gateway, ...)
� Externe Projektunterstützung unbedingt erforderlich
� Architektur mit Serversystemen und Mainframe im Spatial-Umfeld bisher einzigartig
� Gute Reaktionszeiten (<8 sec)� Zeitaufwändig sind die Kartengenerierung
und komplexe Abfragen in DB2
Recommended