バージョン対応ビューは、SQL (Structured Query Language) を使用してジオデータベース テーブルまたはフィーチャクラスにあるバージョン対応登録されたデータを読み取りまたは編集できるよう、データベース ビュー、ストアド プロシージャ、トリガー、および関数が組み込まれています。バージョン対応ビューを検索するときに、ベース (ビジネス) テーブルにあるデータと、差分テーブルに格納されている編集を表示できます。バージョン対応ビューで使用されるトリガーにより、SQL を使用してバージョン対応ビューを編集したときに差分テーブルが更新されます。
バージョン対応ビューは、データベースや空間ビューとは違い、テーブルのスキーマの変更やテーブルのスキーマへのアクセスの制限には使用できません。バージョン対応ビューは、特定のバージョンのテーブルまたはフィーチャクラスへのアクセスを容易にするために使用します。したがって、バージョン対応ビューを作成するときには WHERE 句を指定しません。結果として、バージョン対応ビューには、表示するベース テーブルと同じ列と行が含まれます。
バージョン対応ビューの動作の概要
各バージョン対応登録されたテーブルまたはフィーチャクラスには、編集内容を記録する差分テーブルが関連付けられます。バージョン対応ビューを通してバージョン対応登録されたテーブルまたはフィーチャクラスにアクセスするときに、ベース テーブル内のすべてのレコードが選択されて差分テーブルのレコードとマージされ、指定したバージョンのコンテキストでベース テーブルに対して行われたすべての変更を含むビューが作成されます。
バージョン対応ビューを使用しない場合、ジオデータベースのバージョニングをサポートしないアプリケーションは、バージョン対応登録されたフィーチャクラスまたはテーブルのベース テーブルしか直接検索できず、差分テーブルにアクセスすることができません。バージョン対応ビューを使用すると、これらのアプリケーションで差分テーブルのデータにアクセスできるようになるため有効です。
ジオデータベース レベルで実装されている機能を、バージョン対応ビューで使用することはできません。したがって、ジオデータベースの振舞いに関連付けられたデータの編集には使用できません。詳細については、「SQL で編集可能なデータ タイプ」をご参照ください。
バージョンとステートを設定せずにバージョン対応ビューを検索した場合は、DEFAULT バージョンの現在のステートが参照されます。他のユーザーが DEFAULT バージョンに編集をコミットしている (それにより、DEFAULT バージョンが参照しているステートが変化している) 場合、以降の検索では DEFAULT の最新のステートとその編集が確認されます。
set_current_version 関数またはプロシージャ (使用するデータベース管理システムにより名前が少し異なります) を使用して、検索対象のバージョンを指定する場合は、バージョンを設定したときに指定バージョンで参照されていたステートを参照します。
たとえば、set_current_version 関数を実行してバージョンを decedits という名前のバージョンに設定したときに、decedits がステート ツリーで「ステート 4」を指していた場合は、他のユーザーが decedits に対する編集をポストして、decedits の現在のステートが「ステート 25」になっていても、以降の decedits に対するすべての SQL はデータの「ステート 4」を参照します。「ステート 25」を確認するには、set_current_version 関数を実行して、バージョンを decedits の現在のステートに設定します。
バージョン対応ビューの作成
バージョン対応ビューは、ArcGIS 10.1 以降のリリースでバージョン対応登録されたテーブルまたはフィーチャクラスに対して、自動的に作成されます。フィーチャ データセットをバージョン対応登録すると、フィーチャ データセット内のフィーチャクラスごとにバージョン対応ビューが作成されます。作成されたビューには、テーブル名またはフィーチャクラス名の末尾に「_evw」を付加した名前が付けられます。
データが ArcGIS 10 以前でバージョン対応登録されている場合は、ArcGIS for Desktop 10.1 以降のリリースで、テーブル、フィーチャクラス、またはフィーチャデータセットを右クリックして、[管理] をポイントし、[SQL アクセスを有効化] をクリックすることで、バージョン対応ビューを作成できます。