ジオデータベースのアーキテクチャ

ジオデータベースの格納モデルは、単純かつ本質的な一連のリレーショナル データベース概念に基づき、データベース管理システム (DBMS) の強みを活用しています。単純なテーブルと明確に定義された属性タイプを使用して、地理データセットごとにスキーマ、ルール、ベース、空間属性データを格納します。この手法は、データを格納して操作するための形式的なモデルを提供します。この手法では、SQL (structured query language) を使用して、テーブルとそれらのデータ エレメントの作成、変更、問い合わせを行うことができます。

この仕組みは、ポリゴン ジオメトリを持つフィーチャがジオデータベースでどのようにモデリングされているかを調べると、よく理解できます。フィーチャクラスはテーブルとして格納され、しばしばベース テーブルまたはビジネス テーブルと呼ばれます。テーブルの行はそれぞれ 1 つのフィーチャを表します。Shape 列は、各フィーチャのポリゴン ジオメトリを格納します。このテーブルのコンテンツには、SQL の空間タイプとして格納された Shape も含めて、SQL を使用してアクセスできます。

ポリゴン フィーチャクラス ビジネス テーブルの例

しかし、空間タイプと空間属性の SQL サポートを DBMS に追加しても、それだけでは DBMS で GIS をサポートすることができません。ArcGIS は、ジオデータベース格納モデルに加えて、アプリケーション層の高度なロジックと振舞いを実装する、多層アプリケーション アーキテクチャを採用しています。このアプリケーション ロジックには、フィーチャクラス、ラスター データセット、トポロジ、ネットワークなど、一般的な地理情報システム (GIS) データ オブジェクトと振舞いのサポートが含まれています。

オブジェクト リレーショナル モデルとしてのジオデータベース

ジオデータベースは、他の高度な DBMS アプリケーションと同じ多層アプリケーション アーキテクチャを使用して実装されています。その実装には他と異なる特殊な点は何もありません。ジオデータベースの多層アーキテクチャは、オブジェクト リレーショナル モデルとも呼ばれています。ジオデータベース オブジェクトは、DBMS テーブルの行に固有のオブジェクトとして保持され、そのオブジェクトの振舞いはジオデータベースのアプリケーション ロジックによって定義されます。アプリケーション ロジックを格納層から分離することで、複数の異なる DBMS およびデータ形式のサポートが可能になります。

リレーショナル データベースを使用したジオデータベース格納

ジオデータベースの核を担うのは、標準のリレーショナル データベース スキーマです (一連の標準データベース テーブル、列タイプ、インデックス、およびその他のデータベース オブジェクト)。スキーマは、地理情報の整合性と振舞いを定義するジオデータベース システム テーブルのコレクションとして、DBMS に保存されます。これらのテーブルは、ディスク上にファイルとして格納されるか、Oracle、IBM DB2、PostgreSQL、Microsoft SQL Server などの DBMS のコンテンツ内に格納されます。

明確に定義された列タイプを使用して、従来の表形式の属性を格納します。ジオデータベースが DBMS 内に格納されるときは、一般にベクターまたはラスターで表される空間表現は、SQL 空間タイプを使用して格納されるのが普通です。

ジオデータベース内には、システム テーブルとユーザー定義テーブルの 2 種類の主要テーブルがあります。

  • ユーザー定義テーブル - ジオデータベースの各データセットは、1 つ以上のテーブルに格納されます。ユーザー定義テーブルはシステム テーブルと連携してデータを管理します。
  • システム テーブル - ジオデータベースのシステム テーブルは、各ジオデータベースのコンテンツを管理します。システム テーブルは、すべてのデータセットの定義、ルール、およびリレーションシップを定義するジオデータベース スキーマを保持します。システム テーブルは、ジオデータベースのプロパティ、データ整合チェック ルール、および振舞いを実装するために必要なメタデータをすべて保持して管理します。

ジオデータベースのスキーマに関連する情報は、4 種類の主要なテーブルに格納されます。

  • GDB_Items: フィーチャクラス、トポロジ、ドメインなど、ジオデータベースに格納されているすべてのアイテムのリストを保持します。
  • GDB_ItemTypes: Table など、認識されたアイテム タイプの定義済みリストを保持します。
  • GDB_ItemRelationships: フィーチャ データセット内にどのフィーチャクラスが含まれているかなど、アイテム間のスキーマ関連を保持します。
  • GDB_ItemRelationshipTypes: DatasetInFeatureDataset など、認識されたリレーションシップ タイプの定義済みリストを保持します。

ユーザー定義テーブルとシステム テーブルが連動して、ジオデータベースのコンテンツを提示し、管理します。たとえば、データベースで表示されているフィーチャクラスは、空間列を持つ単純なテーブルです。しかし、ArcGIS を通じてアクセスすると、システム テーブルに格納されたすべてのルールが基本データと組み合わされて、定義されたすべての振舞いを持つフィーチャクラスとして提示されます。