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):

Valores que se devuelven cuando se consulta la tabla GDB_Items

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.

Valores de texto en la columna Tipo

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:

Valores de texto para los nombres de los elementos de Origen y de Destino

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:

Valores de texto en la columna Tipo de la tabla GDB_ItemRelationshipTypes


7/11/2012