58

Spatial DOAG Muenchen 2002 ohne Filme · – Mapinfo MapMarker Datenabgabe, z.B. ... modul (DLL) GeoMedia Web Enterprise 4 SP1 Intranet (HTTP über TCP/IP) Internet Information Server

  • Upload
    lamliem

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

DOAG München 9.12.02

1) Oracle Spatial2) Geomarketing

IZB-Soft

Klaus Gamerdinger, Oracle Consulting

Oracle Spatial

• Einführung

• Partner

• Technische

Implementierung

• Zusammenfassung

Oracle Spatial

• Einführung

• Partner

• Technische

Implementierung

• Zusammenfassung

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

Typen von geometrischen Daten

GIS (mapping) data

Points of Interest CAM data

CAD data

� 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

Oracle Spatial

• Einführung

• Partner

• Technische

Implementierung

• Zusammenfassung

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

Oracle Spatial - Entwicklungspartner

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

Oracle Spatial

• Einführung

• Partner

• Technische

Implementierung

• Zusammenfassung

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

Indizierung ( Quad-Tree Kachelung)

Indizierung ( R-Tree Kachelung) I

a

b

c

d a b c d

Zeiger auf Geometrien

R

S

R S

root

rootR-tree

Indizierung (R-Tree Kachelung) II

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

Beispiel MapViewer

Titel

Legende

Layer

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

• Einführung

• Architektur

• Technische Implementierung

• Zusammenfassung

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

IZB-Soft Geomarketing

• Einführung

• Architektur

• Technische Implementierung

• Zusammenfassung

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

Weitere Informationen� Oracle Technet

– Beta Software, Beispiele, Dokumentation

– Trainingsmaterial

– Diskussions-Forum

� oder bei:– Hans Viehmann, Oracle Business

DevelopmentTel. 040 89091 - 173