DBデータベーススペシャリスト試験 午前Ⅱ
令和2年度10月 データベーススペシャリスト 午前Ⅱ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アA表とB表の対応関係が1対1の場合,列aをB表に追加して外部キーとしてもよいし,列bをA表に追加して外部キーとしてもよい。
- イA表とB表の対応関係が1対多の場合,列bをA表に追加して外部キーとする。
- ウA表とB表の対応関係が多対多の場合,新しい表を作成し,その表に列aか列bのどちらかを外部キーとして設定する。
- エA表とB表の対応関係が多対多の場合,列aをB表に,列bをA表にそれぞれ追加して外部キーとする。
解き方のヒントを見る
表間の対応関係を見極める視点
表どうしの結び付き方を考えるときは、各表が表す対象と、行同士を関連付けるための情報に注目し、関係の単位や対応範囲を整理してから、問題文の条件に照らして判断します。
この問題で問われていること
一つの観点として、表の行を別の表のどの行と結び付ける設計なのかを確認し、対応が成立する単位と、情報が置かれる場所を問題文に沿って丁寧に読み取ってください。
視点
表間の関係を整理するときは、まず各表が管理する対象を区別し、そのうえで行同士の対応を示す情報がどこに置かれているかを確認します。名称だけで判断せず、対応の単位に注目します。
確認ポイント
- 各表が表す対象は何か
- 行同士の対応を表す情報はどこにあるか
- 一つの行に対応する範囲を読み違えていないか
正解と解説を見る
正解
ア
解説
1対1の関係では、どちらの表に相手表の主キーを外部キーとして追加しても対応関係を表せます。したがってアが適切です。1対多では多側に1側の主キーを持たせ、多対多では両方の主キーを持つ中間表を作成します。
理由
A表とB表が1対1で対応する場合、A表の主キーaをB表に外部キーとして追加する方法と、B表の主キーbをA表に外部キーとして追加する方法のどちらも利用できます。したがって、アの記述が適切です。
比較
1対多では多側の表に1側の主キーを外部キーとして持たせます。多対多では、一方の主キーだけでは対応を表しきれないため、A表の主キーとB表の主キーをともに外部キーとする中間表を作成します。
選択肢ア(正解)
これは正解だよ。1対1の対応では、A表の主キーである列aをB表に追加して参照させる方法と、B表の主キーである列bをA表に追加して参照させる方法のどちらも可能です。各行が相手表の高々1行と対応するため、記述は正しいです。
選択肢イ
これは不正解だよ。1対多の関係では、多数側の表に一側の主キーを外部キーとして置きます。問題文の対応関係では、列bをA表に追加する配置は多側の対応を十分に表せず、外部キーを置く表が逆になっています。
選択肢ウ
これは不正解だよ。多対多の関係では新しい表を作る点は適切ですが、その表にはA表の主キーとB表の主キーの両方を外部キーとして設定します。どちらか一方だけでは、両表の組合せを記録できません。
選択肢エ
これは不正解だよ。多対多の関係を表すために、元のA表とB表へ互いの主キーを追加する方法では、複数の対応を正規化して管理できません。両方のキーを保持する新しい中間表を作成する必要があります。
学習のポイント
対応関係の種類に応じた外部キー配置と中間表の役割を理解する。
出典:独立行政法人 情報処理推進機構(IPA)令和2年度10月 データベーススペシャリスト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針