テーブル結合の要点

データの結合は、一般に、両方のテーブルに共通する属性またはフィールドを通じて、1 つのテーブルのフィールドをもう 1 つのテーブルのフィールドに付加するために使用されます。属性、定義済みのジオデータベース リレーションシップ クラス、または位置(空間結合とも呼びます)に基づいて、結合を定義することができます。リレーションシップ クラスによる結合は、ジオデータベースにおいてリレーションシップ クラスがすでに定義されているジオデータベース データを結合する場合にのみ表示されます。

複数のテーブルまたはレイヤを 1 つのテーブルまたはレイヤに結合することができ、リレーションシップ クラスの結合を属性結合と組み合わせることができます。結合テーブルを削除すると、その後に結合されたテーブル内のデータもすべて削除されますが、その前に結合されたテーブル内のデータは残ります。付加された列に基づくシンボル表示やラベリングは、結合を削除すると元の状態に戻ります。

ほとんどの場合、付加された列の名前は「<テーブル名>.<フィールド名>」になります。この命名規則により、ターゲット テーブルと結合テーブルに同じ名前のフィールドがある場合に、フィールド名の重複を避けることができます。このような完全なフィールド名を表示したくない場合は、テーブル ウィンドウの [テーブル オプション] ボタン テーブル オプション をクリックし、[フィールドのエイリアスを表示] をクリックして、このオプションのオンとオフを切り替えます。このオプションがオンの場合は、[オプション] メニューの横にチェックマーク フィールドのエイリアスを表示 が表示され、フィールドの先頭にテーブル名は表示されません。

フィールド名の先頭にテーブル名が表示されている結合テーブルを次に示します。

フィールド名の先頭にテーブル名が表示されている結合テーブル

フィールド エイリアスのみが表示されている結合テーブルを次に示します。

フィールド名のみを表示している結合テーブル

テーブル結合とリレートの詳細

データを結合する前のサマリ処理

データが構成されている方法によっては、データをレイヤに結合する前に、テーブル内のデータのサマリ処理が必要なことがあります。ArcMap のチェックボックスでサマリ処理を実行すると、テーブルから得られたサマリ統計から新しいテーブルが作成されます。総数、平均値、合計、最小値、最大値を含め、さまざまなサマリ統計を作成することができます。

たとえば、市区町村ではなく、都道府県別の天気図を作成したいが、天気情報が市区町村ごとに構成されているとします。この場合は、都道府県内のすべての市区町村の平均降雨量を求めるなど、市区町村データを都道府県別に集計した後、新規作成された出力テーブルを都道府県レイヤに結合して、都道府県別の降雨量を示す天気図を作成することができます。

ジオグラフィック データに結合できる表形式にデータをまとめた例

テーブルの編集と結合

注意注意:

結合したデータを編集する際、結合された列を直接編集することはできません。結合されたデータを編集するには、まず、結合されたテーブルまたはレイヤを ArcMap に追加する必要があります。そうすると、このデータを単体で編集できるようになります。これらの変更は結合された列に反映されます。

結合の整合チェック

結合を作成する際は、事前に [結合] ダイアログ ボックス上の [結合の整合チェック] ボタンを使用して解析することができます。[結合の整合チェック] を使用すると、結合の作成中に発生するおそれのある潜在的な問題を突き止めることができます。結合の整合チェックでは、2 つの対象データセットを解析し、データに問題がないかどうかを確認します。以下は、データ内で有無がチェックされる項目の一覧です。

上記の 4 つの問題はそれぞれ、属性テーブル内に NULL 値が表示されたり選択範囲およびレコード数が誤って認識されたりする原因になります。[結合の整合チェック] で、カバレッジ データの解析時に無効文字チェックの対象から除外される文字シンボルは、数字記号(#)、$ 記号($)、およびハイフン(-)です。ArcSDE ソフトウェア接続データの無効文字チェック時には、ピリオド(.)がチェック対象外になります。ただし、フィールド名がチェック対象外の文字のいずれかで始まる場合でも、警告が表示されます。

[結合の整合チェック] で実行される文字チェックは、次のとおりです。

無効な文字(`~@#$%^&*()-+=|\\,<>?/{}.!'[]:;_0123456789)で開始しているかどうか`~@#$%^&*()-+=|\\,<>?/{}.!'[]:;_0123456789

無効な文字(`~@#$%^&*()-+=|\\,<>?/{}.!'[]:;)が含まれているかどうか `~@#$%^&*()-+=|\\,<>?/{}.!'[]:;

[結合の整合チェック] では、結合の作成時に照合されるレコード数も通知されます。正常に一致したレコードの割合を計算し、一致レコード数が予想と異なる場合は、データにその他のエラーがないかどうかを確認できます。たとえば、テキスト フィールドを使用して結合を作成している場合、一致するはずのレコードにスペルミスがある場合や、大文字と小文字の区別が正確でないために不一致が検出されることがあります。[結合の整合チェック] でソース データセット内のレコード数よりも一致レコード数の方が多くカウントされた場合は、対象データ間に 1:M または M:M リレーションシップが存在することを知らせる警告が表示され、結合を使用して対象のデータセットを相互に関連付ける代わりにリレートまたはリレーションシップ クラスを使用するように指示されます。

[結合の整合チェック] の機能を示した例

データ結合のパフォーマンスのヒント

付加されたフィールドのデータは、フィーチャのシンボル表示とラベリング、クエリの実行、その他さまざまな操作に使用することができます。結合を維持するために余分な作業が必要になるため、結合されたデータへのアクセスにはターゲット テーブルのデータへのアクセスよりも時間がかかります。

結合されたデータを操作する際には、次のヒントを使用してパフォーマンスを向上させることができます。

テーブルの結合に失敗する理由

結合を実行した後で、結合テーブルのフィールドの値が空または Null に見える場合があります。Null 値は、いくつかの要因の結果である場合があります。

関連トピック

5/10/2014