Usar vistas espaciales en tablas con una columna de ST_Geometry

Las vistas espaciales son vistas de la base de datos que incluyen una columna espacial.

Un uso que puede darle a las vistas espaciales consiste en eliminar las columnas espaciales adicionales para que pueda ver los datos en ArcGIS. Dado que no puede registrar tablas espaciales que tengan más de una columna espacial, usar una vista espacial de la tabla es su única opción si quiere interactuar con los datos a través de las aplicaciones del cliente ArcGIS.

Cuando defina la vista, seleccione solamente una de las columnas espaciales para incluir en la vista.

Los siguientes son ejemplos de crear vistas espaciales con SQL:

Crear una vista con una columna espacial

CREATE VIEW quake_v  AS SELECT objectid,shape  FROM quakes4;

En este ejemplo se crea una vista espacial y se genera una unión espacial en esa vista.

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;

El siguiente es el mismo ejemplo para una geodatabase en 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);

Crear vistas espaciales materializadas

Una vista materializada es un objeto de base de datos que contiene el resultado de una consulta. Estos objetos se usan generalmente en la replicación avanzada de la Vista materializada de Oracle (o Instantánea). En DB2, las vistas materializadas se conocen como tablas de consulta materializadas.

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

Seleccionar en la vista materializada

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

No puede crear una vista materializada como esta en Informix. Es solamente una vista que necesita que se creen tablas temporales cuando se la visualiza. Por ejemplo, si utiliza una combinación de muchas tablas para crear una vista, las tablas temporales se deben crear con Informix cuando realiza una consulta en esta vista. No hay un equivalente en Informix.

Al igual que con las clases de entidad de ArcSDE almacenadas en el formato de almacenamiento LOB, las capas de tipo espacial también se admiten cuando se usa la replicación de la Vista materializada de Oracle. El paquete de replicación de DB2 permite la replicación de datos pero no tiene un equivalente para la replicación de la Vista materializada de Oracle.

Temas relacionados

9/11/2013