Verwenden von räumlichen Sichten für Tabellen mit einer ST_Geometry-Spalte

Räumlichen Sichten sind Datenbanksichten, die eine räumliche Spalte enthalten.

Mit räumlichen Sichten können beispielsweise zusätzliche räumliche Spalten entfernt werden, damit die Daten in ArcGIS angezeigt werden können. Da räumliche Tabellen mit mehr als einer räumlichen Spalte nicht registriert werden können, stellt die Verwendung einer räumlichen Sicht der Tabelle die einzige Möglichkeit dar, um über ArcGIS-Client-Anwendungen mit den Daten zu interagieren.

Beim Definieren der Sicht wählen Sie nur eine der räumlichen Spalten aus, die in der Sicht enthalten sein soll.

Im Folgenden finden Sie Beispiele zum Erstellen von räumlichen Sichten mit SQL:

Erstellen einer Sicht mit einer räumlichen Spalte

CREATE VIEW quake_v 
AS SELECT objectid,shape 
FROM quakes4;

In diesem Beispiel wird eine räumliche Sicht und für die Sicht eine räumliche Verbindung erstellt.

CREATE VIEW san_berdoo_quakes_v 
AS SELECT a.objectid, a.location, b.name
FROM quakes4 a, st_counties b
WHERE b.name = 'San Bernardino'
AND st_intersects(a.location,b.boundary)=1;

Im Folgenden finden Sie dasselbe Beispiel für eine Geodatabase in Informix:

CREATE VIEW san_berdoo_quakes_v 
AS SELECT a.objectid, a.location, b.name
FROM quakes4 a, st_counties b
WHERE b.name = 'San Bernardino'
AND st_intersects(a.location,b.boundary);

Erstellen räumlicher materialisierter Sichten

Eine materialisierte Sicht ist ein Datenbankobjekt, das die Ergebnisse einer Abfrage enthält. Solche Objekte werden meist für die erweiterte Replikation bei Oracle Materialized Views (oder Snapshots) verwendet. In DB2 werden materialisierte Sichten als materialisierte Abfragetabellen bezeichnet.

CREATE MATERIALIZED VIEW quake_mv 
AS SELECT objectid,shape 
FROM quakes4;

DB2

CREATE TABLE quake_mv as (SELECT objectid,shape FROM quakes4) 
DATA INITIALLY DEFERRED REFRESH DEFERRED 
MAINTAINED BY USER 
SET INTEGRITY FOR quake_mv MATERIALIZED QUERY IMMEDIATE UNCHECKED

Auswahl in der materialisierten Sicht

SELECT COUNT(*) 
FROM quake_mv a, st_counties b 
WHERE b.name = 'San Bernardino' 
AND st_intersects(a.shape,b.shape)=1;
HinweisHinweis:

In Informix können Sie materialisierte Sichten dieser Art nicht erstellen. Es handelt sich lediglich um eine Sicht, für die beim Anzeigen temporäre Tabellen erstellt werden müssen. Wenn Sie z. B. zum Anzeigen einer Sicht eine Vereinigung (Union) zahlreicher Tabellen verwenden, müssen in Informix zum Abfragen der Sicht temporäre Tabellen erstellt werden. In Informix ist kein Äquivalent vorhanden.

Wie die im LOB-Speicherformat gespeicherten Feature-Classes in ArcSDE werden auch räumliche Layer bei der Replikation unter Verwendung von Oracle Materialized Views unterstützt. Die DB2-Replikationssuite ermöglicht die Replikation von räumlichen Daten, verfügt jedoch über keine Entsprechung zur Replikation bei Oracle Materialized Views.

Verwandte Themen

9/12/2013