データベーススペシャリスト試験 2012年 午前202


関係データベースの表を設計する過程で, 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の関係は双方のレコードが一意に対応するため、どちらに外部キーを置いても整合性が保てます。
  • 差がつくポイント: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: データの整合性が保てず、正しいリレーションシップを表現できません。

関連キーワード: 関係データベース, 主キー, 外部キー, リレーションシップ, 正規化, データベース設計
← 前の問題へ次の問題へ →

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