Utilisation des vues spatiales sur les tables comportant une colonne ST_Geometry

Les vues spatiales sont des vues de base de données qui comprennent une colonne spatiale.

Une utilisation des vues spatiales a pour but d'éliminer les colonnes spatiales supplémentaires afin de pouvoir voir les données dans ArcGIS. Comme vous ne pouvez pas enregistrer les tables spatiales composées de plusieurs colonnes spatiales, utiliser une vue spatiale de la table est votre seule option si vous souhaitez interagir avec les données via les applications clients ArcGIS.

Lorsque vous définissez la vue, vous sélectionnez une seule des colonnes spatiales à inclure dans la vue.

Voici des exemples de création de vues spatiales à l'aide du SQL :

Création d'une vue avec une colonne spatiale

CREATE VIEW quake_v 
AS SELECT objectid,shape 
FROM quakes4;

Dans cet exemple, une vue spatiale est créée et une jointure spatiale est créée sur cette vue.

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;

Vous trouverez ci-dessous le même exemple pour une géodatabase 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);

Création de vues matérialisées spatiales

Une vue matérialisée est un objet de base de données qui contient les résultats d'une requête. Ces objets sont utilisés en général dans la réplication avancée à l'aide de vues matérialisées (snapshots) d'Oracle. Dans DB2, les vues matérialisées sont connues comme tables de requête matérialisées.

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

Sélection sur la vue matérialisée

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

Vous ne pouvez pas créer une telle vue matérialisée dans Informix. Il s'agit seulement d'une vue pour laquelle des tables temporaires doivent être créées lors de son affichage. Par exemple, si vous utilisez une agrégation de plusieurs tables pour créer une vue, des tables temporaires doivent être créées par Informix lorsque vous interrogez cette vue. Il n'existe aucun équivalent dans Informix.

Comme avec les classes d'entités ArcSDE stockées au format de stockage LOB, les couches de type spatial sont également prises en charge avec la réplication avancée à l'aide de vues matérialisées d'Oracle. La suite de réplication DB2 permet la copie des données spatiales, mais ne comporte pas d'équivalent à la réplication avancée à l'aide de vues matérialisées d'Oracle.

Thèmes connexes

9/12/2013