令和2年度 秋期 データベーススペシャリスト試験 午前II 問6
2025年6月30日
【問題6】
関係データベースの表を設計する過程で、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表に追加するか、B表の主キーをA表に追加することで対応できます。
イ: A表とB表の対応関係が1対多の場合、列bをA表に追加して外部キーとする。
誤り。1対多の場合、「多」の側の表に「1」の側の主キーを外部キーとして追加する必要があります。この場合、正しくは「列aをB表に追加して外部キーとする」です。
ウ: A表とB表の対応関係が多対多の場合、新しい表を作成し、その表に列aか列bのどちらかを外部キーとして設定する。
誤り。多対多の関係を正しく表現するには、新しい中間表を作成し、その中間表にA表とB表の両方の主キーを外部キーとして設定する必要があります。
エ: A表とB表の対応関係が多対多の場合、列aをB表に、列bをA表にそれぞれ追加して外部キーとする。
誤り。多対多の関係を直接表同士で表現するのは不可能です。新しい中間表を作成して対応する必要があります。
【答え】
ア: A表とB表の対応関係が1対1の場合、列aをB表に追加して外部キーとしてもよいし、列bをA表に追加して外部キーとしてもよい。
出典:令和2年度 秋期 データベーススペシャリスト試験 午前II 問6