データベーススペシャリスト試験 2010年 午前213


関係“履修”関係“担当”を自然結合した結果はどれか。
問題画像選択肢画像
(正解)

解説

関係“履修”関係“担当”を自然結合した結果はどれか。【午前2 解説】

要点まとめ

  • 結論:自然結合は両表の共通属性「科目」を基に結合し、重複列を1つにまとめた表を作成します。
  • 根拠:「履修」と「担当」表の「科目」列が共通であり、これをキーに結合するため、科目ごとに学生と教官が対応します。
  • 差がつくポイント:自然結合は共通列の値が一致する行のみ結合し、重複列は1列にまとめる点を正確に理解することが重要です。

正解の理由

選択肢は、「履修」と「担当」表の共通属性「科目」をキーに自然結合した結果を正しく表しています。
具体的には、学生と科目の組み合わせに対して、その科目を担当する教官が対応し、科目列は1つにまとめられています。
他の選択肢は、共通列の重複や不適切な組み合わせが含まれており、自然結合の定義に合致しません。

よくある誤解

自然結合は単なる結合ではなく、共通列の値が一致する行だけを結合し、重複列を1つにまとめることを忘れがちです。
また、単純な結合(クロス結合や内部結合)と混同し、全ての組み合わせを出力してしまう誤りも多いです。

解法ステップ

  1. 「履修」と「担当」表の共通属性を確認する(ここでは「科目」)。
  2. 共通属性「科目」の値が一致する行を探す。
  3. 一致する行同士を結合し、共通属性の列は1つにまとめる。
  4. 結合結果の表を作成し、学生・科目・教官の3列に整理する。
  5. 結果と選択肢を比較し、自然結合の定義に合致するものを選ぶ。

選択肢別の誤答解説

  • イ:共通列「科目」が重複しており、自然結合の重複列削除ルールに反しています。
  • ウ:科目の組み合わせが入れ替わっており、共通属性の値が一致しない行同士を結合しています。
  • エ:全ての組み合わせを出力しており、自然結合ではなくクロス結合に近い結果です。

補足コラム

自然結合(Natural Join)はリレーショナルデータベースの基本操作の一つで、共通の属性を持つ2つの関係から、共通属性の値が一致する行だけを結合し、重複する列を1つにまとめます。
SQLではNATURAL JOIN句で表現され、データの整合性を保ちながら効率的に結合できます。

FAQ

Q: 自然結合と内部結合の違いは何ですか?
A: 内部結合は結合条件を指定して行を結合しますが、自然結合は共通属性を自動的に条件として使い、重複列を1つにまとめます。
Q: 自然結合で共通列の値が一致しない場合はどうなりますか?
A: 一致しない行は結合結果に含まれません。自然結合は共通列の値が一致する行のみを結合します。

関連キーワード: 自然結合, リレーショナルデータベース, SQL, 内部結合, データベース結合
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