2016-12-08 6 views
-1

有するキー誰かが表R R(A、B、C、D、E、F、G、H、I、J)関数従属

C => BD 
E => AC 
E => D 
G => J 
BG => F 
F => H 
のキーを決定する方法を私に説明することができてくださいを決定

ありがとうございました

答えて

0

まず、リレーション内の1つまたは複数の属性のクロージャを決定する方法を知る必要があります。これが意味するのは、開始セットの属性が与えられている場合、すべての可能な関数の依存関係を介してその初期セットによって決定された属性の合計セットを計算するということです。これを行うには、いくつかの基本的な論理的公理を知り、それらを関数の依存関係を組み合わせるために適用する必要があります。

我々が使うことになる公理は、具体的には、アイデンティティとアームストロングの公理の法則です:

  • アイデンティティ:X -> X
  • 推移:その後、X -> YY -> ZX -> Z
  • 組合の場合:X -> Y場合とX -> Z次にX -> YZ
  • 増補:X -> Yの場合、XZ -> YZの場合はいずれもZ

今、私たちはE属性に対する機能的な依存関係のあなたの特定のセットに、我々が得ることに適用された場合:

  1. E -> E(アイデンティティ)
  2. E -> ACは(与えられた)
  3. E -> D (付与)
  4. C -> BD(付与)
  5. E -> ACD(2の組合及び3)
  6. E -> ACDE
  7. (1の組合及び5)
  8. E -> ABCDE(4および6の推移組成)

同様に、我々はすべての閉鎖を計算することができます与えられた関数の依存関係に関してRの他の属性。これは練習として行うべきです。練習では、どのものに集中すべきかを素早く知ることができます。

私たちの目標は、通常、関係全体を決定する最小限の属性セットを見つけることです。この場合、EGI -> ABCDEFGHIJとそれは候補(最小)キーです。この結果を自分で計算して検証する必要があります。リレーションは複数の候補キーを持つことができます。

ABCDEFGHIJのように、最小でない他のキーがあります。たいていの場合、関係全体が決定します。極端な候補キーと完全な関係との間には、EFGHIのようなスーパーキーがあります。候補キーの任意のスーパーセットがキーです。これらのスーパーキーと呼ばれます。