PostgreSQL のジオデータベース システム テーブル

ArcGIS Pro 3.4 | | ヘルプのアーカイブ

ArcGIS クライアントまたは ArcGIS Server Web サービス経由でエンタープライズ ジオデータベースに接続したら、ジオデータベースに自分で追加したか、他のデータベース ユーザーが追加したデータセットを操作します。 エンタープライズ ジオデータベースでは、そのデータを追跡し、ジオデータベースの振舞いを実装するためにシステム テーブルを使用します。

ArcGIS ソフトウェアまたは SDK 以外のものを使用して、システム テーブルとその内容を変更しないでください。 ただし、SQL を使用してシステム テーブルの内容を表示することができます。

コア システム テーブル

エンタープライズ ジオデータベースを含む PostgreSQL データベースでクエリを実行する際には、sde スキーマの次のコア システム テーブルが表示されます。

  • gdb_conflicts
  • gdb_editingtemplaterelationships
  • gdb_editingtemplates
  • gdb_itemrelationships
  • gdb_itemrelationshiptypes
  • gdb_items
  • gdb_itemtypes
  • gdb_locks
  • gdb_replicalog
  • gdb_tables_last_modified
  • sde_archives
  • sde_branch_tables_modified
  • sde_branches
  • sde_column_registry
  • sde_compress_log - 初めてジオデータベースを圧縮したときに作成されます。
  • sde_coordinate_systems
  • sde_dbtune
  • sde_geometry_columns
  • sde_layer_locks
  • sde_layers
  • sde_lineages_modified
  • sde_multibranch_tables
  • sde_mvtables_modified
  • sde_object_ids
  • sde_object_locks
  • sde_process_information
  • sde_raster_columns
  • sde_server_config
  • sde_spatial_references - sde スキーマではなく、パブリック スキーマに格納されます。
  • sde_state_lineages
  • sde_state_locks
  • sde_states
  • sde_table_locks
  • sde_table_registry
  • sde_tables_last_edit_time
  • sde_tables_modified
  • sde_version
  • sde_version_history
  • sde_versions

次に示すテーブルはジオデータベースに存在しますが、現在は使われていません。 これらのテーブルは今後のリリースで削除される予定です。

  • sde_locators
  • sde_metadata
  • sde_layer_stats
  • sde_logfile_pool
  • sde_xml_columns
  • sde_xml_index_tags
  • sde_xml_indexes

エンタープライズ ジオデータベース機能を実装するテーブル

一部のジオデータベース機能の情報はコア システム テーブルにのみ格納されます。 たとえば、次の機能に関する情報はコア システム テーブルに格納され、これらの機能をユーザー データに対して有効化したときに追加のテーブルはデータベースに作成されません。

  • 属性ルール - gdb_items システム テーブルに格納されます。
  • ブランチ バージョン - テーブルまたはフィーチャクラスが編集情報の記録のためにブランチ バージョン対応登録されるときに、6 つのフィールドがそのテーブルまたはフィーチャクラスのビジネス テーブルに追加されます。
  • ドメイン - gdb_items システム テーブルに格納されます。 gdb_itemtypes システム テーブルのフィールドによって、オブジェクトがドメインとして識別されます。
  • ジオデータベース レプリカ - データベースの gdb_itemsgdb_itemrelationshipsgdb_itemtypes、および gdb_replicalog システム テーブルで追跡されます。
  • リレーションシップ クラス - gdb_items および gdb_itemrelationships システム テーブルに格納されます。

反対に、以降のセクションで説明するジオデータベース機能では、機能が有効化または使用されるときに追加の内部テーブルが作成されます。

ジオデータベースの履歴管理

ジオデータベースの履歴管理機能を使用すると、データのトランザクション時間履歴を追跡することができます。 トランザクション時間はデータベースでフィーチャが追加、削除、更新された時点を表します。

