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