ITパスポート|データベース 問7
関係データベースで管理している“学生”表、“科目”表、“成績”表がある。1人の学生は複数の科目を履修するものとし、“学生”表に登録されていない学生や、“科目”表に登録されていない科目は“成績”表に登録できないものとするとき、外部キーとして設定するのが適切なものはどれか。ここで、表中の下線は主キーを表す。
※当サイトでは、原文で下線が引かれている主キーの項目に「(主キー)」と表記しています。
学生
| 学生番号(主キー) | 学生名 |
|---|---|
| G001 | 鈴木 次郎 |
| G002 | 山田 春子 |
科目
| 科目コード(主キー) | 科目名 |
|---|---|
| K001 | データベース |
| K002 | コンピュータ |
| K003 | ネットワーク |
成績
| 学生番号(主キー) | 科目コード(主キー) | 成績 |
|---|---|---|
| G001 | K001 | 優 |
| G001 | K002 | 可 |
| G002 | K002 | 良 |
| G002 | K003 | 優 |
正解:ウ
解説
外部キーは、ほかの表の主キーを参照する項目です。外部キーを設定すると、参照先に存在しない値は登録できなくなります(参照制約)。
- ア “学生”表の学生番号は主キーで、ほかの表を参照するものではありません。
- イ 学生名や科目名は主キーではないので、外部キーの参照先としても適切ではありません。
- ウ 正解。“成績”表の学生番号が“学生”表を、科目コードが“科目”表を参照すれば、登録されていない学生や科目の成績は登録できなくなります。
- エ 成績はほかの表を参照する項目ではありません。
出典:令和8年度 ITパスポート試験 公開問題 問57(読点「,」を「、」に改変)