第1、第2、第3正規形


応用情報技術者平成30年秋期 午前問28

第1,第2,第3正規形とそれらの特徴a~cの組合せとして,適切なものはどれか。
 ・どの非キー属性も,主キーの真部分集合に対して関数従属しない。
 ・どの非キー属性も,主キーに推移的に関数従属しない。
 ・繰返し属性が存在しない。

第1、第2、第3正規形の条件は以下の通りです。ここで、関数従属とは一方の属性集合の値 (の集合) がもう一方の属性集合の値 (の集合) を一意に決定する関係のことをいいます。
・第1正規形
  全ての属性が単一値である状態

・第2正規形
  第1正規形を満たし、かつ、主キーに部分関数従属する(主キーの真部分集合に関数従属する)属性が存在しない状態

・第3正規形
  第2正規形を満たし、かつ、主キーからの推移的関数従属が存在しない状態

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
補足
第3正規形であることの効果又は影響に関する記述として,適切なものはどれか。

・第3正規形は、第2正規形である表に対して、主キー以外の属性によって一意に決まる属性を別表に移すことで得られます。これによりデータの冗長性が排除され、第2正規形における行の挿入・削除および更新時の異常が発生しなくなります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
補足

正規化の段階について、ちょっと復習しましょう:
・第1正規形
 集団項目や繰り返し値を排除する。全ての属性が単一値をもつ状態。

・第2正規形
 主キーの一部分である属性に、関数従属している属性を別表に移す。全ての属性が単一値をもち、主キーからの部分関数従属がない状態。

・第3正規形
非キー項目に関数従属している項目を別表に移す。全ての属性が単一値をもち、主キーからの部分関数従属がなく、かつ、主キーからの推移的関数従属がない状態。

・"受注明細"表には、繰り返し項目がありません。⇒第1正規形の条件を満たす。
・主キーの一部分に関数従属する属性もありません。⇒第2正規形の条件も満たす。
・非キー項目である"商品コード"に関数従属している商品名が別表に移されていないため、⇒第3正規化までは行われていません。

参照: