0

次の機能依存関係を持つリレーション{A、B、C、D}の場合-

A -> BCD
B -> C
CD -> A

サイトの1つで見つけた特定の方法を使用して、候補キーをABCDとして取得しています。そうですか?正しい候補キーは何ですか?

4

2 に答える 2

1

ABCDは些細なスーパーキーです。すべてのアルゴリズムはABCDを生成する必要があります。しかし、ABCDはこの関係の候補キーではありません。定義上、候補キーは最小限のスーパーキーです。

簡単な検査で、リンクのアルゴリズムが不十分であることがわかります。候補キーとしてAは生成されませんが、A-> BCDが与えられるため、Aは明らかに候補キーです。Aの他に2つの候補キーがあります。

@ErwinSmoutによるこのSOの回答は、鉛筆と紙に適したアルゴリズムについて説明しています。ほとんどの教科書には、自動化に適したアルゴリズムが含まれています。

于 2013-01-07T13:30:10.407 に答える
0

簡単にしましょう:これがスーパー候補キーの定義です

スーパーキー

スーパーキーは、キーのスーパーセットを表します。

スーパーキーは、集合的に取得され、他のすべての属性を一意に識別できる1つ以上の属性のセットです。

候補キー

候補キーは、適切なサブセットがスーパーキーではないスーパーキーです。

言い換えれば、候補キーは最小限のスーパーキーです。

クロージャープロパティにより、

A + = ABCD

以来

A->BCDが与えられました

A-> 再帰性ルール

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

お役に立てれば!

于 2015-05-10T09:34:19.577 に答える