我很难确切地想象出A-> BC意味着什么,主要是BC究竟做了什么 例如,在表格“如果A - > B和B - > C,则A - > C”看起来像这样,并且该陈述将为真:
A | B | C
1 | 2 | 3
1 | 2 | 3
A - > BC看起来像?
你会如何展示“如果AB - > C,那么A - > BC”是假的?
谢谢!
编辑:
我的猜测是AB - > C表示C依赖于A和B,因此表格如下所示:
A | B | C
1 | 2 | 3
1 | 2 | 3
或者这(这可能是我上述问题的一个反例):
A | B | C
1 | 2 | 4
1 | 3 | 4
两者都是真的。但这是错误的:
A | B | C
1 | 2 | 4
1 | 3 | 5
这是正确的想法吗?
答案 0 :(得分:1)
如果您还没有阅读this,那么可以正常介绍功能依赖项。它说:
Union:如果X→Y和X→Z,则X→YZ
分解:如果X→YZ,则X→Y和X→Z
我发现将A -> B
视为“A确定B”并将A -> BC
读为“A确定B和C”会很有帮助。换句话说,给定A,您可以唯一地确定B和C的值,但是给定B和C不一定是真的,您可以唯一地确定A的值。
这是一个简单的例子:一个至少包含3列的表,其中A是主键,B和C是任何其他列:
id | x | y
------------
1 | 7 | 4
2 | 9 | 4
3 | 7 | 6
要表明If AB -> C, then A -> BC
是假的,你只需要提出一个反例。这是一个:AB是主键的表(因此根据定义,它满足AB -> C
):
A | B | C
------------
1 | 1 | 4
1 | 2 | 5
2 | 1 | 6
2 | 2 | 4
但是,它不满足A -> B
(因为对于A = 1,B = 1,2),因此,通过Union,它不满足A -> BC
。 (奖励积分:它是否满足A -> C
?这有关系吗?)