ArcGIS クライアントまたは ArcGIS Server Web サービス経由でエンタープライズ ジオデータベースに接続したら、ジオデータベースに自分で追加したか、他のデータベース ユーザーが追加したデータセットを操作します。 エンタープライズ ジオデータベースでは、そのデータを追跡し、ジオデータベースの振舞いを実装するためにシステム テーブルを使用します。
ArcGIS ソフトウェアまたは SDK 以外のものを使用して、システム テーブルとその内容を変更しないでください。 ただし、SQL を使用してシステム テーブルの内容を表示することができます。
コア システム テーブル
エンタープライズ ジオデータベースを含む IBM Db2 データベースでクエリを実行する際には、sde ユーザーのスキーマにある次のコア システム テーブルが表示されます。
- BRANCH_TABLES_MODIFIED
 - BRANCHES
 - COLUMN_REGISTRY
 - COMPRESS_LOG - 初めてジオデータベースを圧縮したときに作成されます。
 - DBTUNE
 - GDB_CONFLICTS
 - GDB_ITEMRELATIONSHIPS
 - GDB_ITEMRELATIONSHIPTYPES
 - GDB_ITEMS
 - GDB_ITEMTYPES
 - GDB_LOCKS
 - GDB_REPLICALOG
 - GDB_TABLES_LAST_MODIFIED
 - LAYER_LOCKS
 - LAYERS
 - LINEAGES_MODIFIED
 - MULTIBRANCH_TABLES
 - MVTABLES_MODIFIED
 - OBJECT_LOCKS
 - PROCESS_INFORMATION
 - RASTER_COLUMNS
 - SDE_ARCHIVES
 - SDE_LOGFILE_POOL
 - SDE_XML_COLUMNS
 - SDE_XML_INDEX_TAGS
 - SDE_XML_INDEXES
 - SERVER_CONFIG
 - SPATIAL_REFERENCE_AUX
 - STATE_LINEAGES
 - STATE_LOCKS
 - STATES
 - TABLE_LOCKS
 - TABLE_REGISTRY
 - TABLES_LAST_EDIT_TIME
 - TABLES_MODIFIED
 - VERSION
 - VERSION_HISTORY
 - VERSIONS
 
次に示すテーブルはジオデータベースに存在しますが、現在は使われていません。 これらのテーブルは今後のリリースで削除される予定です。
- LOCATORS
 - METADATA
 - SDE_LAYER_STATS
 
エンタープライズ ジオデータベース機能を実装するテーブル
一部のジオデータベース機能の情報はコア システム テーブルにのみ格納されます。 たとえば、次の機能に関する情報はコア システム テーブルに格納され、これらの機能をユーザー データに対して有効化したときに追加のテーブルはデータベースに作成されません。
- 属性ルール - GDB_ITEMS システム テーブルに格納されます。
 - ブランチ バージョン - テーブルまたはフィーチャクラスが編集情報の記録のためにブランチ バージョン対応登録されるときに、6 つのフィールドがそのテーブルまたはフィーチャクラスのビジネス テーブルに追加されます。
 - ドメイン - GDB_ITEMS システム テーブルに格納されます。 GDB_ITEMTYPES システム テーブルのフィールドによって、オブジェクトがドメインとして識別されます。
 - ジオデータベース レプリカ - データベースの GDB_ITEMS、GDB_ITEMRELATIONSHIPS、GDB_ITEMTYPES、および GDB_REPLICALOG システム テーブルで追跡されます。
 - リレーションシップ クラス - GDB_ITEMS および GDB_ITEMRELATIONSHIPS システム テーブルに格納されます。
 
