ホーム > データベーススペシャリスト試験 > 2009年
データベーススペシャリスト試験 2009年 午前2 問02
関係Rの関係スキーマがR(A, B, C, D, E)であり, 関数従属A→BC, CD→Eが成立する。これらの関数従属から決定できるRの候補キーはどれか。ここで、A, B, C, D, Eは属性集合であり、XYはXとYの和集合を表す。
ア:AC
イ:ACD
ウ:AD(正解)
エ:CD
解説
関係Rの候補キー判定問題【午前2 解説】
要点まとめ
- 結論:関数従属A→BCとCD→Eから、候補キーはADである。
- 根拠:ADの属性閉包が全属性ABCEDを含み、最小性も満たすため候補キーとなる。
- 差がつくポイント:属性閉包の計算と最小性の確認を正確に行うことが重要である。
正解の理由
関係スキーマR(A, B, C, D, E)において、関数従属A→BCとCD→Eが成立しています。候補キーは、全属性を決定できる最小の属性集合です。
ADの属性閉包を計算すると、まずA→BCよりBとCが得られ、さらにCD→EよりEも得られます。つまり、AD+ = {A, D, B, C, E} = 全属性集合です。
また、ADは最小性も満たしており、A単独やD単独では全属性を決定できません。よって、候補キーはウ: ADです。
ADの属性閉包を計算すると、まずA→BCよりBとCが得られ、さらにCD→EよりEも得られます。つまり、AD+ = {A, D, B, C, E} = 全属性集合です。
また、ADは最小性も満たしており、A単独やD単独では全属性を決定できません。よって、候補キーはウ: ADです。
よくある誤解
属性閉包の計算を途中で止めたり、最小性の確認を怠って複数属性の組み合わせを誤って候補キーとすることがあります。
解法ステップ
- 関数従属から属性閉包を計算する対象の属性集合を決める。
- 各候補の属性集合の属性閉包を計算し、全属性を含むか確認する。
- 全属性を含む集合の中で、最小の属性集合(部分集合が候補キーでないもの)を選ぶ。
- 最小性を満たす属性集合が候補キーとなる。
選択肢別の誤答解説
- ア: AC
AC+を計算すると、A→BCよりBとCは得られるが、DやEは得られず全属性を決定できない。 - イ: ACD
ACD+は全属性を含むが、ADだけで全属性を決定できるため最小性を欠く。候補キーではない。 - ウ: AD
AD+ = {A, D, B, C, E}で全属性を決定し、最小性も満たすため正解。 - エ: CD
CD+はCD→EよりEは得られるが、AやBは得られず全属性を決定できない。
補足コラム
候補キーの判定は関数従属の属性閉包計算が基本です。属性閉包は、与えられた属性集合から関数従属を繰り返し適用し、決定可能な属性を増やしていく手法です。最小性の確認も重要で、候補キーは部分集合に候補キーが存在しない最小の属性集合です。
FAQ
Q: 属性閉包の計算はどのように行いますか?
A: 属性集合に関数従属の左辺が含まれていれば右辺の属性を追加し、これを繰り返して決定可能な属性を増やします。
A: 属性集合に関数従属の左辺が含まれていれば右辺の属性を追加し、これを繰り返して決定可能な属性を増やします。
Q: 候補キーと主キーの違いは何ですか?
A: 候補キーは最小のキー属性集合の候補であり、主キーはその中から選ばれた一つのキーです。
A: 候補キーは最小のキー属性集合の候補であり、主キーはその中から選ばれた一つのキーです。
関連キーワード: 関数従属, 属性閉包, 候補キー, 関係スキーマ, 正規化