ホーム > データベーススペシャリスト試験 > 2009年
データベーススペシャリスト試験 2009年 午前2 問05
属性間の従属関係を次のように表記するとき, 属性a~eで構成される関係を第3正規形にしたものはどれか。


ア:
イ:
ウ:
エ:(正解)
解説
属性間の従属関係を基に第3正規形にしたものはどれか【午前2 解説】
要点まとめ
- 結論:正解はエで、第3正規形(3NF)に適合した分割を示しているためです。
- 根拠:3NFは部分関数従属と推移的関数従属を排除し、すべての非キー属性が候補キーに完全関数従属する状態を指します。
- 差がつくポイント:関数従属性の把握と、候補キーの特定、推移的従属の除去が正確にできているかが合否を分けます。
正解の理由
選択肢エは、与えられた関数従属性をもとに、部分従属と推移的従属を解消するために関係を適切に分割しています。
具体的には、主キー候補である属性aを中心に、b, c, d, eの依存関係を整理し、bとcの相互依存やdとcの依存、bとeの依存を分割しているため、3NFの条件を満たしています。
具体的には、主キー候補である属性aを中心に、b, c, d, eの依存関係を整理し、bとcの相互依存やdとcの依存、bとeの依存を分割しているため、3NFの条件を満たしています。
よくある誤解
3NFは単に「キー属性以外を分割すればよい」と誤解されがちですが、部分従属や推移的従属の正確な理解が不可欠です。
また、相互依存関係を見落とすと正規化が不十分になることがあります。
また、相互依存関係を見落とすと正規化が不十分になることがあります。
解法ステップ
- 関係の主キー候補を特定する(ここではaが主キー候補)。
- 与えられた関数従属性を整理し、部分従属(主キーの一部に依存)を検出する。
- 推移的従属(非キー属性間の依存)を確認し、分割が必要か判断する。
- 3NFの条件に従い、部分従属と推移的従属を解消するために関係を分割する。
- 選択肢の分割案と照合し、条件を満たすものを選ぶ。
選択肢別の誤答解説
- ア:b, c, d, eの依存関係が不十分に分割されており、推移的従属が残っているため3NFではない。
- イ:b, cの相互依存を分割しているが、dとcの依存関係が整理されておらず不完全。
- ウ:b, d, c, eの配置が混在し、依存関係の整理が不適切で3NFの条件を満たさない。
- エ:bとcの相互依存、dとcの依存、bとeの依存を適切に分割し、3NFの条件を満たしている。
補足コラム
第3正規形は、データベース設計において冗長性を減らし、更新異常を防ぐための重要な段階です。
関数従属性の理解は正規化の基礎であり、特に部分従属と推移的従属の区別がポイントとなります。
また、相互依存関係(相互に依存する属性群)は分割の際に注意が必要です。
関数従属性の理解は正規化の基礎であり、特に部分従属と推移的従属の区別がポイントとなります。
また、相互依存関係(相互に依存する属性群)は分割の際に注意が必要です。
FAQ
Q: 第3正規形とボイスコッド正規形(BCNF)の違いは何ですか?
A: 3NFは推移的従属を排除しますが、BCNFはすべての関数従属性の決定側が候補キーであることを要求し、より厳格です。
A: 3NFは推移的従属を排除しますが、BCNFはすべての関数従属性の決定側が候補キーであることを要求し、より厳格です。
Q: 部分関数従属とは何ですか?
A: 主キーが複数属性で構成される場合に、その一部の属性だけで非キー属性が決まる関係を指します。これを解消するのが3NFの目的の一つです。
A: 主キーが複数属性で構成される場合に、その一部の属性だけで非キー属性が決まる関係を指します。これを解消するのが3NFの目的の一つです。
Q: 推移的従属はなぜ問題ですか?
A: 推移的従属があると、非キー属性間で依存関係が生じ、データの冗長性や更新異常が発生しやすくなります。
A: 推移的従属があると、非キー属性間で依存関係が生じ、データの冗長性や更新異常が発生しやすくなります。
関連キーワード: 正規化, 第3正規形, 関数従属性, 部分従属, 推移的従属, データベース設計, 正規化手順