IPA過去問ドリル

令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問6

テクノロジ/データベース

関係データベースの表を設計する過程で,A表とB表が抽出された。主キーはそれぞれ列aと列bである。この二つの表の対応関係を実装する表の設計に関する記述のうち,適切なものはどれか。

出典:令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問6

正解:ア

解説

1対1の関係では,どちらの表に外部キーを置いても実装できるため,列aをB表に追加してもよいし,列bをA表に追加してもよいという対称性があります。1対多の関係では,「多」側の表に「1」側の主キーを外部キーとして追加します。多対多の関係では,どちらか一方の表に外部キーを追加するだけでは表現できず,新たに両方の主キーを外部キーとしてもつ連関表(中間表)を作成する必要があります。

選択肢ごとの解説

  • 正しい。1対1の関係は対称的であり,どちらの表に外部キーを追加しても対応関係を実装できるため,列aをB表に追加してもよいし,列bをA表に追加してもよいといえます。
  • 誤り。1対多の関係では,「多」側の表に「1」側の主キーを外部キーとして追加する必要があります。A表とB表のどちらが「多」側かによって追加先が変わるため,列bを一律にA表に追加するという記述は適切ではありません。
  • 誤り。多対多の関係を実装するには,新しい連関表にA表とB表の両方の主キー(列aと列bの両方)を外部キーとして設定する必要があり,どちらか一方だけでは対応関係を正しく表現できません。
  • 誤り。多対多の関係では新しい連関表を作成し,そこに両方の主キーを外部キーとして設定する必要があり,元のA表・B表に互いの主キーを追加する方法では多対多の関係を正しく表現できません。
データベーススペシャリストの過去問を演習モードで解く