関係Rは属性{A, B, C, D, E}から成り、関数従属A → {B, C}、{C, D} → Eが成立する。これらの関数従属から決定できるRの候補キーはどれか。
解説
関係Rの候補キー判定問題【午前2 解説】
要点まとめ
- 結論:候補キーは属性集合{A, D}である。
- 根拠:関数従属A → {B, C}と{C, D} → Eから、{A, D}で全属性を決定できるため。
- 差がつくポイント:候補キーの判定は関数従属の推移的閉包を正確に求めることが重要。
正解の理由
関係Rの属性は{A, B, C, D, E}で、関数従属はA → {B, C}と{C, D} → Eです。
まず、{A, D}の閉包を求めると、AからB, Cが決まり、さらにCとDが揃うためEも決まります。
つまり、{A, D}⁺ = {A, B, C, D, E}となり、全属性を決定できるため候補キーです。
他の選択肢は全属性を決定できないか、冗長な属性を含んでいます。
よくある誤解
候補キーは単に関数従属の左辺を含む集合と考えがちですが、閉包計算をしないと正確に判定できません。
また、属性の冗長性を見落とし、最小性を満たさない集合を候補キーと誤認することがあります。
解法ステップ
- 関数従属の左辺と右辺を整理する。
- 各選択肢の属性集合の閉包を計算する。
- 閉包が全属性集合{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: 候補キーは最小の決定属性集合で複数存在することもあり、主キーはその中から選ばれた一つのキーです。
Q: 閉包計算で注意すべき点は?
A: 関数従属のすべての適用可能な組み合わせを漏れなく適用し、推移的に属性を追加することが重要です。
関連キーワード: 関数従属, 候補キー, 閉包計算, 正規化, 属性集合, 関係データベース