
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
学生の成績を管理するテーブル(学生番号、講義名、成績)のプライマリキーとなる属性として、学生番号と講義名の複合を選ぶ問題。
表の各行を一意に識別できる属性の組を選ぶ問題。
① 主キー=どの行も1つに決まる属性(の組)。1つの列で重複するなら組み合わせる
② 学生番号(1が2行)、講義名(統計学が3行)、成績(Aが3行)は重複。学生番号+成績も「2・A」が2行ある。学生番号+講義名なら重複なし
③ ④
プライマリキー(主キー)は、テーブルの各行を一意に識別できる属性(の組)である。学生番号だけでは、同じ学生が複数の講義を履修するため重複する。講義名だけでも、複数の学生が同じ講義を履修するため重複する。成績だけでも、同じ成績が複数の行に現れる。学生番号と講義名を組み合わせると、どの行も一意に決まる(同じ学生が同じ講義を2回履修する行がない)。したがって、学生番号と講義名の複合キーが適切で、④が正しい。
主キーは、行を一意に識別する最小の属性の組。1つの属性で一意にならない場合は、複数の属性を組み合わせた複合キーを使う。
キーワード: プライマリキー、主キー、複合キー、リレーショナルデータベース、候補キー、データベース設計、情報工学部門