ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS for Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Consultas de relación

Un motivo común por el que desearía hacer consultas en las tablas de sistema de la geodatabase es encontrar todos los elementos de la geodatabase que están relacionados con un dataset. Algunos ejemplos de ello son encontrar el contenido de un dataset de entidades, encontrar qué clases de entidades participan en una topología o una red geométrica y determinar qué datasets están incluidos en una réplica de una geodatabase. Dado que todos los elementos y relaciones están almacenados en las mismas tablas de sistema, es posible usar una sola consulta para todos estos casos al proporcionar cadenas literales para designar a cada elemento de la consulta. Los siguientes pasos se pueden utilizar para realizar esta consulta:

  • Buscar el UUID del elemento de origen (como un dataset de entidades).
  • Buscar todas las relaciones con el UUID como el UUID de origen.
  • Para cada UUID de destino, busque el elemento correspondiente y resuelva el tipo con la tabla GDB_ItemTypes.

A continuación, se muestra una consulta SQL que incorpora todos estos pasos en una geodatabase de Microsoft SQL Server. Para cambiar el elemento que se desea consultar, modifique las dos variables de cadena declaradas al principio.

--Queries a dbo-schema geodatabase in SQL Server
DECLARE @ORIGIN nvarchar(max);
DECLARE @ORIGIN_TYPE nvarchar(max);
SET @ORIGIN = 'Montgomery.Sasha.Landbase';
SET @ORIGIN_TYPE = 'Feature Dataset';
SELECT
 DEST_ITEMS.Name AS "Name"
 DEST_TYPES.Name AS "Type"
FROM
 -- Get the unique ID of the origin item.
 ((((SELECT UUID, Type FROM dbo.GDB_ITEMS WHERE Name = @ORIGIN) AS src_items
 INNER JOIN
 (SELECT UUID FROM dbo.GDB_ITEMTYPES WHERE Name = @ORIGIN_TYPE) AS src_types
 ON src_items.Type = src_types.UUID)
 --Get the UUIDs of related items.
 INNER JOIN
 dbo.GDB_ITEMRELATIONSHIPS AS relationships
 ON src_items.UUID = relationships.OriginID) 
 -- Resolve the names of the destination items.
 INNER JOIN
 dbo.GDB_ITEMS AS dest_items
 ON relationships.DestID = dest_items.UUID)
 -- Get the types as human-readable strings.
 INNER JOIN
 dbo.GDB_ITEMTYPES AS dest_types
 ON dest_items.Type = dest_types.UUID

En el caso de un dataset de entidades, devuelve una lista similar a la que vería al examinar un dataset de entidades en ArcCatalog; podría contener clases de entidades, clases de relación y dataset de controlador, tales como topologías, datasets de red y estructuras de parcelas. Además, el dataset de entidades podría contener ciertos elementos que no aparecen en ArcCatalog, por ejemplo, las clases de entidades de área sin validar empleadas en las topologías.

Aunque esta posibilidad funciona bien para relaciones tales como los datasets de un dataset de entidades y las clases de entidades de una topología, se requiere una leve modificación si se desea encontrar los elementos de origen de las relaciones basándose en un elemento de destino específico. Algunos ejemplos de este tipo de navegación de relaciones son determinar qué datasets utilizan un dominio específico, determinar a qué réplica de geodatabase pertenece un dataset de réplica o identificar los datasets de controlador en los que participa una clase de entidad. La siguiente es una versión modificada de la consulta anterior, que se cambió para que el elemento de destino, en lugar del elemento de origen, pueda encontrar los elementos relacionados:

--Queries a dbo-schema geodatabase in SQL Server
DECLARE @DEST nvarchar(max);
DECLARE @DEST_TYPE nvarchar(max);
SET @DEST = 'Angle';
SET @DEST_TYPE = 'Range Domain';
SELECT
 SRC_ITEMS.Name AS "Name",
 SRC_TYPES.Name AS "Type"
FROM
 -- Get the unique ID of the destination item.
 ((((SELECT UUID, Type FROM dbo.GDB_ITEMS WHERE Name = @DEST) AS dest_items
 INNER JOIN
 (SELECT UUID FROM dbo.GDB_ITEMTYPES WHERE Name = @DEST_TYPE) AS dest_types
 ON dest_items.Type = dest_types.UUID)
 -- Get the UUIDs of related items.
 INNER JOIN
 dbo.GDB_ITEMRELATIONSHIPS AS relationships
 ON dest_items.UUID = relationships.DestID)
 -- Resolve the names of the origin items.
 INNER JOIN
 dbo.GDB_ITEMS AS src_items
 ON relationships.OriginID = src_items.UUID)
 -- Get the types as human-readable strings.
 INNER JOIN
 dbo.GDB_ITEMTYPES AS src_types
 ON src_items.Type = src_types.UUID

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

Plataforma ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2019 Esri. | Privacidad | Legal