我在 BCNF 中有以下功能依赖项:
a,b -> c
a -> d
b -> d
有了附加约束,即 no a
andb
应该与 a 组合c
,其中a
andb
具有不同d
的 s。
例子:
a | d b | d a | b | c
----- ----- ---------
1 | 3 5 | 3 1 | 5 | 6
2 | 4 2 | 5 | 7
第一行a,b,c
是允许的 ( 1->3
, 5->3
),但第二行是禁止的,因为 ( 2->4
, 5->3
) 4 != 3
。
这个额外的约束可以对我的数据产生两个影响。对于每一个a,b,c
,都有两种冗余的方法来确定d
。可以有违反约束的数据。我的模式如何反映这个额外的约束?