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;
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.