IPA過去問ドリル

平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8

テクノロジ/データベース

第2正規形であるが第3正規形でない表はどれか。ここで,講義名に対して担当教員は一意に決まり,所属コードに対して勤務地は一意に決まるものとする。また,{ }は繰返し項目を表し,実線の下線は主キーを表す。

出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8

正解:ウ

解説

第2正規形は,主キーの真部分集合(部分キー)への部分関数従属を排除した状態であり,第3正規形は,さらに非キー属性間の推移的関数従属(主キー以外の属性が,主キー以外の別の属性を決定する関係)を排除した状態である。設問の表のうち,社員番号(単一属性)を主キーとする“社員番号,社員名,所属コード,勤務地”の表は,主キーが単一属性であるため部分関数従属は生じ得ず(第2正規形の条件は自動的に満たされる),一方で「所属コードに対して勤務地は一意に決まる」という前提から,社員番号→所属コード→勤務地という推移的関数従属が存在し,第3正規形の条件には反する。したがって,この表が第2正規形であるが第3正規形でない表に該当する。

選択肢ごとの解説

  • 誤り。この表の主キーは学生番号と講義名の組合せ(複合キー)であると考えられるが,「講義名に対して担当教員は一意に決まる」という前提から,担当教員は主キーの一部である講義名だけに関数従属しており,主キー全体には関数従属していない部分関数従属が存在する。したがって,この表はそもそも第2正規形の条件を満たしていない。
  • 誤り。社員番号を主キーとするこの表は,主キーが単一属性であるため部分関数従属はなく第2正規形を満たす。また,氏名・入社年月日・電話番号はいずれも社員番号だけに直接関数従属しており,これらの属性間に推移的関数従属は見当たらないため,第3正規形も満たしている。
  • 正しい。社員番号を主キーとするこの表は,主キーが単一属性であるため部分関数従属は生じず第2正規形を満たす。しかし,「所属コードに対して勤務地は一意に決まる」という前提から,社員番号→所属コード→勤務地という推移的関数従属が存在するため,第3正規形の条件は満たしていない。
  • 誤り。この表の“趣味”列は{ }で示される繰返し項目(複数値)であり,一つの属性値が原子値でないため,正規形の議論以前に第1正規形の条件(属性値の原子性)を満たしていない。
データベーススペシャリストの過去問を演習モードで解く