前回の勉強内容
勉強のきっかけになった過去問
正規形を表現する言葉には、「繰返し属性」「非キー属性」「関数従属」「候補キー」「真部分集合」など日頃は使わない言葉が多く、難しくてなかなか覚えられません。
第3正規形において存在する可能性のある関数従属はどれか。
- 候補キーから繰返し属性への関数従属
- (正解)候補キーの真部分集合から他の候補キーの真部分集合への関数従属
- 候補キーの真部分集合から非キー属性への関数従属
- 非キー属性から他の非キー属性への関数従属
出典 : データベーススペシャリスト試験 平成26年春期 午前Ⅱ 問6
第3正規形は、主キー以外の項目でレコードが一意になる項目を別テーブルへ切り出した状態です。
「候補キー」は、レコードを一意にすることができる項目の組み合わせです。
真部分集合とは、全体より小さい一部のことです。
全体の一部を「部分集合」といいます。
全体の一部が全体と同じ範囲でも「部分集合」になります。
全体の一部を「真部分集合」ともいいます。だけど、全体の一部が全体と同じ範囲は「真部分集合」ではありません。真の部分的な集合です。
候補キー①{作業,担当者}の真部分集合は{作業}か{担当者}です。
候補キー②{担当者,リーダー}の真部分集合は{担当者}か{リーダー}です。
「関数従属」は、1つの項目値が決まるともう1つの項目値も決まる関係のことです。
「候補キー②の{リーダー}が決まると候補キー①の{作業}が決まる」状態なので、「候補キーの真部分集合から他の候補キーの真部分集合への関数従属」が正解です。
「第3正規形」の次の段階である「ボイスコッド正規形(第3.5正規形)」で、「候補キーの真部分集合から他の候補キーの真部分集合への関数従属」をなくしていきます。
言い換えると「第3正規形」では次の段階の「ボイスコッド正規形」で解消される関数従属性は残っているということになります。
各段階の正規形
第1,第2,第3正規形とそれらの特徴a~cの組合せとして,適切なものはどれか。
- a. どの非キー属性も,主キーの真部分集合に対して関数従属しない。
- b. どの非キー属性も,主キーに推移的に関数従属しない。
- c. 繰返し属性が存在しない。
第1正規形 第2正規形 第3正規形 ア a b c イ a c b ウ(正解) c a b エ c b a
正規形 | 状態 |
---|---|
第1正規形 | 繰り返す項目をなくした状態 |
第2正規形 | 「主キーの一部の項目の値」によって、「他の列の値」が決まる項目を別テーブルへ切り出した状態 |
第3正規形 | 「非主キー列の値」によって、「他の非主キー列の値」が決まる項目を別テーブルへ切り出した状態 |
「繰返し属性」は、特定レコードの特定項目に情報が複数入っている状態です。
「繰返し属性が存在しない。」状態にしたのが「第1正規形」です。
「非キー属性と」は、候補キーに含まれていない項目のことです。
「(候補)キーに非ず」なので「非キー属性」です。
候補キーに含まれてすらいないので、「非キー属性」だけではレコードを一意にすることはできません。
主キー{受注番号,明細番号}の真部分集合である{受注番号}か{明細番号}で値が決まる項目を別テーブルへ切り出した状態が「第2正規形」です。
「どの非キー属性も,主キーの真部分集合に対して関数従属しない。」状態にしたのが「第2正規形」です。
「推移的関数従属」は、1つの項目値が決まると玉突き的に他の項目値も決まる関係のことです。
非主キー列{商品コード}によって、値が決まる項目を別テーブルへ切り出した状態が「第3正規形」です。
「どの非キー属性も,主キーに推移的に関数従属しない。」状態にしたのが「第3正規形」です。