データ リレーションシップの関連付けは、マップ内で一時的にテーブルを結合またはリレートする、より永続的な関連性を維持するリレーションシップ クラスをジオデータベースで作成するなど、さまざまな方法で行うことができます。
これらの各データ リレーションシップ オプションの詳細については、以下のリンクをクリックしてください。
使用するデータ リレーションシップ オプションを決定する際に役立つテーブル マトリックスが「データ リレーションシップの比較」に掲載されています。
ヒント:
現実世界のシナリオにおけるこれらのデータ リレーションシップ オプションについて詳しく学ぶには、ガイド付き Learn ArcGIS のレッスンで、結合とリレートの作成、およびリレーションシップ クラスを使用したキャンプ地データの品質向上に必要なワークフロー ステップとデータについての詳細をご参照ください。
結合
結合はテーブルの一時的な関連付けであり、結合テーブル内のフィールドとレコードが入力テーブルのフィールドとレコードに対応付けられて動的に追加されます。
結合が作成されると、結果として得られる結合された情報は、レイヤーのプロパティに格納され、作成されたマップ内で一時的に保持され、プロジェクトとともに保存することができます。 結合された情報を閲覧できるのは、プロジェクトにアクセスできるユーザーだけです。
結合は共通キー フィールドに基づき、共通キー フィールドは、関連する両方のテーブルに存在する必要があります。 このフィールドの名前が両方のテーブルで同じである必要はありませんが、フィールドのデータ タイプおよびこのフィールド内に格納される情報または値のタイプは両方のテーブルで同じでなければなりません。
結合でサポートされるデータ タイプには、フィーチャ レイヤー、テーブル、テーブル ビュー、およびラスター属性テーブルを含むラスター レイヤーがあり、2 つの基数オプションのいずれかを指定できます。
- 1 対 1 (1:1)
- 多対 1 (M:1)
注意:
1 対多 (1:M) または多対多 (M:N) - 1 対多または多対多のリレーションシップが存在する場合に結合を作成できますが、データ ソースに応じて、ツールと他のレイヤー固有設定の動作は異なります。 同じジオデータベース内のテーブルを結合する場合、すべてのレコードを保持するのがデフォルトのオプションです。 データベース以外のデータ (シェープファイルや dBASE テーブルなど) を使用して結合を作成する場合は、最初に一致したレコードのみが返されます。
さまざまな入力での結合の使用と考えられる結果については、「テーブルの結合」をご参照ください。
次の例では、各自然資産 (国立公園) は、特定の組織によって管理されています。 データの一貫性を維持するために、多対 1 結合を使用して、National Parks レイヤーのレコードを特定の組織に結合することで、公園の資産およびそれらの所有者の全体像が表されています。
結合が確立されると、結合テーブルと入力テーブルから単一の仮想テーブルが作成されます。 結果として得られる結合された情報は、レイヤーのプロパティに格納され、作成されたマップ内で一時的に保持され、プロジェクトとともに保存することができます。 結合されたテーブルの追加フィールドを使用して、レイヤーのフィーチャをシンボル表示、ラベリング、クエリ、分析することができ、エイリアス、表示設定、数値形式などのフィールド プロパティは、結合が追加または削除された場合も維持されます。
結合の詳細については、「結合とリレートの概要」をご参照ください。
ヒント:
共通のフィールドはないが共通の位置がある場合、空間結合を実行できます。 空間結合は、属性による結合、リレート、リレーションシップ クラスとは異なり、静的であり、結果を新しい出力レイヤーに保存する必要があります。 空間結合では、近接や包含などの空間リレーションシップに基づいて結合するフィーチャが決定されます。 空間結合の詳細については、「位置によるデータの結合」をご参照ください。
リレート
リレートは ArcGIS Pro におけるレイヤーのプロパティです。 リレートは、テーブルを物理的に結合せずに、キー フィールドを介して 1 つ以上のテーブルを相互に関連付けます。
リレートでは、テーブルは独立したままとなり、物理的に結合された表示にはなりません。 それでも、あるテーブルでフィーチャまたはレコードを選択すると、関連テーブル内のキー フィールドを介して関連付けられている関連レコードが選択されるため、この関連データにアクセスして分析することができます。
リレートはデータ分析、探索、視覚化を行う際に役立ちます。 データを複製することなくリレートを確立することによって、フィーチャや位置に関する追加情報に簡単にアクセスすることができます。 たとえば、都市のレイヤーと年間降水量データのテーブルの間にリレートを作成して、各都市の降水量データを表示することができます。
リレートはシェープファイルとジオデータベース フィーチャクラスについて作成することができ、レコード間の基数オプションとして次の 3 つのいずれかを指定できます。
- 1 対 1 (1:1)
- 1 対多 (1:M)
多対多 (M:N)
リレートの追加と使用の詳細については、「リレートの追加」をご参照ください。
リレートはプロジェクトまたはレイヤー ファイル内にのみ存在することができ、プロジェクトが開いている間のみ使用できます。 別のプロジェクトで使用するためにリレートを保存するにはレイヤー ファイルの保存ジオプロセシング ツールを使用し、永続的なリレートを作成するにはリレーションシップ クラスの作成ジオプロセシング ツールを使用します。
たとえば、公園管理のシナリオでは、リレートを使用して、キャンプ地の名前や位置などの静的詳細を、チェックイン/チェックアウト時間、サイトの状態、ペット規約などの動的情報に関連付けることができます。 次の例では、個々のキャンプ地とキャンプ地属性の間に 1 対多のリレートが作成されています。 リレートを作成することで、1 つのキャンプ地をクエリし、そのキャンプ地の詳細を表す複数の関連属性にアクセスすることができます。
リレートの詳細については、「結合とリレートの概要」をご参照ください。
リレーションシップ クラス
リレーションシップ クラスはジオデータベース内のデータセットのタイプであり、2 つのフィーチャクラス間、フィーチャクラスと非空間テーブル間、または 2 つの非空間テーブル間での関連レコードのリレーションシップや関連付けに関する情報が格納されます。
リレーションシップ クラスは物理的に格納されてジオデータベース内で永続化され、さらに永続的なデータ リレーションシップを維持します。 リレーションシップ クラスはジオデータベース内に 1 回作成することができます。 リレーションシップ クラスが存在するジオデータベースに対するアクセス権と、そのリレーションシップ クラスに属するデータセットに対するアクセス権を持つすべての人が、そのリレーションシップ クラスにアクセスすることができます。
リレーションシップ クラスに属する両方のデータセットが同じジオデータベースに保存されている必要があります。 フィーチャクラスと同様に、リレーションシップ クラスもジオデータベースのルート レベルまたはフィーチャ データセット内に作成して存在することができます。 リレーションシップ クラスは 2 つのテーブル間の主キー-外部キー リレーションシップによって定義され、3 つの基数オプションのいずれかを指定することができます。
- 1 対 1 (1:1)
- 1 対多 (1:M)
多対多 (M:N)
一方のテーブルでレコードを編集するともう一方のテーブルで関連レコードが自動的に更新されるようにリレーションシップ クラスを設定することができます。
次の例では、キャンプ場施設と各キャンプ場にあるキャンプ地の間に 1 対多のリレーションシップ クラスが作成されています。 この 1 対多のリレーションシップによって、キャンプ場を 1 つ選択して、そのキャンプ場に関連付けられているキャンプ地と各キャンプ地の属性にアクセスすることができます。
リレーションシップ クラスが作成されるとジオデータベース内に永続化され、関連するデータセット間の複雑なリレーションシップや相互作用が可能になります。 リレーションシップ クラスを使用することで、いずれかのテーブル内のデータが編集されたときに何が起こるかを制御し、有効な編集だけが行われるようにすることができます。 このようなリレーションシップ クラスの動作により、データの整合性が確保され、データ管理の一貫性と効率が向上します。
たとえば、関連元テーブルでキャンプ場が削除されると、関連先テーブル内のそのキャンプ場に割り当てられている対応するキャンプ地も削除されることで、データの正確性と信頼性が維持されます。
リレーションシップ クラスを作成する際に、必要に応じて、リレーションシップ クラスに属性を付けるかどうかを指定できます。 属性付きリレーションシップ クラスには、リレーションシップ自体に関する追加の属性と詳細情報を格納できます。
リレーションシップ クラスの詳細については、「ジオデータベース リレーションシップ クラスのタイプ」をご参照ください。