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

この設問が問うていること
関係データベースにおける外部キー(Foreign Key)の概念と、その設定方法について問う設問です。
総合解説
この問題は、関係データベースにおける「外部キー(Foreign Key)」の役割と設定について理解しているかを問うものです。 外部キーとは、あるテーブル(子テーブル)の列が、別のテーブル(親テーブル)の主キー(Primary Key)の値を参照する関係を定義するものです。これにより、親テーブルに存在しないデータを子テーブルに登録できないようにする「参照整合性(Referential Integrity)」を保つことができます。 設問では、「“学生”表に登録されていない学生や、“科目”表に登録されていない科目は“成績”表に登録できない」という条件があります。これはまさに参照整合性を確保するための条件です。 ・ 正解のウ(c):「“成績”表の学生番号」は“学生”表の学生番号(主キー)を参照する外部キーとなり、「“成績”表の科目コード」は“科目”表の科目コード(主キー)を参照する外部キーとなります。この二つを設定することで、問題文の条件を満たすことができます。 ・ 不正解の選択肢 ・ ア(a):「“学生”表の学生番号」は主キーであり、外部キーではありません。 ・ イ(b):「学生名」や「科目名」は主キーではないため、外部キーとして参照されることはありません。 ・ エ(d):「成績」は単なるデータ項目であり、主キーや外部キーの役割は持ちません。 データベースの設計において、外部キーはデータの正確性と一貫性を保つために非常に重要な概念です。
こんな聞き方もできます(タップで質問)