カバレッジ内のフィーチャは、他のカバレッジのフィーチャ、またはリレーションシップ クラスに格納される別のテーブルの属性と関連付けて利用する場合がよくあります。シンプルまたはコンポジット リレーションシップ クラスは、同じフォルダ内の同じ属性を持つ 2 つのテーブルまたはフィーチャクラス間で作成することができます。関連付けられたフィーチャクラスは、同じカバレッジにも異なるカバレッジにも属することができます。リレーションシップは ArcInfo リレートに似ています。
リレーションシップを使用すると、フィーチャクラスの属性テーブルと別のテーブルに、同じ値を共有する列を定義することができます。リレーションシップを作成すると、カバレッジのフィーチャと別テーブルの属性との間で、一時的なコネクションを確立することができます。リレーションシップ クラスにより、関連付けられたテーブルの属性に基づくカバレッジのフィーチャの検索、ラベリング、シンボル表示が可能となります。
カバレッジ フィーチャクラスまたは INFO テーブルが属するリレーションシップ クラスのリストは、[プロパティ] ダイアログ ボックスの [リレーションシップ] タブに表示されます。リスト内で特定のリレーションシップをクリックし、[プロパティ] をクリックすると、詳細情報が表示されます。たとえば、INFO テーブルに関連するすべてのカバレッジとテーブルを判別することができます。アイテムのリレーションシップは、そのアイテムのメタデータにも記録されます。FGDC Esri スタイル シートでは、メタデータの [属性] タブの下部に、アイテムのリレーションシップが一覧表示されます。
リレーションシップを定義するには、ArcCatalog を使用するか、[INFO テーブルの結合(Join Info Tables)] ツールを使用できますが、このジオプロセシング ツールを使用するには Advanced ライセンスが必要です。
リレーションシップのプロパティ
リレーションシップのプロパティの 1 つに基数があります。基数は、カバレッジのいくつのフィーチャが、他の属性テーブルのいくつのレコードと関連付けられているかを示します。カバレッジの 1 つのポイントに対して関連テーブルに複数の計測値が含まれる場合、リレーションシップは 1 対多であり、1 つのポイントが複数の計測値に対応します。通常、リレーションシップの基数は、「1 対 1」、「1 対多」、「多対 1」、「多対多」の 4 つに分類されます。
この例では、カバレッジのポイント フィーチャクラスがリレーションシップの関連元、計測値が含まれているテーブルが関連先です。これらのデータ ソースを結び付ける列はキー属性です。ポイント フィーチャクラス(関連元)には各観測点のコードが定義された属性があり、これがリレーションシップの主キーとなります。計測値のテーブルには計測値が得られた観測点を示す属性があり、これが埋め込み外部キーとなります。
リレーションシップには、関連付けの性質を示すパス ラベルがあります。
- 正方向のパス ラベルは、関連元から関連先に対するリレーションシップを示します。たとえば、観測点に計測値があるという関係です。
- 逆方向のパス ラベルは、同じリレーションシップを関連先から関連元にたどります。この例では、計測値が観測点で「得られた」と表現されます。
リレーションシップのタイプ
リレーションシップには、シンプルとコンポジットの 2 種類があります。シンプル リレーションシップは、互いに独立して存在するデータ ソース間の関係を示します。関連元のカバレッジを削除しても、関連先のテーブルが存続する場合、このカバレッジとテーブルは互いに独立していることになります。たとえば、上記の例で、上流の新しい観測点で測定を開始したために古い観測点をカバレッジから削除したとします。ただし、履歴を残すために、古い観測点で取得した測定値は保持しておくことにします。このような場合、このリレーションシップはシンプル リレーションシップを使用します。
コンポジット リレーションシップは、あるオブジェクトの存続によって、関連するオブジェクトの存続が制御される関係を表します。たとえば、高速道路と、高速道路の標識を配置するポイントの関係などがあります。高速道路カバレッジのラインのフィーチャクラスの主キーには、ラインごとに一意のコードが保持されます。標識カバレッジのポイント フィーチャクラスの外部キーには、対応するラインのコードが保持されます。標識を配置するポイントは、高速道路がなければ存在しません。
シンプル リレーションシップには、1 対 1、1 対多、または多対多の基数を定義することができます。多対 1 のリレーションシップは、定義上は 1 対 1 のリレーションシップです。一方、コンポジット リレーションシップは、常に 1 対多の基数となります。1 対多のリレーションシップを作成すると、シンプルまたはコンポジットに関係なく、リレーションシップの「1」にあたる側が関連元になり、「多」にあたる側は関連先になります。
1 つのオブジェクトを複数のリレーションシップに関連付けることができます。たとえば、高速道路のライン フィーチャクラスには、高速道路と標識間のコンポジット リレーションシップの他に、INFO テーブルに対するシンプル リレーションシップが存在する場合があります。この場合、各高速道路のラインには、使用される舗装タイプを示すコードと、各舗装コードの説明を保持する関連テーブルが定義されているため、多数の高速道路が同じ舗装の説明を共有することになります。このような 2 次的な関連付けを示すには、シンプル、つまり、1 対 1 のリレーションシップを作成します。
上記の例にはすべてカバレッジが関与していますが、2 つの INFO テーブル間にも、関連付けを定義するリレーションシップ クラスを作成することができます。
カバレッジ リレーションシップ クラス
異なる形式や別々の ArcInfo ワークスペースに保存されている地理データとテーブル データとの間に、レイヤによってテーブル結合やリレートが定義されることがあります。テーブル結合とリレートの機能は、シンプル リレーションシップ クラスに類似していますが、テーブル結合とリレートの場合は、個々のレイヤに対して定義しなければならないという違いがあります。
カバレッジ リレーションシップ クラスを作成することにより、永久的かつ現実的な方法で、ArcInfo ワークスペース内のオブジェクト間のリレーションシップをモデリングすることができます。作成したカバレッジ リレーションシップ クラスの情報は、複数のレイヤで再利用することができます。ArcMap は、リレーションシップ クラスの有無を自動的に認識するので、関連属性に簡単にアクセスできます。
カバレッジ リレーションシップ クラスは、ジオデータベースに作成できるリレーションシップ クラスと基本的に同じです。ジオデータベースのリレーションシップ クラスの詳細については、「リレーションシップ クラスの利点」をご参照ください。