ホーム > データベーススペシャリスト試験 > 2012年
データベーススペシャリスト試験 2012年 午前2 問02
関係データベースの表を設計する過程で, 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対1の場合はどちらかの表に外部キーを追加可能と理解する。
- 1対多の場合は「多」の側の表に「1」の側の主キーを外部キーとして追加する。
- 多対多の場合は新しい中間表を作成し、両方の主キーを外部キーとして設定する。
- 選択肢を関係の種類に照らして正誤を判断する。
選択肢別の誤答解説
- ア: 正解。1対1の関係で外部キーをどちらの表に置いてもよい。
- イ: 誤り。1対多の場合は「多」の側に「1」の主キーを外部キーとして追加するため、列bをA表に追加するのは逆。
- ウ: 誤り。多対多の場合は新しい表を作成するが、外部キーは両方の主キーを設定する必要がある。片方だけでは不十分。
- エ: 誤り。多対多の関係で相互に外部キーを追加するだけでは不十分で、中間表を作成し両方の外部キーを持たせる必要がある。
補足コラム
関係データベース設計では、リレーションシップの種類に応じて外部キーの配置や新規テーブルの作成が決まります。1対1はどちらかに外部キーを置く、1対多は「多」側に外部キーを置く、多対多は中間テーブルを作成し両方の主キーを外部キーとして持たせるのが基本です。これによりデータの整合性と効率的な検索が可能になります。
FAQ
Q: 1対1の関係で外部キーをどちらに置くべきか決まりはありますか?
A: 特に決まりはなく、設計上の都合やアクセス頻度に応じて選択します。
A: 特に決まりはなく、設計上の都合やアクセス頻度に応じて選択します。
Q: 多対多の関係で外部キーを直接追加できない理由は?
A: 多対多は複数の組み合わせが存在するため、単一の外部キーでは表現できず、中間テーブルが必要です。
A: 多対多は複数の組み合わせが存在するため、単一の外部キーでは表現できず、中間テーブルが必要です。
Q: 1対多の関係で「1」側に外部キーを置くとどうなる?
A: データの整合性が保てず、正しいリレーションシップを表現できません。
A: データの整合性が保てず、正しいリレーションシップを表現できません。
関連キーワード: 関係データベース, 主キー, 外部キー, リレーションシップ, 正規化, データベース設計