3NF/BCNF にある関係を区別する方法について、さまざまな情報源を読んできました。そして、私はこれまでのところ、これが私の理解です...
この関係を例として使用します...
R = {A, B, C, D, E}
と
F = {A -> B, B C - > E, E D -> A}
.
まず、関係のキーを見つける必要があります。そのためにこの動画を使いました。そして、私は得ました
Keys = {ACD, BCD, CDE}
R
がBCNFにあることを確認するには、 のすべての関数依存関係の左側F
がKeys
. A -> B
最初の FD はキーの 1 つであり、キーの 1 つではないため、そうではないことがすぐにわかりA
ます。したがって、BCNF にはありません。
R
が3NFにあることを確認するには、 のすべての機能依存関係の左側が のF
いずれかであるか、 のすべての機能依存関係の右側が の 1 つのサブセットであるKeys
ことを確認する必要があります。すべての FD の右側を見ると、、およびです。これらはそれぞれ a のサブセットであるため、これは 3NF にあることを意味します。F
Keys
B
E
A
Key
したがって、これは(wiki によると) リレーションが に含まれているが含まれていないまれなケースの 1 つです。この方法は正しいですか?信頼できますか?何か不足していますか?3NF
BCNF