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

- “学生”表の学生番号,“成績”表の学生番号
- “学生”表の学生名,“科目”表の科目名
- “成績”表の学生番号と科目コード
- “成績”表の成績
[出典:ITパスポート試験 令和8年度 問57]
正解
正解は「ウ」です。
解説
正解は「“成績”表の学生番号と科目コード」です。関係データベースにおいて「外部キー」とは、別の表(主テーブル)の主キーを参照するための項目です。これを使うことで、表同士の関連付けを行います。この問題では、“成績”表が「どの学生が(学生番号)」「どの科目を(科目コード)」受けたのかという情報を管理しています。
成績を入力する際、もし存在しない学生や科目のデータが入ってしまうと矛盾が起きます。そこで、“成績”表の「学生番号」を“学生”表の主キーとして参照させ、「科目コード」を“科目”表の主キーとして参照させることで、データの整合性を保ちます。
例えるなら、名簿(学生表)とカリキュラム(科目表)を照らし合わせながら、成績表という別のメモ帳に記録をつける際、名簿に名前がある人か確認する作業のようなものです。この仕組みにより、不正なデータの入力を防ぐことができるため、ウが適切な回答となります。
ア(“学生”表の学生番号等):
これらは主キーであり、外部キーそのものではありません。参照される側のキーを指しています。
イ(“学生”表の学生名等):
名前は一意に特定できない場合があり、主キーや外部キーとしての役割には適していません。
エ(“成績”表の成績):
成績そのものは単なる値であり、他の表とリンクするためのキーとしての役割はありません。
難易度
データベースの設計における「主キー」と「外部キー」の基本概念を理解しているかが問われます。用語の意味さえ正しく把握していれば、各表の役割(学生、科目、成績)から論理的に正解を導き出せるため、初学者にとっても挑戦しやすい問題と言えます。
用語補足
関係データベース:
表形式のデータで管理するデータベースのことです。Excelのシートのような表を組み合わせて情報を整理します。
主キー:
表の中で、どのデータを指しているかを一意に識別するための項目です。背番号が選手の識別子になるようなものです。
外部キー:
他の表の主キーを指す項目です。表同士をつなぐ「橋渡し」のような役割を果たします。
データの整合性:
データの内容が矛盾なく、正しく保たれている状態のことです。出席簿にいない生徒の成績が入力されないようにする管理などが該当します。
対策
「外部キー=他の表とリンクするための項目」と覚えましょう。問題文の表を見たとき、どの項目が他の表の主キーと一致しているかを探すのがポイントです。成績表が学生表と科目表の両方を参照して構成されている点に注目して解くことが大切です。

