假设我有一个R
带有属性A
, B
,的表,主键C
在哪里。A
假设我有多值依赖 B->-> C。我将表分解R
为两个新表R1
,R2
其中R1
有 attributes A
,B
keyA
和R2
has attributes B
,C
。主键是干什么用的R2
?
我认为答案应该是:由于 4NF 要求每个 MVD 的左侧都应该是一个超级键,那么在新表中,键将是 B,尽管整个属性集也可能是一个超级键(虽然是一个微不足道的属性,但那不是'我认为在 4NF 分解中无关紧要)。所以,这是我的猜测。
根据 Catcall 的出色建议,由于 B 的多值依赖性,生成的 R2 表将有许多行与 B 的重复值。键的替代选项是 C 本身以及 B 和 C 一起。如果 C->B 成立,C 可以是主键,在这种情况下它不是。因此,在这种情况下,唯一的关键是 B,c。有人可以检查我的推理是否正确吗?