三つの表からなるデータベースのスキーマがある。
次の項目中で外部キーはどれか。
ここで,スキーマの中の下線は主キーを表す。
学生(学̲生̲番̲号̲,学生名,住所,生年月日)
成績(学̲生̲番̲号̲,科̲目̲番̲号̲,点数)
科目(科̲目̲番̲号̲,科目名,講師番号)
正答4
解説
正解は4です。
関係データベースの外部キーを見分ける問題です。
外部キーは、ある表の属性のうち、他の表の主キーを参照しているものです。
【スキーマの読み取り】
“学生”表の主キーは学生番号です。
“科目”表の主キーは科目番号です。
“成績”表の主キーは、学生番号と科目番号の組合せです。
“成績”表の学生番号は“学生”表の学生番号を、科目番号は“科目”表の科目番号を参照しています。
【選択肢別解説】
1:× “学生”表の学生番号と“科目”表の科目番号は、それぞれ自分の表の主キーです。
他の表から参照される側であり、外部キーではありません。
2:× “学生”表の学生番号は主キーであり、外部キーではありません。
外部キーなのは“成績”表の学生番号だけです。
3:× “科目”表の科目番号は主キーであり、外部キーではありません。
外部キーなのは“成績”表の科目番号だけです。
4:○ “成績”表の学生番号は“学生”表の主キーを、科目番号は“科目”表の主キーを参照しています。
どちらも外部キーです。
【ポイント】
外部キーは主キーの一部であってもかまいません。
“成績”表のように、二つの表を結ぶ表の主キーは、それぞれの表を参照する外部キーの組合せになることがよくあります。