回答
如果MovieName
是关键,并且唯一依赖性(不是只有行列式!)是:
MovieName → Genre
那么关系是在第一,第二和Thir d正常形式,以及Boyce-Codd正常形式,以及更高级形式(例如第四范式)。
这是因为在(唯一)依赖关系中,行列式(MovieName
)是关键,因此所有正常形式的定义都受到尊重。
你并不是真正的意思是“这种关系的标准化程度是多少”。关系变量或值可以一次以很多正常形式出现。当它在一个,它在所有较低的,它可能在更高的。所以大概你的意思是“这个关系必须处于最高水平的标准化”。
MovieName->类型不是行列式。它是一个FD(功能依赖)。它的决定因素是{MovieName}。这是CK(候选键)的唯一决定因素。的非平凡的FD是
{的movieName} - > {流派}
{的movieName} - > {的movieName,流派}
由于非平凡FD的每一个决定因素是一个超密钥,这是BCNF。由于它在BCNF中,因此它是每个较低的正常形式。
有两个定理的日期&费金与此有关:
- 如果关系是3NF(或BCNF)和每一个CK很简单,那就是在5NF
- 如果关系是BCNF和一些CK很简单,那么它是在4NF
由于你的关系是在BCNF它是3NF,因为每个CK是简单的它在5NF。
PS如果我们不知道这些定理会怎么样?
如果这个值/变量的唯一限制是你给出的值,那么它就是5NF。因为根据定义,当它不满足任何JD(联合依赖)时,它就在5NF中,而不是那些由它具有该组候选键所隐含的JD。
但是,如果我们所知道的值/变量是您给出的,那么我们如何表明它仍然必须在5NF?
如果JD * {{MovieName},{Genre}}也被占用,那么它将不在4NF(或更高)。也就是说,如果它也等于其在{MovieName} & {体裁}上的预测加入。在连接/原始中,每个输入的MovieName值将以每个流派值的元组存在。 CK表示每个MovieName只有一个这样的对。所以在输入中只有一个体裁值。然后FK {} - > {体裁}将会成立。 BCNF意味着2NF,即对CK没有部分依赖关系,所以FK {} - > {Genre}不成立。所以我们有一个矛盾。所以JD不成立。所以这个关系是在4NF中,因为没有其他不重要的二进制JD可能会违反4NF。它也在5NF,因为没有超过两个元素可以容纳的JD。
[mcve] afadafasdfd – philipxy
- 1. 什么是规范化的CSS?
- 2. 什么是“系统使用规范”?
- 3. 多维空间的规范化,这是什么算法?
- 4. 做这种初始化的常规方法是什么?
- 5. MySQL - 文件系统规范化还是非规范化?
- 6. 非规范化关系数据lucene/solr
- 7. 规范化传递依赖关系
- 8. R是什么水平?
- 9. Java规范 - 什么是“有效”优化的规则
- 10. 这是什么样的关系?
- 11. 什么是'规范表'?
- 12. 是第三范式的这种关系吗?
- 13. 这是一个非规范化表吗?
- 14. 规范化与第三范式的关系
- 15. UML符号:这是什么关系?
- 16. 是什么?是指在W3C CSS规范的标记化部分?
- 17. 什么是客观化关系?
- 18. 这是什么CSS规则?
- 19. 反规范化意味着什么?
- 20. 表链,什么时候反规范化?
- 21. 确定什么是chlid的水平php
- 22. 水平线的类型是什么?
- 23. 什么是一个好的系统接口规范模板?
- 24. 如何格式化水平规则?
- 25. 这个B-Tree规范的节点结构是什么?
- 26. MSBuild .target文件规范(这是什么样的XML?)
- 27. 什么是这种东西的常规单线?
- 28. 各种Android OpenGL相关类之间的关系是什么?
- 29. Perforce中的分支规范是什么?
- 30. Markdown的规范实现是什么?
“因为”只保证BCNF。 – philipxy