1

開示:私はStanford's online database courseを取っています。フォーラムは死んでいる、と私はSOのいくつかの助けを望んでいる。第4正規形への関係を分解する

は、多値依存関係を持つ関係R(A,B,C,D,E)を考えてみましょう:

A -» B, B -» D

なし機能依存

は、ここでクイズです。 Rを第4正規形に分解したとします。私たちが4NF違反を処理する順序に応じて、異なる最終的な分解を得ることができます。次の関係スキーマのどれが最終的な4NF分解に含まれる可能性がありますか?

そして、ここに私の考えです:

我々は機能的依存性が存在しないことが与えられているので、唯一のキーは、属性(A,B,C,D,E)で設定されています。言い換えれば、問題の複数値の依存関係はいずれも違反しており、それらを分解する必要があります。すべての関係は4NF

Pick any R' with nontrivial A -» B that violates 4NF 
Decompose R' into R_1(A, B) and R_2(A, rest) 
Compute functional dependencies and multivalued dependencies for R_1 and R_2 
Compute keys for R_1 and R_2 

Iになるまで、R [完了]

繰り返しのため

計算キー:

私は講義で与えられた分解アルゴリズムを以下のいリレーションを分解する2つの方法を参照してください。A -» BまたはB -» Dで開始。

で始まる -

R(A,B,C,D,E) 
     | 
     +-----------+ 
     |   | 
R_1(A,B) R_2(A,C,D,E) 

以来BDはもはや同じ関係であるB»、我々は4NF違反していない、と私たちは完了です。この時点でFD、MVD、およびキーをどのように計算するのかはわかりません。

Bから始めて - 、この時点でD

»(AB)及び(BDは)自分の関係に分解されているので、我々は何の違反を持っていない、と私たちは」再実行されます。

解答の選択肢:この時点で

、私は完全に困惑。私は答えの選択肢における関係のいずれかが表示されない、また私はそこに私を取得するアイデアを思い付くことができます。

  1. CE
  2. AD
  3. AE
  4. ABD

私は完全に答えを必要としませんが、私は何が欠けていますか?

答えて

1

正解はADです。

これはどのように取得されますか?

関数の依存関係と同様に、他の複数値の依存関係によって暗黙的に指定された複数値の依存関係を持つことができます。例えば、擬似推移規則(又は多値推移規則)があると言うこと:

をX→→Yが成立し、Y→→ZはX→→Z次に、保持している場合 - Yは

を保持

このルールの場合、A →→ BB →→ Dからは、A →→ Dを得ることができます。したがって、4NFで関係を分解すると、この依存関係から始めて、属性がADの表を得ることができます。または、最初の分解では、R_1(A,B)R_2(A,C,D,E)を見つけた後でR_2を分解し続ける必要があります。それには、R_3(A, D)R_3(A, C, E)を見つけるために、MFC A →→ Dが含まれています。

関連する問題