令和8年度 ITパスポート 問57(テクノロジ)
出典:令和8年度 ITパスポート試験 公開問題 問57(独立行政法人情報処理推進機構(IPA))
関係データベースで管理している“学生”表,“科目”表,“成績”表がある。1人の学生は複数の科目を履修するものとし,“学生”表に登録されていない学生や,“科目”表に登録されていない科目は“成績”表に登録できないものとするとき,外部キーとして設定するのが適切なものはどれか。ここで,表中の下線は主キーを表す。
- ア“学生”表の学生番号,“成績”表の学生番号
- イ“学生”表の学生名,“科目”表の科目名
- ウ“成績”表の学生番号と科目コード
- エ“成績”表の成績
正解と解説を見る
正解:ウ
【主キーと外部キー】
・主キー:表の中で1行(1件のデータ)を一意に特定するための項目です。問題の表では下線の項目です。
・外部キー:ほかの表の行を一意に特定できる項目(主キーなど)を参照する項目です。参照先の表にない値は登録できないようにする(参照制約)ことで、データの矛盾を防ぎます。
【表の構成】
・学生表:学生番号(主キー)、学生名
・科目表:科目コード(主キー)、科目名
・成績表:学生番号と科目コードの組(主キー)、成績
【外部キーを設定する項目】
「学生表に登録されていない学生」を成績表に登録できないようにするには、成績表の学生番号が学生表の学生番号を参照するようにします。同じく「科目表に登録されていない科目」を登録できないようにするには、成績表の科目コードが科目表の科目コードを参照するようにします。したがって、成績表の学生番号と科目コードを、それぞれ外部キーに設定します。
【選択肢の検討】
ア:学生表の学生番号は主キーで、参照される側です。また、成績表の学生番号だけでは、科目についての制約を設定できません。
イ:学生名と科目名は、学生表・科目表の中の項目で、ほかの表を参照する項目ではありません。この問題で参照先になるのは学生表の学生番号と科目表の科目コードで、外部キーはそれらを参照する成績表の側に設定します。
ウ:成績表の学生番号と科目コードを外部キーにするので、適切です。
エ:成績は、ほかの表を参照する項目ではありません。
よって、正解は選択肢ウです。