第1,第2,第3正規形とリレーションの特徴a,b,cの組合せのうち,適切なものはどれか。
a:どの非キー属性も,主キーの真部分集合に対して関数従属しない。
b:どの非キー属性も,主キーに推移的に関数従属しない。
c:繰返し属性が存在しない。
(表:左列=第1正規形,中列=第2正規形,右列=第3正規形)
正答3
解説
正解は3です。
正規化は、データの重複をなくし、更新時の矛盾を防ぐためにリレーションを分解する手順で、第1正規形から順に条件が加わります。
記述cの「繰返し属性が存在しない」は、第1正規形の条件です。
記述aの「非キー属性が主キーの真部分集合に関数従属しない」は、部分関数従属がない状態で、第2正規形の条件です。
記述bの「非キー属性が主キーに推移的に関数従属しない」は、推移的関数従属がない状態で、第3正規形の条件です。
したがって、第1、第2、第3正規形の順にc、a、bが対応します。
【選択肢別解説】
1:× 第1正規形にa、第2正規形にb、第3正規形にcを当てています。
繰返し属性の排除cは最初の段階である第1正規形の条件なので、対応が誤りです。
2:× 第1正規形にaを当てていますが、第1正規形の条件は繰返し属性がないことcです。
部分関数従属の排除aは、第2正規形の条件です。
3:○ 第1正規形がc(繰返し属性なし)、第2正規形がa(部分関数従属なし)、第3正規形がb(推移的関数従属なし)で、全て正しい対応です。
4:× 第1正規形のcは正しいものの、第2正規形にb、第3正規形にaを当てています。
部分関数従属の排除aが第2正規形、推移的関数従属の排除bが第3正規形なので、逆になっています。
【ポイント】
第1正規形は繰返しをなくす、第2正規形は主キーの一部への従属をなくす、第3正規形は非キー属性を経由した従属をなくす、と段階で覚えましょう。
主キーが一つの属性だけで構成されるなら、第1正規形であれば第2正規形の条件も自動的に満たします。