我的作业中出现的一个问题如下:
- 如果行列式是候选键的一部分,那么这对 BCNF 是否足够好?
我不这么认为,因为如果所有非键属性都依赖于整个主键,那么关系就在 BCNF 中,仅此而已。这表示行列式是候选键的一部分,那么这是否意味着部分功能依赖?
但是,我开始怀疑自己,因为候选键有可能是超级键,但事实并非如此。
你怎么看?
我的作业中出现的一个问题如下:
我不这么认为,因为如果所有非键属性都依赖于整个主键,那么关系就在 BCNF 中,仅此而已。这表示行列式是候选键的一部分,那么这是否意味着部分功能依赖?
但是,我开始怀疑自己,因为候选键有可能是超级键,但事实并非如此。
你怎么看?
问题中的“部分”是什么意思?一些但不是全部?部分还是全部?你是什么意思?
部分功能依赖的定义使用“部分”来表示一些但不是全部。
检查 BCNF 的定义。要求没有非主要属性在功能上部分依赖于任何键的那个还需要您编写的其他内容。所以你的“如果”不正确。但是,如果分配问题的“部分”意味着“部分但不是全部”,如“部分依赖”,那么根据 BCNF 的相关定义,该关系不在 BCNF 中。
所有候选键都是超级键。但是候选键是不包含任何较小超键的超键。超级密钥涉及 BCNF 定义的不同形式。但是,如果根据一个定义和你所知道的违反了 BCNF,那么另一个定义是不可能允许的。