データベーススペシャリスト試験 2014年 午前203


関係データベースの表を設計する過程で, A 表と B 表が抽出された。主キーはそれぞれ列 a と列 b である。この二つの表の対応関係を実装する表の設計に関する記述のうち、適切なものはどれか。
問題画像
A表とB表の対応関係が1対1の場合, 列 a を B 表に追加して外部キーとしてもよいし, 列b をA表に追加して外部キーとしてもよい。(正解)
A表とB表の対応関係が1対多の場合, 列 b をA表に追加して外部キーとする。
A表とB表の対応関係が多対多の場合, 新しい表を作成し, その表に列 a か列b のどちらかを外部キーとして設定する。
A表とB表の対応関係が多対多の場合, 列 a を B 表に, 列b を A表にそれぞれ追加して外部キーとする。

解説

関係データベースの表設計における対応関係の実装【午前2 解説】

要点まとめ

  • 結論:1対1の対応関係はどちらかの表に相手の主キーを外部キーとして追加すればよいです。
  • 根拠:1対1の関係は双方のレコードが一意に対応するため、どちらに外部キーを置いても整合性が保てます。
  • 差がつくポイント:多対多の場合は中間表を作成し、双方の主キーを外部キーとして設定する点を理解しているかが重要です。

正解の理由

選択肢アは、A表とB表の対応関係が1対1の場合、列aをB表に外部キーとして追加してもよいし、列bをA表に外部キーとして追加してもよいと述べています。これは1対1の関係の基本的な実装方法であり、どちらの表に外部キーを置いても関係性を正しく表現できます。したがって、選択肢アが正解です。

よくある誤解

多対多の関係を単純に片方の表に外部キーを追加して解決できると誤解しがちです。多対多は中間表を設ける必要があります。

解法ステップ

  1. 対応関係の種類(1対1、1対多、多対多)を確認する。
  2. 1対1の場合はどちらかの表に相手の主キーを外部キーとして追加可能と理解する。
  3. 1対多の場合は「多」の側の表に「1」の側の主キーを外部キーとして追加する。
  4. 多対多の場合は中間表を作成し、双方の主キーを外部キーとして設定する。
  5. 選択肢の記述と照らし合わせて正しい実装方法を選ぶ。

選択肢別の誤答解説

  • ア: 正解。1対1の関係はどちらの表に外部キーを置いてもよい。
  • イ: 誤り。1対多の場合は「多」の側の表に「1」の側の主キーを外部キーとして追加するため、列bをA表に追加するのは逆。
  • ウ: 誤り。多対多の場合は中間表を作成し、双方の主キーを外部キーとして設定するが、「どちらか一方だけ」という記述は不十分。
  • エ: 誤り。多対多の関係で双方の表に相手の主キーを外部キーとして追加するだけでは不十分で、中間表が必要。

補足コラム

関係データベース設計における対応関係は、データの整合性と効率的な検索に直結します。1対1は外部キーの配置が柔軟ですが、1対多は「多」の側に外部キーを置くことで冗長性を避け、多対多は中間表を設けることで複雑な関係を正確に管理します。これらの基本を押さえることが設計の質を高めます。

FAQ

Q: 1対1の関係で外部キーをどちらに置くべきか決まりはありますか?
A: 特に決まりはなく、設計の都合やアクセス頻度に応じて選択します。
Q: 多対多の関係を外部キーだけで表現できませんか?
A: できません。中間表を作成し、双方の主キーを外部キーとして設定する必要があります。
Q: 1対多の関係で「1」の側に外部キーを置くとどうなりますか?
A: 正しい関係を表現できず、データの整合性が保てなくなります。

関連キーワード: 関係データベース, 主キー, 外部キー, 1対1関係, 1対多関係, 多対多関係, 中間表, データベース設計
← 前の問題へ次の問題へ →

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