平成31年度 春期 午前Ⅱ 問8
データベース設計
部分関数従属に関する問題
第3正規形において存在する可能性のある関数従属はどれか。
- ア候補キーから繰返し属性への関数従属
- イ候補キーの真部分集合から他の候補キーの真部分集合への関数従属
- ウ候補キーの真部分集合から非キー属性への関数従属
- エ非キー属性から他の非キー属性への関数従属
答えと解説を見る
✓ これが正解イ候補キーの真部分集合から他の候補キーの真部分集合への関数従属
解説
候補キーの一部から別の候補キーの一部への従属は、第3正規形でも残り得ます。
第3正規形の条件は、非キー属性が候補キーに部分関数従属も推移関数従属もしないことです。この条件が縛っているのは非キー属性の側だけで、候補キーを構成する属性どうしの従属には触れていません。そのため、候補キーが複数あって、ある候補キーの一部から別の候補キーの一部へ関数従属がある表は、第3正規形を満たしたまま存在し得ます。例えば受講(学生、科目、教員)で、教員が決まれば科目が決まり、学生と科目が決まれば教員が決まるとすると、候補キーは{学生、科目}と{学生、教員}で、教員→科目は候補キーの一部から別の候補キーの一部への従属です。各選択肢の従属が、どの正規形の条件で禁じられているかを当てはめていくと区別できます。
ほかの選択肢はなぜ違うのか
- ア候補キーから繰返し属性への関数従属:繰返し属性を持つ表は、そもそも第1正規形の条件を満たしていません。候補キーから繰返し属性への従属がある時点で第1正規形より前の段階なので、第3正規形の表に存在することはありません。
- ウ候補キーの真部分集合から非キー属性への関…:候補キーの一部だけで非キー属性が決まるのは部分関数従属です。部分関数従属を取り除いた状態が第2正規形なので、それを含む第3正規形の表には存在しません。
- エ非キー属性から他の非キー属性への関数従属:非キー属性から他の非キー属性への従属があると、候補キーからその属性へ間接的に決まる推移関数従属になります。推移関数従属を取り除いた状態が第3正規形なので、存在しません。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)