ジオデータベースのトランザクション管理

トランザクションは、データベースを変更するための作業の単位です。地理情報システム(GIS)データベースは、他のデータベース アプリケーションと同様に、データの整合性とアプリケーションの振舞いを維持した更新トランザクションをサポートしなければなりません。多くの場合、ユーザはジオデータベースへの編集および更新の管理に、データベース管理システム(DBMS)のトランザクション フレームワークを利用することができます。

ただし、GIS では特殊なトランザクションが必要になることがあります。例を次に示します。

ユーザが変更内容を元に戻したり、やり直したりする必要もあります。また、編集セッションは、数時間あるいは数日におよぶことがあります。さらに、中央の共有データベースに接続していないシステムで、編集を実行しなければならないこともあります。

GIS ワークフロー プロセスは数日あるいは数か月におよぶ場合があるため、各ユーザの日常業務において、ユーザ固有の GIS データベースの状態を提供する必要がある場合があります。マルチユーザ データベース環境では、このように長期におよぶ GIS トランザクションを DBMS のショート トランザクション フレームワーク上で管理しなければなりません。ArcSDE テクノロジは、シンプルな DBMS トランザクション フレームワークを拡張し、高度で複雑な GIS トランザクションを提供するための重要な役割を果たします。

GIS では上記のように、ロング トランザクション ワークフローが重要になるケースがよくあります。ほとんどの場合は、GIS データベースへの更新をマルチユーザ DBMS と ArcSDE を使用してバージョニングによって管理すれば、ロング トランザクション ワークフローを実現することができます。バージョニングの詳細については、以下を参照してください。

次に、バージョン ベースのトランザクション モデルが必要となる GIS データの編集ワークフローの例を示します。

ジオデータベースのトランザクション モデル:バージョニング

上記の例をはじめ、その他多くの GIS ワークフローを実現するために、ジオデータベースのメカニズムは、ジオデータベース空間データ、ルール、振舞いの整合性を確保しながら、ジオデータベースの複数の状態(ステート)を管理する必要があります。この複数の状態を管理、操作、確認する機能として、バージョニングが使用されます。バージョニングは、その名が示すように、個々のフィーチャおよびオブジェクトが変更、追加、削除されるたびに、それらのバージョン(状態)を保持します。各バージョンには、フィーチャまたはオブジェクトのそれぞれの状態が、重要なトランザクション情報とともに、テーブルの行として明示的に記録されます。複数のバージョンを同時に操作および管理することができます。

バージョニングには、すべてのトランザクションをデータベースへの一連の変更として記録するとともに。個々のユーザにユーザ固有のジオデータベースのビューまたは状態を提供します。バージョニングは、オープンで高性能なマルチユーザ アクセスを実現することを目的としており、たとえば、数千の同時ユーザによってアクセスされる膨大な数のレコードが含まれたデータセットを高速かつ生産的にサポートできることを目的として設計されています。

バージョンに基づくジオデータベース トランザクション モデルは比較的シンプルであり、更新内容は差分テーブルに記録されます。

バージョニングにより、ジオデータベースのオブジェクトの状態は、次の 2 つの差分テーブルに記録されます。

ジオデータベースの状態の表示および操作には(たとえば、ある時点のデータベースの状態を表示する、特定のユーザの現在の編集バージョンを確認するなど)、単純なクエリが使用されます。

ArcSDE は、バージョン対応のジオデータベース アプリケーションにおいて重要な役割を果たし、ショート トランザクション フレームワークを拡張した各 DBMS でのロング トランザクションの管理とさまざまな DBMS にまたがる操作に使用されます。

ジオデータベースのバージョン テーブル

上の図のバージョン テーブルの例では、番号 45 の土地区画が番号 47 の土地区画に更新されています。バージョニングにより、元の土地区画は DELETE テーブルに保存され、新しい土地区画は ADD テーブルに保存されます。その他のメタ テーブルには、各更新の時刻と更新のシーケンス、バージョン名、各更新のステート ID といった、トランザクションに関するバージョン情報が記録されます。各バージョンには、独自のセキュリティ権限とアクセス権限もあります。

このようなメカニズムにより、多くのユーザがジオデータベースのマスタである DEFAULT バージョンを操作する一方で、別のユーザが独自のバージョンに対して同時に更新を行うことができます。

各バージョンに対して膨大な数の更新を実行することが可能であり、ユーザは必要に応じて更新バージョンに接続してデータをさらに編集することができます。ユーザが更新内容を組織全体で共有する準備が整った時点で、更新バージョンの編集内容をメイン(DEFAULT)バージョンにコミットするために、リコンサイルとポストと言う処理が実行されます。リコンサイル処理ではバージョン間の編集競合を特定し、解決することができます。

バージョニングの詳細については、バージョニングの概要をご参照ください。


3/6/2012