HOME»ITパスポート令和8年度» 問57
ITパスポート令和8年度 問57
問57
関係データベースで管理している"学生"表,"科目"表,"成績"表がある。1人の学生は複数の科目を履修するものとし,"学生"表に登録されていない学生や,"科目"表に登録されていない科目は"成績"表に登録できないものとするとき,外部キーとして設定するのが適切なものはどれか。ここで,表中の下線は主キーを表す。

- "学生"表の学生番号,"成績"表の学生番号
- "学生"表の学生名,"科目"表の科目名
- "成績"表の学生番号と科目コード
- "成績"表の成績
分類 :
テクノロジ系 » データベース » データベース設計
正解 :
ウ
解説 :
外部キーは、関係データベースにおいて、2つの表を関連付けるために設定される列です。ある表の列が、別の表の主キーを参照している場合、その列は外部キーとして扱われます。
外部キーを設定することの効果は次の3つです。
したがって「ウ」が適切となります。
【別解】
主キーと外部キーを見分ける際には、同じ値が何回出てくるかという多重度の考え方が重要です。ある表の中で1件のデータを一意に識別できる列が主キーであり、同じ値が複数存在しえる列は外部キーになるのが原則です。
設問のデータベースでは、"学生"表と"成績"表が"学生番号"列によって関連付けられています。"成績"表では、1人の学生が複数の科目を履修するため、同じ"学生番号"が複数回出てくる可能性があります。したがって、"成績"表の"学生番号"列は外部キーです。
同じように、"科目"表と"成績"表は"科目コード"列によって関連付けられています。"成績"表では、同じ科目を複数の学生が履修することがあるため、同じ"科目コード"が複数回出てくる可能性があります。したがって、"成績"表の"科目コード"列も外部キーです。
以上より、正解は「ウ」となります。
外部キーを設定することの効果は次の3つです。
- 参照先の表に存在しないデータの登録を防げる
- 誤ったデータに更新されることを防ぐ
- 関連するデータの削除や更新を制御できる
- "成績"表の"学生番号"は、"学生"表の"学生番号"を参照する
- "成績"表の"科目コード"は、"科目"表の"科目コード"を参照する
したがって「ウ」が適切となります。
【別解】
主キーと外部キーを見分ける際には、同じ値が何回出てくるかという多重度の考え方が重要です。ある表の中で1件のデータを一意に識別できる列が主キーであり、同じ値が複数存在しえる列は外部キーになるのが原則です。
設問のデータベースでは、"学生"表と"成績"表が"学生番号"列によって関連付けられています。"成績"表では、1人の学生が複数の科目を履修するため、同じ"学生番号"が複数回出てくる可能性があります。したがって、"成績"表の"学生番号"列は外部キーです。
同じように、"科目"表と"成績"表は"科目コード"列によって関連付けられています。"成績"表では、同じ科目を複数の学生が履修することがあるため、同じ"科目コード"が複数回出てくる可能性があります。したがって、"成績"表の"科目コード"列も外部キーです。
以上より、正解は「ウ」となります。

