2017-12-11 11 views
-1

関数従属性のセットとリレーショナルスキーマR(A、B、C、D、E、G)データベース - 機能的依存性

を与え:

F = {A->BC,C->BG,CD->E,G->D,E->B,CE->A,BH->E} 

どのように誰もが私には説明できCとEの関係を見つける?そしてCとAの間?

+0

こんにちは。 "間の関係"は何も意味しません。技術用語を正しく使用するには、投稿を編集してください。 (FD A→Aが成立しているかどうかを知りたいかもしれません)あなたがそこにいる間、あなたのタイトルを、グーグル・グーグルで答えが見つかるように編集してください。また、google 'stackexchange homework'&編集してください。 – philipxy

答えて

1

関数の依存関係のセットを持つリレーションスキーマが与えられた場合、「2つのアトリビュート間の関係を見つける」というフレーズは明確ではありません。 CとEの関係は何ですか? CがEを決定すれば、あるいは、EがC?または、それらが同じ候補キーに属している場合それともほかに何か?

たとえば、CがEまたはviceversaを決定するかどうかを知りたい場合、2つのうちの1つの閉包を計算し、もう一方がこの閉包に属しているかどうかを調べることができます。

たとえば、EがCの閉包(C +と書かれている)に属する場合、C→Eが成り立つことがわかります(つまり、関数従属性C→Eは、与えられた機能的依存性)。あるいは、CがEの閉包に属していれば、E→Cが成り立つことがわかります。

属性のクロージャは、使用可能な依存関係を使用する単純なアルゴリズムを使用して計算することができます。属性の集合から始めて、左部分がクロージャに含まれるような各依存関係と、一部が含まれていない場合は、クロージャに右部分を追加します。例えば:

C+ = C (we start with the attribute itself) 
C+ = CBG (using C->BG, we add BG to the closure) 
C+ = CBGD (using G -> D) 
C+ = CBGDE (using CD -> E) 
C+ = CBGDEA (using CE -> A) 

、他の依存関係を使用することはできませんので、我々は一方で、Eは(実際にはCが候補キーである)Cの閉鎖に属しているので、C-> Eが成立する、ことをここで停止し、注意してくださいE +を計算すると、閉包はBEなので、EはCを決定しません。

関連する問題