ジオデータベースの格納モデルは、単純かつ本質的な一連のリレーショナル データベース概念に基づき、データベース管理システム (DBMS) の強みを活用しています。単純なテーブルと明確に定義された属性タイプを使用して、地理データセットごとにスキーマ、ルール、ベース、空間属性データを格納します。この手法は、データを格納して操作するための形式的なモデルを提供します。この手法では、SQL (structured query language)、つまり一連のリレーショナル関数および演算子を使用して、テーブルとそれらのデータ エレメントの作成、変更、問い合わせを行うことができます。
この仕組みは、ポリゴン ジオメトリを持つフィーチャがジオデータベースでどのようにモデリングされているかを調べると、よく理解できます。フィーチャクラスはテーブルとして格納され、しばしばベース テーブルまたはビジネス テーブルと呼ばれます。テーブルの行はそれぞれ 1 つのフィーチャを表します。Shape 列は、各フィーチャのポリゴン ジオメトリを格納します。このテーブルのコンテンツには、SQL の空間タイプとして格納された Shape も含めて、SQL を使用してアクセスできます。
しかし、空間タイプと空間属性の SQL サポートをデータベースに追加しても、それだけではデータベースで GIS をサポートすることができません。ArcGIS は、ジオデータベース格納モデルに加えて、アプリケーション層の高度なロジックと振舞いを実装する、多層アプリケーション アーキテクチャを採用しています。このアプリケーション ロジックには、フィーチャクラス、モザイク データセット、トポロジ、ネットワーク、レプリケーションなど、一般的な地理情報システム (GIS) データ オブジェクトと振舞いのサポートが含まれています。
オブジェクト リレーショナル モデルとしてのジオデータベース
ジオデータベースは、他の高度な DBMS アプリケーションと同じ多層アプリケーション アーキテクチャを使用して実装されています。その実装には他と異なる特殊な点は何もありません。ジオデータベースの多層アーキテクチャは、オブジェクト リレーショナル モデルとも呼ばれています。ジオデータベース オブジェクトは、データベース テーブルの行に固有のオブジェクトとして保持され、そのオブジェクトの振舞いはジオデータベースのアプリケーション ロジックによって定義されます。アプリケーション ロジックを格納層から分離することで、複数の異なるデータベース管理システムおよびデータ形式のサポートが可能になります。
リレーショナル データベースを使用したジオデータベース格納
ジオデータベースの核を担うのは、標準のリレーショナル データベース スキーマです (一連の標準データベース テーブル、列タイプ、インデックス、およびその他のデータベース オブジェクト)。スキーマは、地理情報の整合性と振舞いを定義するジオデータベース システム テーブルのコレクションとして、データベースに保存されます。
明確に定義された列タイプを使用して、従来の表形式の属性を格納します。ジオデータベースが DBMS 内に格納されるときは、一般にベクターまたはラスターで表される空間表現は、拡張空間タイプを使用して格納されるのが普通です。
ジオデータベース内には、システム テーブルとデータセット テーブルの 2 種類の主要テーブルがあります。
- データセット テーブル: ジオデータベースの各データセットは、1 つ以上のテーブルに格納されます。データセット テーブルはシステム テーブルと連携してデータを管理します。
- システム テーブル: ジオデータベースのシステム テーブルは、各ジオデータベースのコンテンツを管理します。システム テーブルは、すべてのデータセットの定義、ルール、およびリレーションシップを定義するジオデータベース スキーマを保持します。システム テーブルは、ジオデータベースのプロパティ、データ整合チェック ルール、および振舞いを実装するために必要なメタデータをすべて含んでいます。
データセットとシステム テーブルが連動して、ジオデータベースのコンテンツを提示し、管理します。たとえば、基本格納形式で表示されているフィーチャクラスは、空間列を持つテーブルです。しかし、ArcGIS を通じてアクセスすると、システム テーブルに格納されたすべてのルールが基本データと組み合わされて、定義されたすべての振舞いを持つフィーチャクラスとして提示されます。
追加テーブル
使用しているジオデータベースのタイプ、およびジオデータベースを格納しているデータベース管理システムによって、システム テーブルのセットは異なります。エンタープライズ ジオデータベースにある一連のシステム テーブルは、ファイル ジオデータベースとはまったく異なり、パーソナル ジオデータベースとは若干異なります。それぞれのデータベースのエンタープライズ ジオデータベース システム テーブルについては、以下のトピックをご参照ください。
- Db2 に格納されたジオデータベースのシステム テーブル
- Informix に格納されたジオデータベースのシステム テーブル
- Oracle に格納されたジオデータベースのシステム テーブル
- PostgreSQL に格納されたジオデータベースのシステム テーブル
- SQL Server に格納されたジオデータベースのシステム テーブル
パーソナル ジオデータベースに格納されるシステム テーブルについては、詳細に説明しません。それらのテーブルのほとんどは操作する必要がないものだからです。ファイル ジオデータベースは、テーブルではなくディスク上のファイルから構成され、それらのシステム ファイルを操作する必要があります。