平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8
テクノロジ/データベース第3正規形において存在する可能性のある関数従属はどれか。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8
- ア候補キーから繰返し属性への関数従属
- イ候補キーの真部分集合から他の候補キーの真部分集合への関数従属
- ウ候補キーの真部分集合から非キー属性への関数従属
- エ非キー属性から他の非キー属性への関数従属
正解:イ
解説
第3正規形は,全ての非キー属性が候補キーに完全関数従属し,かつ非キー属性間の推移的関数従属(非キー属性から他の非キー属性への関数従属)が存在しないことを要求する正規形です。しかし,第3正規形の定義は非キー属性同士の従属や候補キーの真部分集合から非キー属性への部分関数従属を排除するものであり,候補キーの真部分集合から「他の候補キー」の真部分集合への関数従属までは禁止していません。そのため,第3正規形であっても,ある候補キーの真部分集合が別の候補キーの真部分集合を関数的に決定するという関数従属が存在する可能性があります(これはボイス・コッド正規形で問題となるケースです)。
選択肢ごとの解説
- ア誤り。候補キーから繰返し属性への関数従属が存在するのは,属性値が原子値であることを要求する第1正規形にすら違反する状態であり,第3正規形では起こり得ません。
- イ正しい。候補キーの真部分集合から他の候補キーの真部分集合への関数従属は,第3正規形の定義(非キー属性に関する部分・推移的関数従属の排除)では禁止されておらず,第3正規形であっても存在する可能性があります(ボイス・コッド正規形で初めて排除されます)。
- ウ誤り。候補キーの真部分集合から非キー属性への関数従属(部分関数従属)が存在すると,第2正規形の条件に違反するため,第3正規形(第2正規形を包含する)ではそもそも存在し得ません。
- エ誤り。非キー属性から他の非キー属性への関数従属(推移的関数従属)が存在すると,第3正規形の定義に直接違反するため,第3正規形では存在し得ません。