平成26年度 春期 データベーススペシャリスト試験 午前II 問3
2025年6月30日
【問題3】
関係データベースの表を設計する過程で,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 表にそれぞれ追加して外部キーとする。
【解説】
ア: A表とB表の対応関係が1対1の場合,列aをB表に追加して外部キーとしてもよいし,列bをA表に追加して外部キーとしてもよい。
正しい。1対1の関係では、どちらの表に外部キーを追加しても正しく関係を表現できます。外部キーをA表に追加するかB表に追加するかは、設計方針や要件によります。
イ: A表とB表の対応関係が1対多の場合,列bをA表に追加して外部キーとする。
誤り。1対多の関係では、多側の表に外部キーを追加するため、A表ではなくB表に外部キーを追加するのが正しい設計です。
ウ: A表とB表の対応関係が多対多の場合,新しい表を作成し,その表に列aか列bのどちらかを外部キーとして設定する。
誤り。多対多の関係を表現するには、新しい中間表を作成し、その中間表に両方の列aと列bを外部キーとして設定する必要があります。
エ: A表とB表の対応関係が多対多の場合,列aをB表に,列bをA表にそれぞれ追加して外部キーとする。
誤り。多対多の関係を直接表現することはできません。中間表を使用する必要があります。
【答え】
ア: A表とB表の対応関係が1対1の場合,列aをB表に追加して外部キーとしてもよいし,列bをA表に追加して外部キーとしてもよい。
出典:平成26年度 春期 データベーススペシャリスト試験 午前II 問3