ジオデータベース リレーションシップ クラスのタイプ

シンプルとコンポジットは、ArcGIS Pro で作成可能なジオデータベース リレーションシップ クラスの 2 つのタイプです。 使用可能なデータ、関連付けるデータセットの基数、回答を得たい問題にしたがって、リレーションシップ クラスのタイプを選択します。

リレーションシップ クラスの各タイプについて、以下で詳しく説明します。

シンプル リレーションシップ クラス タイプ

シンプル リレーションシップ クラスは、あるフィーチャクラス (関連元テーブル) 内のフィーチャをテーブル内の別のフィーチャクラス (関連先) またはオブジェクトに関連付けるリレーションシップのタイプです。

シンプル リレーションシップ クラスについて、以下で説明します。

  • 基数として、1 対 1 (1:1)、1 対多 (1:M)、または多対多 (M:N) を指定できます。
  • 2 つのテーブル (一方が関連元、もう一方が関連先) の間にリレーションシップが定義されます。
  • リレーションシップは共通属性フィールドに基づきます。
  • 関連元テーブル内のフィーチャまたは行を削除しても、関連先テーブル内の関連するフィーチャまたは行には影響がありません。
  • 共通属性フィールドの値が一致している限り、テーブル間のリレーションシップが維持されます。

たとえば、Campground Facilities という名前のフィーチャクラス (関連元) と Campsites という名前のフィーチャクラス (関連先) の間にシンプル リレーションシップ クラスがあるとします。 各キャンプ場をそのキャンプ場内の 1 つ以上のキャンプ地に関連付けることができますが、キャンプ地を削除してもキャンプ場は削除されません。

1 対多のシンプル リレーションシップ クラス

シンプル リレーションシップでは、関連オブジェクトをそれぞれ独立させることができます。 つまり、関連先オブジェクトを削除しても、主キーの値や関連元テーブル内の親レコードへの影響はありません。

たとえば、先日の豪雨で Slough Creek キャンプ地 #6 が流されたことが報告されたため、このレコードを Campsite (関連先) フィーチャクラスから削除しましたが、Campground Facilities (関連元) フィーチャクラスの Slough Creek キャンプ場には影響がありません。

関連先テーブルで子レコードが削除された場合の 1 対多のシンプル リレーションシップ クラスの動作

ただし、シンプル リレーションシップで関連元オブジェクトを削除すると、対応する関連先オブジェクトの外部キー フィールドの値が <NULL> に設定されます。 この外部キーの振舞いはフィーチャ間の参照整合性を維持するように設計されています。 関連元フィーチャが削除されると、外部キーの値によって関連元のフィーチャと関連付けられていた行の関連性が失われ、結果として外部キーの値は不要のものとして NULL に設定されます。

外部キーの目的は、関連先オブジェクトと対応する関連元オブジェクトのリレーションシップを維持することだけです。 対応する主キーの値を持つ関連元フィーチャがない場合は、外部キーの値を維持する必要がなくなります。 後で同じ関連先フィーチャを新規または別個の関連元フィーチャに関連付ける場合は、外部キー フィールドを NULL から新規の外部キー値に更新できます。

たとえば、FacilityID が 259310 である Slough Creek キャンプ場はイエローストーン国立公園の中で最小のキャンプ場であり、キャンプ地は 6 つしかありません。 このキャンプ場をこれより大きい Pebble Creek キャンプ場と統合することが決定されました。 このシンプル リレーションシップ クラスで、Slough Creek キャンプ場のレコードが関連元テーブルから削除された場合、6 つのキャンプ地は関連先テーブルに残りますが、それらの外部キー値は <Null> に変わります。 ParentFacilityID のこれら 6 つの <Null> 値を 259307 に更新することで、これらは Pebble Creek キャンプ場の ParentFacilityID にリンクされます。

関連元テーブルで親レコードが削除された場合の 1 対多のシンプル リレーションシップ クラスの動作

シンプル リレーションシップ クラスの作成方法

コンポジット リレーションシップ クラス タイプ

シンプル リレーションシップと同様に、コンポジット リレーションシップ クラスは、あるフィーチャクラス (関連元テーブル) 内のフィーチャをテーブル内の別のフィーチャクラス (関連先) またはオブジェクトに関連付けるリレーションシップのタイプです。 コンポジット リレーションシップでもオブジェクトの削除時に参照整合性が維持されますが、その方法は異なります。 コンポジット リレーションシップでは、関連先オブジェクトの存在は関連元オブジェクトに依存するため、関連元オブジェクトが削除されると、関連先オブジェクトも削除されます。このプロセスはカスケード削除と呼ばれます。 コンポジット リレーションシップの基数は作成時には必ず 1 対多になりますが、リレーションシップ ルールにより 1 対 1 に制限することも可能です。

コンポジット リレーションシップ クラスについて、以下で説明します。

  • 基数として、1 対 1 (1:1) または 1 対多 (1:M) を指定できます。
  • 2 つのテーブル (一方が関連元、もう一方が関連先) の間にリレーションシップが定義されます。
  • リレーションシップは共通属性フィールドに基づきます。
  • 関連元テーブル内のフィーチャまたは行を削除すると、関連先テーブル内の関連するフィーチャまたは行に影響が生じます。
  • 関連先テーブル内のフィーチャまたは行 (オブジェクト) が関連元テーブル内の関連するフィーチャまたは行 (オブジェクト) から独立して存在することはできません。
  • 共通属性フィールドの値が一致している限り、テーブル間のリレーションシップが維持されます。

たとえば、Slough Creek キャンプ場の現在の場所と土地は新しい教育センターに理想的であるという判断がなされたとします。 これにより、Slough Creek の 6 つのキャンプ地は利用できなくなり、造成/建設作業員は Slough Creek 教育センターを新設するために敷地の準備作業を開始することができます。 コンポジット リレーションシップ クラスを編集して Campground Facilities フィーチャクラス (関連元) から Slough Creek キャンプ場レコードを削除すると、Campsite フィーチャクラス (関連先) 内の関連する 6 つの Slough Creek キャンプ地がすべて削除されます。

関連元テーブルで親レコードが削除されると、関連する関連先オブジェクトも削除される、1 対多のコンポジット リレーションシップ クラスの動作
コンポジット リレーションシップ クラスでは、関連元オブジェクトが関連先オブジェクトを制御します。

コンポジット リレーションシップは、フィーチャの空間的な維持にも利用できます。関連元フィーチャを移動または回転すると、メッセージが正方向に設定されていれば、それに合わせて関連先オブジェクトも移動または回転します。

コンポジット リレーションシップ クラスの作成方法

多対多または属性付きリレーションシップ クラスの詳細

リレーションシップ クラスの使用上のヒントおよびリレーションシップ クラスを変更する際に使用可能なオプションの詳細

関連トピック