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

出典:令和8年度 ITパスポート試験 問57
- ア“学生”表の学生番号,“成績”表の学生番号
- イ“学生”表の学生名,“科目”表の科目名
- ウ“成績”表の学生番号と科目コード
- エ“成績”表の成績
正解:ウ
解説
外部キーは,他の表の主キーを参照する列で,参照先に存在しない値を登録できないようにする(参照整合性を保つ)ために設定します。“成績”表の学生番号は“学生”表の学生番号を,科目コードは“科目”表の科目コードを参照するように設定すれば,登録されていない学生や科目の成績は登録できなくなります。外部キーは参照する側(成績表)に設定します。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- ア誤り。“学生”表の学生番号は参照される側の主キーで,外部キーではありません。また,科目コードに対する外部キーが含まれていません。
- イ誤り。学生名や科目名は主キーではなく,参照関係を作る列として適切ではありません。
- ウ正しい。成績表の学生番号と科目コードを,それぞれ学生表・科目表の主キーを参照する外部キーとして設定します。
- エ誤り。成績は優・良などの評価を記録する列で,他の表の主キーを参照するものではありません。