第1,第2,第3正規形とそれらの特徴a~cの組合せのうち,適切なものはどれか。
a:どの非キー属性も,主キーの真部分集合に対して関数従属しない。
b:どの非キー属性も,主キーに推移的に関数従属しない。
c:繰返し属性が存在しない。
正答3
解説
正解は3です。
この問題は、第1〜第3正規形とその特徴を正しく対応付けるものです。
正規化は、データの重複や更新時の矛盾を防ぐために、表を段階的に分解する手順です。
【a〜cの検討】
a:非キー属性が主キーの一部(真部分集合)に関数従属しない、つまり部分関数従属がない状態です。
これは第2正規形の条件です。
b:非キー属性が主キーに推移的に関数従属しない、つまり非キー属性どうしの従属がない状態です。
これは第3正規形の条件です。
c:繰返し属性(1つの行に同じ種類の値が複数並ぶ項目)がない状態です。
これは第1正規形の条件です。
【選択肢別解説】
1:× 第1正規形をa、第2正規形をb、第3正規形をcとしています。
繰返し属性の排除(c)は最初の段階である第1正規形の条件なので誤りです。
2:× 第1正規形をa、第2正規形をcとしています。
部分関数従属の排除(a)は第2正規形、繰返し属性の排除(c)は第1正規形の条件なので、対応が逆です。
3:○ 第1正規形がc、第2正規形がa、第3正規形がbで、上の検討と一致します。
4:× 第2正規形をb、第3正規形をaとしています。
推移的関数従属の排除(b)は第3正規形、部分関数従属の排除(a)は第2正規形の条件なので、対応が逆です。
【ポイント】
正規化は「繰返しを除く(第1)」「部分従属を除く(第2)」「推移従属を除く(第3)」の順に進みます。
主キーが単一の属性なら部分関数従属は起こらないので、第1正規形であれば第2正規形の条件も満たします。