反対に、以降のセクションで説明するジオデータベース機能では、機能が有効化または使用されるときに追加の内部テーブルが作成されます。
ジオデータベースの履歴管理
ジオデータベースの履歴管理機能を使用すると、データのトランザクション時間履歴を追跡することができます。 トランザクション時間はデータベースでフィーチャが追加、削除、更新された時点を表します。
テーブルまたはフィーチャクラスでジオデータベースの履歴管理を有効化すると、アーカイブ クラスが作成されます。 アーカイブ クラスはビジネス テーブルのコピーで、この中にはすべての同じフィールドに加えて、GDB_FROM_DATE、GDB_TO_DATE、GDB_ARCHIVE_OID の 3 つの新たなフィールドが含まれます。 トラディショナル バージョン対応のテーブルまたはフィーチャクラスに対して履歴管理を有効化したときも、レコードが SDE_ARCHIVES システム テーブルに追加されます。 このレコードには、履歴管理が有効なテーブルの Registration ID と、そのテーブルに対応するアーカイブ クラス テーブルが格納されます。
元のビジネス テーブル名にアンダースコアと H を追加したものが、アーカイブ クラス テーブルの名前になります。 たとえば、buildings という名前のフィーチャクラスで履歴管理を有効化すると、buildings_H というアーカイブ クラスが作成されます。 このアーカイブ クラス テーブルは、ビジネス テーブルと同じスキーマに格納されます。
バージョン対応登録されていないアーカイブ クラスから不要なアーカイブ レコードを切詰めると、そのトランザクションは METADATA システム テーブルに記録されます。
トラディショナル バージョン
フィーチャクラスまたはテーブルをトラディショナル バージョン対応登録すると、データの編集情報を記録するために ADD テーブルと DELETE テーブルという 2 つのテーブルが作成されます。 これらのテーブルは総称して差分テーブルと呼ばれます。
ADD テーブル (A_<registration_id>) は、バージョン対応登録されたビジネス テーブルで挿入または更新されたレコード (フィーチャ) に関する情報を維持し、特定のジオデータベース ステートで追加または変更されたレコードを特定するために検索されます。
DELETE テーブル (D_<registration_id>) は、バージョン対応登録されたテーブルで削除または更新された行に関する情報を維持し、特定のステートで削除または変更された行を特定するために検索されます。 行が削除された場合、レコードは物理的に削除されません。レコードには削除済みのフラグが設定され、以降のデータベース クエリで返されなくなります。
ADD テーブルと DELETE テーブルの registration_id は TABLE_REGISTRY システム テーブルでバージョン対応登録されたテーブルを表す値です。
これらのテーブルは、バージョン対応登録されたテーブルまたはフィーチャクラスと同じユーザー スキーマに作成されます。
差分テーブルに加えて、バージョン対応登録されたテーブルと編集を追跡するコア システム テーブル (STATES、STATE_LINEAGES、MVTABLES_MODIFIED、および VERSIONS テーブル) があります。
キーセット テーブル
キーセット テーブルは ArcGIS クライアントでクエリ パフォーマンスを向上させるために使用されます。 キーセット テーブルには、ArcGIS クライアントが整数、数値、日付、文字列タイプの属性を使用してテーブルを結合するジオデータベース リレーションシップ クエリを実行するときに、選択された行のリストが格納されます。 キーセット テーブルは Object ID フィールド以外の属性による結合に対応します。
キーセット テーブルは、次のいずれかの操作が実行されて初めてジオデータベースに作成されます。
- ArcGIS Pro でマップ内のフィーチャクラスから 99 を超えるレコードを選択します。このフィーチャクラスはリレーションシップ クラスに参加しています。
 - ArcGIS Pro で、リレーションシップ クラスに参加しているフィーチャクラスの属性テーブルを開き、関連テーブルを取得します。
 
セッション (接続) ごとに 1 つのキーセット テーブルがグローバル一時テーブルとして作成されます。 キーセット テーブルは、一時テーブルなので、ユーザーがジオデータベースへの接続を終了したときに削除されます。
キーセット テーブル名は次の形式になります。
<user_schema>.keyset_<process_id>。ここで、<schema_name> はテーブルの作成につながる操作を実行したユーザーのスキーマで、<process_id> はテーブルの作成につながったユーザーのセッションのプロセス ID 番号です。
ログ ファイル テーブル
ログ ファイル テーブルは、ArcGIS クライアントで、選択された行のリストを格納してクエリ パフォーマンスを向上させるために使用されます。 ログ ファイル テーブルでは Object ID 属性に基づく結合が使用されます。
Db2 のジオデータベースでは、ログ ファイル テーブルとしてセッションベースのグローバル一時テーブルが使用されます。 テーブル名は SESSION.SDE_LOGFILES です。 一時テーブルから選択する各セッションは、セッションがテーブルに挿入した行だけを取得します。 セッションが終了すると、そのセッションに関連付けられているテーブルの行が削除されます。