31

属性ABCDEを持つ関係Rが与えられます。次の依存関係が与えられます:A-> B、BC-> E、およびED->A。私はすでにCDE、ACD、およびBCDである答えを持っています。私はそれを行う方法を知る必要があります。ありがとう。

4

4 に答える 4

85

候補キーは最小限のスーパーキーです。つまり、キーには余分な属性はありません。候補キーを見つけるための最初のステップは、すべてのスーパーキーを見つけることです。なじみのない方のために説明すると、スーパー キーは属性のセットであり、そのクロージャーはすべての属性のセットです。言い換えれば、スーパーキーは、開始できる属性のセットであり、機能的な依存関係に従うことで、すべての属性を含むセットにたどり着きます。

A -> B、BC -> E、および ED -> A という機能依存関係があるため、次のスーパーキーがあります。

  • ABCDE (すべての属性は常にスーパー キーです)
  • BCED (ED -> A を通じて属性 A を取得できます)
  • ACDE (A から B を追加するだけ -> B)
  • ABCD (BC から E を追加するだけ -> E)
  • ACD (A -> B で B を取得でき、BC -> E で E を取得できます)
  • BCD (BC -> E から E を取得し、ED -> A から A を取得できます)
  • CDE (ED -> A から A を取得し、A -> B から B を取得できます)

(ここで理解すべきトリックの 1 つは、C と D が関数依存関係の右側に現れることはないため、すべてのキーに C と D の両方を含める必要があるということです)

すべてのスーパー キーが揃ったので、最後の 3 つのみが候補キーであることがわかります。最初の 4 つのすべてを削減することができますので。ただし、最後の 3 つのスーパーキーから属性を削除して、それらをスーパーキーのままにしておくことはできません。

したがって、候補キーは、ACD、BCD、および CDE です。

それが役立つことを願って、

于 2013-01-30T01:30:52.643 に答える
11

候補キーを見つけるには、FD を Left、Middle、Right の属性に分割する必要があります - Left には、左側 (CD) にのみ表示される属性が含まれます - Middle には、左右の両方に表示される属性が含まれます ( ABE) - 右側には、右側にのみ表示される属性が含まれます (なし)

左からアトリビュートのクロージャを見つけます: * CD+ -> CD リレーションのすべてのアトリビュートを取得するわけではないので、Middle アトリビュート (ABE) を一度に 1 つずつ追加して、クロージャを再度見つけようとします。

* CDA+ -> CDABE (CDA は候補キー) * CDB+ -> CDBEA (CDB は候補キー) * CDE+ -> CDEAB (CDE は候補キー)

于 2014-05-01T17:18:03.610 に答える
-6

CD は候補キーなので、ACD、BCD、CDE はすべて候補キーになる可能性があります。C、D は機能依存関係の右側に表示されないため、CD は候補キーです。

これは理解するのに役立ちます。

于 2010-12-24T12:15:41.207 に答える