今週中旬にデータベースがあり、BCNFの違反を特定することに問題があります。私は関係を分解する方法を知っていて、どちらが鍵であり、どれがスーパーキーであるかを知る。暗黙のうちにFDを書くこともできます。私は次のビデオを見ていた:https://www.youtube.com/watch?v=hTFyG5o8-EA。BCNFの違反をどのように指摘できますか?
R(A、B:次の関係(彼女は学生の例を使用していますが、私はそれを簡単にするために、文字にそれを変換しました)にBCNFアルゴリズムを適用するために、女性の説明を開始し、それを合計するには
F、G、H)をFD:A→BCG、G→H、D→EFに変換する。
私はキーがADであることを知っていますが、それはクロージャがAD + = ABCDEFGHであるためです。
BCNFの試み#1: 彼女は、提示されたすべてのFDが違反しているとアルゴリズムを適用始まると言う
R1 = D - > EF(D + = DEF)//無違反が、なぜ?それは単なる違反ではありませんか?
R2 = ABCDEFG - (DEF-D)= ABCDGH //違反、なぜか混乱しますか?両方のキーが含まれています。 R2上の
BCNF試行#2:
R3 = G - > H(G + = GH)//違反2つのだけの属性がGHので、私は信じ
R4 = ABCDG //違反ですが、理由はわかりません。
R4にBCNF試行#3:
R5 = A - > BCG //違反しない
R6 = AD //違反(?)(?)
最終的な関係: R1、R2、R5、R6。
私の最終回答を解説してくれてありがとう。 – mamajava
@philipxy部分的かつ推移的なFDがBCNFに違反していることを示すのは難しくありません。私のポイントは、BCNFの違反を分類するのではなく、OPの問題の違反についての有効な(そしてよく知られた)説明を与えることでした。完全性のために、PSを追加しました。 – reaanb
@reaanb 2NFに違反しているので、CK上の非プライム属性の部分的な依存性がBCNFに違反していることを示すのは簡単ですが、SKから外れていないFDです。部分的、推移的、およびその他の依存関係が、SK以外のFDを参照することなく、BCNFに違反していることを正確に示すことは容易ではありません。 *後者のことから、どうして迷惑でしょうか? 3NFを使用する定義と、決定済みセットと決定セット間のセット差異のすべての要素を主要な属性とする定義を使用しない限り、部分的かつ推移的な3NFの使い慣れた概念はここでは役に立ちません。推移的。 – philipxy