Un recorrido rápido por las vistas de la geodatabase
Hay tres tipos de vistas que puede utilizar en una geodatabase de ArcSDE:
- Vistas de base de datos (o vistas no espaciales)
- Vistas espaciales
- Vistas multiversionadas
Las vistas sólo se pueden utilizar en geodatabases de ArcSDE con licencia a través de ArcGIS Server Enterprise.
Vistas de la base de datos
Las vistas de la base de datos son consultas almacenadas que seleccionan datos de tablas no versionadas, no espaciales especificadas. Cuando se utilizan con ArcSDE, las vistas de la base de datos se pueden definir para una única tabla no versionada o entre dos tablas no versionadas. O puede crear vistas más complejas que contengan subconsultas o bases de datos de vista completa.
Cuando crea una vista en un dataset versionado, sólo verá la tabla de negocios (base) y no las modificaciones en las tablas delta. Para ver las modificaciones en las tablas delta, cree una vista multiversionada en la tabla de negocios.
Puede utilizar el SQL nativo de su sistema de administración de bases de datos (DBMS) para crear una vista de la base de datos o el comando sdetable de ArcSDE con la operación create_view.
La sintaxis de sdetable –o create_view es la siguiente:
sdetable –o create_view –T <view_name> –t <table1,table2...tablen> –c <table_col1,table_col2...table_coln [–a <view_col1,view_col2...view_coln>] [–w <"where_clause">] [–i {<direct connection> | <service> | <port#>}] [–s <server_name>] [–D <database>] –u <DB_User_name> [–p <DB_User_password>] [–N] [–q]
Debe enumerar las columnas (–c) que desea en la vista. Para obtener más información acerca del comando sdetable y sus operaciones y opciones, consulte la Referencia sobre el comando de administración de ArcSDE.
Se necesitan permisos especiales para permitir que un usuario cree una vista; por ejemplo, al usuario se le deben otorgar privilegios CREATE VIEW en las bases de datos Oracle o SQL Server. Si no tiene los privilegios adecuados en la base de datos para crear una vista, no puede ejecutar el comando sdetable –o create_view. Además, con algunos sistemas de administración de bases de datos, si crea una vista en una clase de entidad o tabla de la que no es propietario, no puede otorgar a otros usuarios los permisos para la vista, a menos que el propietario de las tablas subyacentes le haya otorgado permiso para que usted otorgue privilegios a otros usuarios.
Vistas espaciales
Las vistas espaciales son vistas de la base de datos que contienen una columna espacial simple. Sólo se pueden crear en tablas espaciales que no se han registrado con la geodatabase o, si las tablas se han registrado con la geodatabase, en clases de entidades no versionadas.
Además de los motivos para utilizar vistas de la base de datos que se enumeran en ¿Qué es una vista?, algunos de los motivos para crear vistas espaciales incluyen:
- Puede unir una clase de entidad con una tabla no espacial cuando define la vista espacial y combinar las columnas desde ambas.
- Los clientes de ArcGIS sólo pueden funcionar con tablas que contengan una columna espacial. Para utilizar una tabla espacial que contenga varias columnas espaciales, puede crear una vista espacial que incluya sólo una columna espacial desde la tabla.
Puede utilizar el comando sdetable de ArcSDE con la operación create_view o SQL para crear una vista espacial. Si utiliza el comando sdetable, asegúrese de incluir la columna Id. de fila (o ObjectID) y espacial en la lista de columnas especificadas con la opción –c. La columna Id. de fila o ObjectID debe ser de la misma tabla que la columna espacial. De no ser así, se puede violar la relación única entre la columna Id. de fila o ObjectID y la columna forma, lo que producirá resultados inadecuados durante la consulta o representación en pantalla en ArcGIS.
Para crear una vista espacial con SQL, incluya la columna espacial y la columna Id. de fila o ObjectID calificada de la clase de entidad o la tabla espacial en la vista. Después de crear la vista en SQL, debe registrarla como mínimo con ArcSDE para que aparezca como una clase de entidad en los clientes de ArcGIS.
Cuando crea una vista mediante las herramientas de ArcSDE, SQL u otras herramientas del DBMS, debe tener en cuenta la adecuación de la vista. Por ejemplo, debe determinar si las columnas especificadas en verdad existen en las tablas especificadas y si hay índices en las columnas para acelerar la ejecución de la consulta. Si elige reemplazar las vistas creadas con ArcSDE mediante la alteración posterior de la vista, será responsable no solo de la exactitud y eficacia de la consulta, sino también de la relevancia y adecuación para el uso con los clientes de ArcSDE. Por ejemplo, crear vistas de uno a muchos que involucren clases de entidad da como resultado ObjectID duplicados. Esto lleva a un comportamiento inesperado en las aplicaciones como ArcMap y ArcCatalog, porque el ObjectID debe contener valores únicos.
Vistas multiversionadas
Las vistas multiversionadas incorporan vistas de bases de datos, procedimientos almacenados, desencadenadores y funciones para acceder a o editar una versión especificada de una tabla o clase de entidad de geodatabase mediante SQL.
Utilice el comando sdetable con la operación create_mv_view para crear una vista multiversionada. La sintaxis de sdetable –o create_mv_view es la siguiente:
sdetable –o create_mv_view –T <view_name> –t <table_name> [–i {<direct connection> | <service> | <port#>}] [–s <server_name>] [–D <database>] –u <DB_User_name> [–p <DB_User_password>] [–N] [–q]
Para obtener más información acerca del comando sdetable y sus operaciones y opciones, consulte la Referencia sobre el comando de administración de ArcSDE.
Las vistas multiversionadas sólo funcionan con una tabla versionada o clase de entidad individual. No puede utilizar una cláusula where para unir varias tablas juntas o restringir qué filas o columnas se incluyen en una vista multiversionada.
El uso principal de las vistas multiversionadas es editar los datos versionados con SQL. No puede modificar la tabla o clase de entidad subyacente a través de una vista multiversionada con una aplicación cliente de ArcGIS. La tabla o clase de entidad sobre la que se basa la vista multiversionada debe cumplir con los requisitos de ArcGIS para editar los datos de la geodatabase con SQL. Consulte Qué tipo de datos puede editarse con SQL para obtener más información.