ホーム > データベーススペシャリスト試験 > 2022年
データベーススペシャリスト試験 2022年 午前2 問03
関係R(A, B, C, D, E)において, 関数従属性 A→B, A→C, {C, D}→Eが成立する。最初に属性集合{A, B}に対して, これらの関数従属性によって関数的に決定される属性をこの属性集合に加える。この操作を繰り返して得られる属性集合(属性集合の閉包)はどれか。
ア:{A, B, C }(正解)
イ:{A, B, C, D}
ウ:{A, B, C, D, E}
エ:{A, B, E}
解説
関係Rの属性集合の閉包計算【午前2 解説】
要点まとめ
- 結論:属性集合{A, B}の閉包は{A, B, C}となります。
- 根拠:関数従属性A→B、A→C、{C, D}→Eのうち、A→Cが{A, B}に適用可能でCを追加。
- 差がつくポイント:閉包計算では、追加した属性を使ってさらに属性を決定できるかを繰り返し確認することが重要です。
正解の理由
初期属性集合は{A, B}です。関数従属性を順に確認すると、A→Bは既にBがあるため変化なし、A→CによりCが追加されます。次に{C, D}→Eは、Dが閉包に含まれていないため適用できません。したがって、閉包は{A, B, C}で止まります。
よくある誤解
{C, D}→Eを見てDがなくてもEが追加できると誤解しがちですが、両方の属性が閉包に含まれていなければ適用できません。
解法ステップ
- 初期属性集合を{A, B}とする。
- 関数従属性A→Bを確認。Bは既にあるため変化なし。
- A→Cを確認。Cが追加され、集合は{A, B, C}に。
- {C, D}→Eを確認。Dがないため適用不可。
- 追加できる属性がなくなったため、閉包は{A, B, C}で確定。
選択肢別の誤答解説
- ア: {A, B, C} 正解。A→CによりCが追加され、他は適用不可。
- イ: {A, B, C, D} Dは閉包に含まれていないため誤り。
- ウ: {A, B, C, D, E} Dがないため{C, D}→Eは適用できず誤り。
- エ: {A, B, E} Eは{C, D}→Eで決定されるがDがないため誤り。
補足コラム
属性集合の閉包は関数従属性の適用可能性を繰り返し検証し、決定可能な属性をすべて加えた集合です。正確な閉包計算は正規化やキーの判定に不可欠な技術です。
FAQ
Q: 閉包計算で属性を追加したら、再度すべての関数従属性を確認する必要がありますか?
A: はい。新たに追加した属性を使ってさらに属性を決定できる場合があるため、繰り返し確認します。
A: はい。新たに追加した属性を使ってさらに属性を決定できる場合があるため、繰り返し確認します。
Q: {C, D}→Eのような複数属性の左辺は、すべての属性が閉包に含まれていないと適用できませんか?
A: はい。左辺のすべての属性が閉包に含まれて初めて右辺の属性を追加できます。
A: はい。左辺のすべての属性が閉包に含まれて初めて右辺の属性を追加できます。
関連キーワード: 関数従属性, 属性集合の閉包, 正規化, 閉包計算, 関係データベース