テーブルまたはフィーチャクラスでジオデータベースの履歴管理を有効化すると、アーカイブ クラスが作成されます。 アーカイブ クラスはビジネス テーブルのコピーで、この中にはすべての同じフィールドに加えて、gdb_from_dategdb_to_dategdb_archive_oid の 3 つの新たなフィールドが含まれます。 トラディショナル バージョン対応のテーブルまたはフィーチャクラスに対して履歴管理を有効化したときも、レコードが sde_archives システム テーブルに追加されます。 このレコードには、履歴管理が有効なテーブルの Registration ID と、そのテーブルに対応するアーカイブ クラス テーブルが格納されます。

元のビジネス テーブル名にアンダースコアと H を追加したものが、アーカイブ クラス テーブルの名前になります。 たとえば、buildings という名前のフィーチャクラスで履歴管理を有効化すると、buildings_H というアーカイブ クラスが作成されます。 このアーカイブ クラス テーブルは、ビジネス テーブルと同じスキーマに格納されます。

バージョン対応登録されていないアーカイブ クラスから不要なアーカイブ レコードを切詰めると、そのトランザクションは sde_metadata システム テーブルに記録されます。

トラディショナル バージョン

フィーチャクラスまたはテーブルをトラディショナル バージョン対応登録すると、データの編集情報を記録するために ADD テーブルと DELETE テーブルという 2 つのテーブルが作成されます。 これらのテーブルは総称して差分テーブルと呼ばれます。

ADD テーブル (a_<registration_id>) は、バージョン対応登録されたビジネス テーブルで挿入または更新されたレコード (フィーチャ) に関する情報を維持し、特定のジオデータベース ステートで追加または変更されたレコードを特定するために検索されます。

DELETE テーブル (d_<registration_id>) は、バージョン対応登録されたテーブルで削除または更新された行に関する情報を維持し、特定のステートで削除または変更された行を特定するために検索されます。 行が削除された場合、レコードは物理的に削除されません。レコードには削除済みのフラグが設定され、以降のデータベース クエリで返されなくなります。

ADD テーブルと DELETE テーブルの registration_id は sde_table_registry システム テーブルでバージョン対応登録されたテーブルを表す値です。

これらのテーブルは、バージョン対応登録されたテーブルまたはフィーチャクラスと同じユーザー スキーマに作成されます。

差分テーブルに加えて、バージョン対応登録されたテーブルと編集を追跡するコア システム テーブル (sde_statessde_state_lineagessde_mvtables_modified、および sde_versions テーブル) があります。

キーセット テーブル

キーセット テーブルは ArcGIS クライアントでクエリ パフォーマンスを向上させるために使用されます。 キーセット テーブルには、ArcGIS クライアントが整数、数値、日付、文字列タイプの属性を使用してテーブルを結合するジオデータベース リレーションシップ クエリを実行するときに、選択された行のリストが格納されます。 キーセット テーブルは Object ID フィールド以外の属性による結合に対応します。

キーセット テーブルは、次のいずれかの操作が実行されて初めてジオデータベースに作成されます。

  • ArcGIS Pro でマップ内のフィーチャクラスから 99 を超えるレコードを選択します。このフィーチャクラスはリレーションシップ クラスに参加しています。
  • ArcGIS Pro で、リレーションシップ クラスに参加しているフィーチャクラスの属性テーブルを開き、関連テーブルを取得します。

セッション (接続) ごとに 1 つのキーセット テーブルがグローバル一時テーブルとして作成されます。 キーセット テーブルは、一時テーブルなので、ユーザーがジオデータベースへの接続を終了したときに削除されます。 ただし、このテーブルを格納するために PostgreSQL によって作成された一時スキーマは残ります。 このスキーマには pg_temp_3 などの名前が付けられます。

キーセット テーブル名は次の形式になります。

keyset_<process_id>。ここで、<process_id> はキーセット テーブルの作成につながったセッションのプロセス ID 番号です。

ログ ファイル テーブル

ログ ファイル テーブルは、ArcGIS クライアントで、選択された行のリストを格納してクエリ パフォーマンスを向上させるために使用されます。 ログ ファイル テーブルでは Object ID 属性に基づく結合が使用されます。

PostgreSQL のジオデータベースでは、ログ ファイル テーブルとしてデータベース内の一時テーブルが使用されます。 これらのテーブルはユーザーごとに作成され、名前の形式は pg_temp<#>.sde_logfiles になります。