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

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

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

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

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

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

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

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

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

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

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

テーブルを含むジオデータベースの図

ArcGIS 10 リリース以降、これらのテーブルの内部構造が再編されました。ジオデータベースのスキーマに関連する情報は、ArcGIS 10 より前のリリースでは 35 を超えるジオデータベース システム テーブルに格納されていましたが、ArcGIS 10 では、4 つのメイン テーブルに集約されています。

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

追加テーブル

使用しているジオデータベースのタイプ、およびジオデータベースを格納している DBMS によって、システム テーブルのセットは異なります。ArcSDE ジオデータベースは、ファイル ジオデータベースとは異なるシステム テーブルのセットを持ちます。ファイル ジオデータベースとパーソナル ジオデータベースのシステム テーブルのセットも多少違います。ArcSDE ジオデータベースの場合は、個々の DBMS ごとに異なるシステム テーブルがジオデータベース トピックのシステム テーブルに定義されます。ファイルおよびパーソナル ジオデータベースに格納される異なるテーブルについては、詳細に説明しません。それらのテーブルのほとんどは操作する必要がないものだからです。

5/10/2014