Explorar tablas del sistema de geodatabase con SQL
Después de comprender las relaciones entre las cuatro tablas del sistema de geodatabase, la mejor forma de poder ver cómo funcionan de forma conjunta es examinarlas mediante SQL. La selección de todas las filas y columnas en la tabla GDB_Items devuelve un conjunto de resultados similar al siguiente (junto con muchos otros campos):
Tenga en cuenta que los valores en la columna Tipo se almacenan como un UUID. Como se mencionó en Rápido recorrido por las tablas del sistema de geodatabase, estos UUID se pueden resolver mediante la tabla GDB_ItemTypes, como se muestra en la siguiente consulta:
SELECT gdb_items.UUID, gdb_itemtypes.name AS Type, gdb_items.name FROM gdb_items INNER JOIN gdb_itemtypes ON gdb_items.type = gdb_itemtypes.UUID
Esto devuelve un resultado similar como la ejecución de una declaración SELECT simple en la tabla GDB_Items, pero el UUID en la columna Tipo se reemplaza con cadenas de texto legibles por el ojo humano.
Del mismo modo, la tabla GDB_ItemRelationships también contiene UUID que son valores clave de otras tablas. Cada relación contiene dos de los valores de UUID que se muestran en la tabla GDB_Items anterior: uno para el elemento de destino de la relación y otro para su elemento de origen. Para resolver estas cadenas de texto legibles por el ojo humano, debe unir la tabla GDB_ItemRelationships con la tabla GDB_Items dos veces:
SELECT relationships.type origin_items.name AS "Origin Name", dest_items.name AS "Dest Name" FROM gdb_items AS origin_items, gdb_itemrelationships AS relationships, gdb_items AS dest_items WHERE origin_items.UUID = relationships.originid AND dest_items.UUID = relationships.destid
La siguiente ilustración es un ejemplo de un conjunto de resultados que se puede obtener a partir de la consulta anterior:
Si bien esto muestra las relaciones entre los elementos en la geodatabase, también se requiere el tipo de relación. Puede resolver el UUID de tipo al expandir la consulta anterior para incluir una unión con la tabla GDB_ItemRelationshipTypes:
SELECT reltypes.name AS type, origin_items.name AS "Origin Name", dest_items.name AS "Dest Name" FROM gdb_items AS origin_items, gdb_itemrelationships AS relationships, gdb_items AS dest_items gdb_itemrelationshiptypes AS reltypes WHERE origin_items.UUID = relationships.originid AND dest_items.UUID = relationships.destid AND relationships.type = reltypes.UUID
Esto devuelve lo siguiente: