リレーショナルデータベース上に下表のような各学生の成績を管理しているテーブルがある。次のうち、このテーブルのプライマリキーとなる属性として、適切なものはどれか。なお同名の講義はないものとしてよい。
┌────┬──────┬───┐
│学生番号│講義名 │成績 │
├────┼──────┼───┤
│ 1 │人工知能 │ S │
├────┼──────┼───┤
│ 1 │統計学 │ A │
├────┼──────┼───┤
│ 2 │人工知能 │ C │
├────┼──────┼───┤
│ 2 │統計学 │ A │
├────┼──────┼───┤
│ 2 │データベース│ A │
├────┼──────┼───┤
│ 3 │統計学 │ S │
└────┴──────┴───┘
@ 学生番号
A 講義名
B 成績
C 学生番号と講義名の複合
D 学生番号と成績の複合
C
@ 学生番号が一意に決まっても講義名が分からないため、成績が管理できない。
A 講義名が一意に決まっても学生番号が分からないため、成績が管理できない。
B 成績が一意に決まることはない。
C 正しい。プライマリキー (主キー) は、レコードを一意に識別するための項目である。
D 学生番号と成績では、レコードを一意に識別できない。
例えば、学生番号が2で、成績がAのレコードは2つある。
ちなみに、問題に“同名の講義はないものとしてよい”と記載があるので、少なくとも講義名は、プライマリーキーになる属性であることが判る。
V−4 | 目次 | V−6 |