Durchsuchen von Geodatabase-Systemtabellen mit SQL

Nachdem Sie nun die Beziehungen zwischen den vier Geodatabase-Systemtabellen verstanden haben, ist die beste Möglichkeit, zu erfahren, wie sie zusammenarbeiten, sie mit SQL zu untersuchen. Wenn Sie alle Zeilen und Spalten der Tabelle "GDB_Items" auswählen, wird in etwa folgender Ergebnissatz (zusammen mit vielen anderen Feldern) zurückgegeben:

Beim Abfragen der Tabelle "GDB_Items" zurückgegebene Werte

Beachten Sie, dass die Werte in der Spalte "Typ" als UUID gespeichert sind. Wie bereits in Kurzer Überblick über Geodatabase-Systemtabellen erwähnt, können diese UUIDs mit der "Tabelle GDB_ItemTypes" aufgelöst werden, wie in der folgenden Abfrage dargestellt:

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

Dies gibt ein ähnliches Ergebnis zurück wie eine einfache SELECT-Anweisung, die für die Tabelle "GDB_Items" ausgeführt wurde, jedoch wurde die UUID in der Spalte "Typ" durch Klartextzeichenfolgen ersetzt:

Textwerte in der Spalte "Typ"

Auf ähnliche Weise enthält die Tabelle "GDB_ItemRelationships" auch UUIDs, die Schlüsselwerte aus anderen Tabellen sind. Jede Beziehung enthält zwei der UUID-Werte, die in der Tabelle "GDB_Items" oben angezeigt wurden: einer für das Zielelement der Beziehung und einer für das Ursprungselement. Um diese in Klartextzeichenfolgen aufzulösen, müssen Sie die Tabelle "GDB_ItemRelationships" zweimal mit der Tabelle "GDB_Items" verbinden:

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

Die Abbildung unten ist ein Beispiel für einen Ergebnissatz, der von der vorhergehenden Abfrage zurückgegeben werden könnte:

Textwerte für die Ursprungs- und Zielelementnamen

Obwohl dies die Beziehungen zwischen Elementen in der Geodatabase anzeigt, wird der Beziehungstyp ebenfalls benötigt. Sie können die Typ-UUID auflösen, indem Sie die vorherige Abfrage erweitern, um eine Verbindung mit der Tabelle "GDB_ItemRelationshipTypes" einzuschließen:

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

Daraufhin wird Folgendes zurückgegeben:

Textwerte in der Spalte 'Typ' aus der Tabelle 'GDB_ItemRelationshipTypes'


7/10/2012