2

関係R(ABCDEFG)に次の機能依存関係があるとします。

AB → CF
BG → C
AEF → C
ABG → ED
CF → AE
A → CG
AD → FE
AC → B

依存関係の左側、右側、またはその両方に表示されるかどうかに応じて、属性を左、中央、右のいずれかの列に配置する方法を使用して、候補キーを作成しました。左は属性が必要であることを意味し、中央は不明であり、右はキーの一部ではないことを意味します。

私はこれを得た:

L | M       | R
--|---------|----
- | ABCDEFG | - 

ここから、個々の属性と順列のクロージャを作成しました:BC、BD、BE、BF、BG、CD、CF ...

AとCFのクロージャーのみがすべての属性を含み、したがって候補キーであることがわかりましたが、問題の解決策にはBFGもあります。

誰かが候補キーの計算で私が間違っていることを説明できますか?ありがとう

4

1 に答える 1

2

このアルゴリズムはショートカット(3ページ)を見つけようとしますが、あなたの場合は何も見つかりません。属性の特定の組み合わせがキーであるかどうかを判断するには、その組み合わせが他のすべての属性を決定するかどうかを判断しようとします。あなたの場合、あなたはすべての仕事をしました。あなたはBFGについて何かを見逃しているだけです。

Logic                                    Attributes
--
BFG -> BFG, ∴ ...                       { B   FG}
BG -> C, ∴ BFG -> CF                    { BC  FG}
BFG -> CF and CF -> AE, ∴ BFG -> AE     {ABC EFG}
BFG -> AE,  ∴  BFG -> A
BFG -> A and ABG -> ED, ∴ BFG -> ED     {ABCDEFG}

したがって、BFGは候補キーです。

于 2012-04-17T10:54:19.063 に答える