関係Rの候補キー判定【午前2 解説】
要点まとめ
- 結論:関数従属から導かれる候補キーは{A, D}である。
- 根拠:A→{B, C}と{C, D}→Eの関数従属を組み合わせて属性全体を決定できるため。
- 差がつくポイント:候補キー判定では属性閉包を正確に求め、最小性を確認することが重要である。
正解の理由
関係Rの属性は{A, B, C, D, E}で、関数従属はA→{B, C}と{C, D}→Eです。
まず、{A, D}の属性閉包を求めると、A→B, Cが得られ、さらに{C, D}→EよりEも決定できます。
つまり、{A, D}から全属性{A, B, C, D, E}が決定できるため、候補キーとなります。
他の選択肢は全属性を決定できないか、最小性を満たしません。
よくある誤解
候補キーは単に関数従属の左辺に含まれる属性の組み合わせと誤解しがちです。
また、属性閉包の計算を途中で止めてしまい、全属性決定を見落とすことがあります。
解法ステップ
- 関数従属を整理し、与えられた属性集合を確認する。
- 各候補の属性閉包を計算し、全属性が決定できるかを調べる。
- 最小性を確認し、余分な属性がないかを検証する。
- 全属性を決定でき、かつ最小の属性集合を候補キーとする。
選択肢別の誤答解説
- ア: {A, C}
A→B, Cは決定できるが、{C, D}→EのDが含まれずEを決定できない。
- イ: {A, C, D}
全属性は決定できるが、{A, D}で十分なため最小性を欠く。
- ウ: {A, D}
A→B, C、{C, D}→Eにより全属性を決定し、最小性も満たす。
- エ: {C, D}
{C, D}→Eは決定できるが、AやBを決定できないため不十分。
補足コラム
候補キーの判定には属性閉包の計算が不可欠です。
属性閉包とは、ある属性集合から関数従属を繰り返し適用して決定可能な属性の集合を指します。
また、候補キーは最小性を満たす必要があり、余分な属性があればスーパーキーに過ぎません。
FAQ
Q: 属性閉包の計算はどのように行いますか?
A: 初めに属性集合を閉包に含め、関数従属の左辺が閉包に含まれる場合、右辺の属性を閉包に追加し、これを繰り返します。
Q: 候補キーとスーパーキーの違いは何ですか?
A: スーパーキーは全属性を決定できる属性集合全般で、候補キーはその中で最小のもの(余分な属性を含まない)です。
関連キーワード: 関数従属、属性閉包、候補キー、最小性、関係データベース、正規化