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