IPA公式正解:ア A表とB表の対応関係が1対1の場合,列aをB表に追加して外部キーとしてもよいし,列bをA表に追加して外部キーとしてもよい。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【ア】です。1対1の対応関係を実装する場合、どちらか一方の表にもう一方の主キーを外部キーとして追加することで関連を正しく表現できます(業務上の必須性やカーディナリティを考慮して選択します)。
【詳細解説】■ 本問の核心・解法のポイント
リレーショナルデータベースにおける関連(1対1、1対多、多対多)の外部キー実装方法に関する基本知識を問う問題です。
- 1対1:どちらか一方の表に相手の主キーを外部キーとして持たせる。
- 1対多:必ず「多」側の表に「1」側の主キーを外部キーとして持たせる。
- 多対多:直接キーを追加することはできず、両方の主キーを外部キーとして持つ連関表(交差表)を新設する。
・各選択肢の徹底解説:
・【選択肢ア★】:適切です。1対1の関係では、A表に列bを追加して外部キー(一意性制約付き)としても、B表に列aを追加して外部キーとしても関連を実装できます。
・イ:不適切です。1対多の場合、「多」側の表に「1」側の主キーを追加する必要があります。Aが1でBが多ならB表に列aを追加し、Aが多でBが1ならA表に列bを追加します。どちらが多かによって配置先が決まるため、無条件に列bをA表に追加する記述は誤りです。
・ウ:不適切です。多対多の関係を解消するために新しい表(連関表)を作成する場合、列aと列bの「両方」を外部キーとして設定し、複合主キーとする必要があります。
・エ:不適切です。多対多の関係では、お互いの表に外部キーを追加するだけでは1行に複数の関連キーを格納できず(第1正規形違反)、関係を表現できません。
よって正解はアです。