ジオデータベース内のフィーチャクラスまたはテーブルの間のリレーションシップ クラスを作成するには、ArcGIS Pro のリレーションシップ クラスの作成またはテーブルからリレーションシップ クラスを作成ジオプロセシング ツールを使用します。 これらのツールを使用して、シンプル リレーションシップ クラス、コンポジット リレーションシップ クラス、および属性付きリレーションシップ クラスを作成することができます。
あるフィーチャクラスのフィーチャを別のフィーチャクラスのフィーチャに関連付けるシンプル リレーションシップ クラスにより、関連するフィーチャが互いに独立して存在することができます。 これらのフィーチャ間の関係は、親レコードにリンクしている子レコードの外部キーによって維持されます。 関連元オブジェクトが削除された場合や、子レコードに対応する親レコードが存在しない場合、外部キーは Null に設定されて、参照整合性が確保されます。 この外部キーを更新して別の関連元フィーチャとの新しいリレーションシップを作成することができます。
たとえば、警察/法執行機関の場合、警察署 (関連元) と警察官 (関連先) の間に 1 対多のリレーションシップが存在します。 各警察署には複数の警察官が配置されていますが、それぞれの警察官は 1 つの警察署だけに配属されています。 ある警察署が廃止された場合、警察官は別の警察署に配置転換され、新しいリレーションシップが作成されます。
以下の手順を開始する前に、「リレーションシップ クラス作成の準備」を参照して、データ要件をご確認ください。 。
注意:
リレーションシップ クラスはファイル ジオデータベース、モバイル ジオデータベース、およびエンタープライズ ジオデータベースでサポートされています。 リレーションシップ クラスを作成するには、既存のジオデータベースまたはジオデータベース内のフィーチャ データセットを右クリックします。 エンタープライズ ジオデータベース内にリレーションシップ クラスを作成する場合、データベースでデータを作成する権限のあるユーザーとして、エンタープライズ ジオデータベースに接続する必要があります。
シンプル リレーションシップ クラスを作成するには、次の手順を実行します。
- ArcGIS Pro を起動して、既存のプロジェクトを開くか、テンプレートを使用せずに開始します。
- [カタログ] ウィンドウで、既存のジオデータベースを右クリックし、ショートカット メニューの [新規] をクリックします。
- [リレーションシップ クラス] をクリックします。
デフォルト設定を含む [リレーションシップ クラスの作成 (Create Relationship Class)] ジオプロセシング ツール ダイアログ ボックスが表示されます。
- [関連元テーブル] パラメーターで、リストからデータセットを選択するか、参照ボタンを使用してデータセットを見つけます。
- [関連先テーブル] パラメーターで、リストからデータセットを選択するか、参照ボタンを使用してデータセットを選択します。
- [出力リレーションシップ クラス] パラメーターで、参照ボタン をクリックしてリレーションシップ クラスの格納先のオデータベースを参照し、[名前] テキスト ボックスにリレーションシップ クラスの名前を入力し、[保存] をクリックします。
この例では、関連元テーブルと関連先テーブルは Wyoming Natural Assets.geodatabase という名前のモバイル ジオデータベース内にあります。 リレーションシップ クラスもこのモバイル ジオデータベース内に存在していなければなりません。 このモバイル ジオデータベースは SQLite 上に構築されているため、接頭辞 main がリレーションシップ クラス名に自動的に追加され、メイン スキーマ (SQLite データベースのデフォルト スキーマ) に属していることが示されます。
リレーションシップ クラスの名前は出力リレーションシップ クラス パラメーターに反映されます。
- [リレーションシップ タイプ] パラメーターで、ドロップダウン リストから [シンプル] を選択します。
シンプル リレーションシップ クラス タイプとコンポジット リレーションシップ クラス タイプの違いについては、「ジオデータベース リレーションシップ クラスのタイプ」をご参照ください。
- [正方向 (関連元から関連先へ)] および [逆方向 (関連先から関連元へ)] パラメーターの値を入力します。
正方向パス ラベルは関連元クラスから関連先クラスへのリレーションシップを記述し、逆方向パス ラベルは関連先クラスから関連元クラスへの反対方向のリレーションシップを記述します。 これらのラベルの詳細については、「リレーションシップ クラスの作成ツールのパラメーター」をご参照ください。
- シンプル リレーションシップ クラスを作成しているため、[情報伝達方向] パラメーターで、[なし (メッセージを伝達しない)] を選択します。
[情報伝達方向] パラメーターでは、関連オブジェクトの間でメッセージがどのように送られるかを指定します。 このパラメーターは、リレーションシップ クラスのカスタム カスケード更新/削除動作を実装する場合に適用されます。 シンプル リレーションシップ クラスまたはコンポジット リレーションシップ クラスの [情報伝達方向] パラメーターを設定することによるさまざまな影響の詳細については、「リレーションシップ クラスの作成ツールのパラメーター」をご参照ください。
- [基数] パラメーターで、そのリレーションシップ クラスのデータに適した基数オプションを選択します。
リレーションシップ クラスの基数は、関連元のいくつのオブジェクトが関連先のいくつのオブジェクトに関連するかを示します。 [基数] パラメーターのオプションを以下に示します。
- [1 対 1 (1:1)] - 関連元テーブル内の各行またはフィーチャを、関連先テーブル内の 0 個または 1 個の行またはフィーチャに関連付けることができます。 これがデフォルトです。
- [1 対多 (1:M)] - 関連元テーブル内の各行またはフィーチャを、関連先テーブル内の 1 個または複数の行またはフィーチャに関連付けることができます。
- [多対多 (M:N)] - 関連元テーブル内の複数の行またはフィーチャを、関連先テーブル内の複数の行またはフィーチャに関連付けることができます。
- 必要に応じて、[リレーションシップ クラスに属性を含める] をオンにして (またはオフのままにして)、リレーションシップ クラスに属性を含めるかどうかを指定します。
- オフ - リレーションシップ クラスに属性は含まれません。 これがデフォルトです。
- オン - 属性付きリレーションシップ クラスが作成されます。 多対多 (M:N) または属性付きリレーションシップ クラスを作成すると、新しい中間リレーションシップ クラス テーブルが作成されます。 このテーブルは、関連元オブジェクトと関連先オブジェクト間の関連付けのマッピングに使用されます。 属性付きリレーションシップ クラスの詳細については、「ジオデータベース リレーションシップ クラスのタイプ」をご参照ください。
- [関連元テーブルの主キー] および [関連元の外部キー] パラメーターで、関連元テーブルのフィールドと関連先テーブルのフィールドをそれぞれ指定します。
[関連元テーブルの主キー] および [関連元の外部キー] パラメーターで、関連元フィーチャクラスの主キーと関連先テーブルの関連する外部キー フィールドを指定します。 [関連元の外部キー] パラメーターには、[関連元テーブルの主キー] パラメーターで指定したフィールドとデータ タイプが同じフィールドだけが表示されます。
- [実行] をクリックしてリレーションシップ クラスを作成します。
注意:
[実行] ドロップダウン メニューをクリックし、[実行のスケジュール] をクリックして、ツールを後日実行したり、定期的に実行したりすることもできます。