ジオデータベースの構造

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

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

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

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

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

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

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

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

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

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

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

ジオデータベースのスキーマに関連する情報は、次のテーブルに格納されます:

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

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

関連トピック