ITパスポート試験 / 令和8年度 ITパスポート試験 公開問題 / 問57
certification-simodake-work

令和8年度 ITパスポート試験 公開問題 問57 解説 外部キーの定義

設問図

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

  1. “学生”表の学生番号,“成績”表の学生番号
  2. “学生”表の学生名,“科目”表の科目名
  3. “成績”表の学生番号と科目コード ✓ 正答
  4. “成績”表の成績

解説

この問題を解くためのポイントは、外部キーの定義である「他の表の主キーを指し示す列」を見つけることです。成績表には学生情報と科目情報が組み合わさっているため、成績表の中にある学生番号が学生表の主キーを、科目コードが科目表の主キーをそれぞれ参照する構造になっている点に注目しましょう。

外部キーとは何か

データベース設計において、外部キー(Foreign Key)は、テーブル間の関連付けを行うために非常に重要な仕組みです。あるテーブルの列が、別のテーブルの主キーとリンクすることで、データの整合性を維持する役割を果たします。

今回の例で言えば、成績表には「どの学生が」「どの科目を」受けたのかという情報が必要です。このとき、学生表に存在しない学生番号が成績表に登録されてしまうと、成績の管理ができなくなります。これを防ぐために、成績表の学生番号を学生表の主キーである学生番号と結びつけ、「学生表に存在する番号しか成績表には登録できない」というルールを課すのが外部キーの役割です。

なぜこれが重要なのか

システム開発の現場では、この外部キー設定(参照整合性制約)が極めて重要です。例えば、誤ってまだ存在しない学生の成績を登録しようとしたり、科目コードを打ち間違えたりした際に、データベース側でエラーを返し、不正なデータが入ることを未然に防ぐことができます。

もし外部キーを設定していないと、架空の学生の成績データが紛れ込んだり、削除されたはずの学生の成績だけがデータベースに残ってしまったりと、情報の正確性が損なわれる原因になります。ITパスポート試験では、このような「データの整合性を保つための仕組み」を理解しているかが問われます。

データのつながりを確認する

本問の構造を整理すると以下のようになります。

  1. 学生表:学生番号が主キー
  2. 科目表:科目コードが主キー
  3. 成績表:学生番号と科目コードの組み合わせで誰がどの科目の成績を取ったかを管理

成績表にある学生番号は学生表の学生番号を参照し、成績表にある科目コードは科目表の科目コードを参照しています。したがって、成績表における学生番号と科目コードこそが外部キーとして機能していると判断できます。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう