ホーム > データベーススペシャリスト試験 > 2020年
データベーススペシャリスト試験 2020年 午前2 問03
関係Rは属性A, B, C, D, Eから成り、関数従属A→{B, C}, {C, D}→Eが成立するとき、Rの候補キーはどれか。
ア:{A, C}
イ:{A, C, D}
ウ:{A, D}(正解)
エ:{C, D}
解説
関係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からBとCが決まるため、AだけでBとCを補完できます。
次に、Eは{C, D}から決まるため、CとDが必要です。
しかしCはAから決まるため、Cを含める必要はありません。
したがって、AとDがあればB, C, Eも決まり、全属性を決定できるため、候補キーは{A, D}です。
これが最小の属性集合であるため、正解はウ: {A, D}となります。
まず、AからBとCが決まるため、AだけでBとCを補完できます。
次に、Eは{C, D}から決まるため、CとDが必要です。
しかしCはAから決まるため、Cを含める必要はありません。
したがって、AとDがあればB, C, Eも決まり、全属性を決定できるため、候補キーは{A, D}です。
これが最小の属性集合であるため、正解はウ: {A, D}となります。
よくある誤解
候補キーに含める属性は「決定できる属性」を重複して含めないことが重要です。
例えば、CはAから決まるため、Cをキーに含める必要はありません。
例えば、CはAから決まるため、Cをキーに含める必要はありません。
解法ステップ
- 関数従属を整理し、決定できる属性を把握する。
- A→{B, C}より、AがあればBとCは決まると理解する。
- {C, D}→Eより、Eを決めるにはCとDが必要だと認識する。
- CはAから決まるため、Eを決めるには実質AとDが必要と判断する。
- AとDで全属性A, B, C, D, Eが決まるため、{A, D}が候補キーとなる。
選択肢別の誤答解説
- ア: {A, C}
CはAから決まるため冗長。DがないためEを決定できず不十分。 - イ: {A, C, D}
Cが冗長であり、最小性を欠く。候補キーはより小さい集合であるべき。 - ウ: {A, D}
最小の属性集合で全属性を決定できるため正解。 - エ: {C, D}
AがないためBを決定できず不十分。
補足コラム
候補キーとは、関係のすべての属性を関数従属で決定できる最小の属性集合です。
関数従属の推移律や最小カバーを理解すると、候補キーの判定が容易になります。
また、候補キーは複数存在する場合もありますが、今回の問題では一つに絞られています。
関数従属の推移律や最小カバーを理解すると、候補キーの判定が容易になります。
また、候補キーは複数存在する場合もありますが、今回の問題では一つに絞られています。
FAQ
Q: 候補キーと主キーの違いは何ですか?
A: 候補キーは最小の決定属性集合で複数存在することもありますが、主キーはその中から選ばれた一つのキーです。
A: 候補キーは最小の決定属性集合で複数存在することもありますが、主キーはその中から選ばれた一つのキーです。
Q: 関数従属の推移律とは何ですか?
A: 例えばA→BかつB→Cならば、A→Cも成立するという関数従属の性質です。
A: 例えばA→BかつB→Cならば、A→Cも成立するという関数従属の性質です。
関連キーワード: 関数従属, 候補キー, 関係データベース, 最小カバー, 属性集合