mvd違反について混乱しています.mvdに違反するものは何もわかりません.たとえば、ABCに3つの列があり、各行はタプルです.
ABC
a2 b2 c1
a1 b1 c2
a1 b1 c3
a2 b3 c1
B->>C および B->>A ですか?
ありがとう
mvd違反について混乱しています.mvdに違反するものは何もわかりません.たとえば、ABCに3つの列があり、各行はタプルです.
a2 b2 c1
a1 b1 c2
a1 b1 c3
a2 b3 c1
B->>C および B->>A ですか?
ありがとう
FD と同様に、MVD はルールです。ビジネスケースに当てはまるかどうかに関係なく、要件や仕様を調べる必要があります。
サンプルデータを見ても当てはまるかどうかはわかりません(FDも同様です)。
サンプルデータを見ると、「ルールが適用される場合、このデータは有効/無効になる」または「このデータが有効でなければならない場合、特定の MVD ルールは確実に適用されない」ことがわかります。
では、そのような MVD ルールは正確には何を示しているのでしょうか?
最初に、FD が正確に何を示しているかを見てみましょう。FD は、特定の [セット] 属性 [s] (FD の左側) について、ある特定の [組み合わせ] 値 [s] が複数の [組み合わせ] に関連付けられている場合はあり得ないと述べています。 FD の右側にある属性の個別の値。
A->B は実際、すべての属性値のペア (a1,b1) と (a2,b2) について、a1=a2 ===> b1=b2 を保持することを意味します。
MVD は FD の一般化であり、個々のB 値を A 値に関連付ける/決定する必要があるとは述べていませんが、代わりに、B 値の SETS をA 値に関連付ける/決定する必要があると述べています。
(警告: ここで A/B から B/C に切り替えます!)
あなたの例では、b2 はセット {c1} に「関連付けられており」、値 b1 はセット {c2,c3} に「関連付けられています」。MVD B->>C が実際に適用される場合、行 a4、b1、c3 も同時に表示されない限り、行 a4、b1、c2 がテーブルに表示されることは不可能です。同様に、これらの 2 つの追加行があり、a1、b1、c4 を追加すると、値 b1 によって「複数決定される」値のセットに c4 が「追加」され、その結果、MVD に違反します。また、a4、b1、c4 を追加します。
a1の値をb1の行の1つで別の値に変更すると、MVDに違反します。
a2 b2 c1
a1 b1 c2
a3 b1 c3
a2 b3 c1
B->>AおよびB->>Cの場合、Bの特定の値に対して、行はAとCの個別の値の外積によって形成される必要があることは事実です。つまり、すべての順列AとCの異なる値のが表されます。
a1/a3とc2/c3を決定するためにb1が必要な場合、テーブルは次のようになります。
a2 b2 c1
a1 b1 c2
a1 b1 c3
a3 b1 c2
a3 b1 c3
a2 b3 c1
しかし、あなたの例には、B->>AおよびB->>Cと言うのに十分な情報はないと思います。また、A->>BとA->>C、またはC->>AとC->>Bの可能性もあります。
これは mvd 違反または 4NF 違反に関するものですか? http://en.wikipedia.org/wiki/Multivalued_dependencyを確認しましたか?