DBデータベーススペシャリスト試験 午前Ⅱ

平成28年度春期 データベーススペシャリスト 午前Ⅱ 問5

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    A表とB表の対応関係が1対1の場合,列aをB表に追加して外部キーとしてもよいし,列bをA表に追加して外部キーとしてもよい。
  2. イ
    A表とB表の対応関係が1対多の場合,列bをA表に追加して外部キーとする。
  3. ウ
    A表とB表の対応関係が多対多の場合,新しい表を作成し,その表に列aか列bのどちらかを外部キーとして設定する。
  4. エ
    A表とB表の対応関係が多対多の場合,列aをB表に,列bをA表にそれぞれ追加して外部キーとする。
解き方のヒントを見る

表間の対応設計を考える視点

表間の対応関係を考えるときは、個々の用語の印象だけで判断せず、どのデータ同士を結び付け、対応の単位や範囲をどのように捉えるかを整理してから、設計上の意味を比較します。

この問題で問われていること

確認の中心は、二つの表の間で対応を考える単位をそろえたとき、各データが相手側とどのような関係を持つ想定なのか、問題文の条件から一貫して読み取れるかです。

視点

表間の対応を整理する際は、まず一つのデータを基準にし、相手側との結び付きがどの単位で語られているかを確認して、同じ前提のまま候補を比べます。

確認ポイント

  • 対応を数える基準が左右でそろっているか確認する
  • 一件の対応をどのデータ単位として読んでいるか確認する
  • 示された条件を対応の範囲に限って一貫して当てはめる
正解と解説を見る

正解

ア

解説

正しいのはアです。一対一の対応では、どちらの表に相手の主キーを外部キーとして追加しても、表同士の対応を表現できます。一方、一対多では多側への参照が基本となり、多対多では両方のキーを持つ中間表が必要です。

理由

A表の主キーは列a、B表の主キーは列bです。一対一の関係なら、B表に列aを追加してA表を参照しても、A表に列bを追加してB表を参照しても、各行が相手側の一つの行と対応する関係を表せます。したがってアが適切です。

比較

一対多では、多側の表が一側の主キーを外部キーとして持つ形にします。多対多では、一方の表へ単純に相手のキーを追加すると複数対応を十分に表現できないため、列aと列bを持つ新しい中間表を設け、両方を外部キーとして扱います。

選択肢ア(正解)

これは正解だよ。一対一の対応では、B表に列aを追加してA表の主キーを参照しても、A表に列bを追加してB表の主キーを参照しても、対応を表現できます。どちらを採用するかは設計上の判断になります。

選択肢イ

これは不正解だよ。一対多では、複数の行が存在する側に一側の主キーを外部キーとして持たせるのが基本です。列bをA表に追加するだけでは、B表の複数行との対応を適切に表現できないため、この記述は誤りです。

選択肢ウ

これは不正解だよ。多対多の関係では、新しい表を作る方向性は適切ですが、列aか列bのどちらか一方だけでは両側との対応を記録できません。中間表には、通常、両方の主キーに対応する外部キーが必要です。

選択肢エ

これは不正解だよ。多対多の関係でA表とB表の双方へ相手のキーを追加すると、各表の一つの行に対応する複数行を直接管理しにくくなります。多対多の対応を表すには、両方のキーを持つ中間表を設けます。

学習のポイント

カーディナリティに応じた外部キー配置と中間表の役割を理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 データベーススペシャリスト試験 午前Ⅱ 問5(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針