57の正解: テクノロジ系データベース

関係データベースで管理している“学生”表,“科目”表,“成績”表がある。1人の学生は複数の科目を履修するものとし、“学生”表に登録されていない学生や、“科目”表に登録されていない科目は“成績”表に登録できないものとするとき、外部キーとして設定するのが適切なものはどれか。ここで、表中の下線は主キーを表す。

問57の図

この設問が問うていること

関係データベースにおける外部キー(Foreign Key)の概念と、その設定方法について問う設問です。

“学生”表の学生番号,“成績”表の学生番号
選択肢の解説: 「“学生”表の学生番号」は主キー(Primary Key)であり、外部キーではありません。「“成績”表の学生番号」は外部キーですが、この選択肢は外部キーと主キーを混同しています。
“学生”表の学生名,“科目”表の科目名
選択肢の解説: 「学生名」や「科目名」は通常、主キーでも外部キーでもありません。外部キーは他のテーブルの主キーを参照するものです。
“成績”表の学生番号と科目コード正解
選択肢の解説: 「“成績”表の学生番号」は“学生”表の学生番号を、「“成績”表の科目コード」は“科目”表の科目コードをそれぞれ参照する外部キーです。これにより、参照整合性が保たれます。
“成績”表の成績
選択肢の解説: 「“成績”表の成績」は、学生が科目ごとに取得した点数などのデータであり、主キーでも外部キーでもありません。

総合解説

この問題は、関係データベースにおける「外部キー(Foreign Key)」の役割と設定について理解しているかを問うものです。 外部キーとは、あるテーブル(子テーブル)の列が、別のテーブル(親テーブル)の主キー(Primary Key)の値を参照する関係を定義するものです。これにより、親テーブルに存在しないデータを子テーブルに登録できないようにする「参照整合性(Referential Integrity)」を保つことができます。 設問では、「“学生”表に登録されていない学生や、“科目”表に登録されていない科目は“成績”表に登録できない」という条件があります。これはまさに参照整合性を確保するための条件です。 ・ 正解のウ(c):「“成績”表の学生番号」は“学生”表の学生番号(主キー)を参照する外部キーとなり、「“成績”表の科目コード」は“科目”表の科目コード(主キー)を参照する外部キーとなります。この二つを設定することで、問題文の条件を満たすことができます。 ・ 不正解の選択肢ア(a):「“学生”表の学生番号」は主キーであり、外部キーではありません。 ・ イ(b):「学生名」や「科目名」は主キーではないため、外部キーとして参照されることはありません。 ・ エ(d):「成績」は単なるデータ項目であり、主キーや外部キーの役割は持ちません。 データベースの設計において、外部キーはデータの正確性と一貫性を保つために非常に重要な概念です。

執筆・監修: 運営者 KH更新日: 2026-06-30出典: IPA公式PDF(過去問題・解答例)
AIAIにその場で質問(デモ応答)

こんな聞き方もできます(タップで質問)

令和8年度を本番同様のCBT形式で解いてみよう

無料登録なしでも一部体験可能。登録すれば採点・弱点分析・AI教科書まで使えます。

令和8年度の過去問CBTを解く