gpt4 book ai didi

relational-database - 2NF和BCNF的区别

转载 作者:行者123 更新时间:2023-12-04 08:06:04 24 4
gpt4 key购买 nike

根据维基百科示例,以下示例不是 bcnf,因为存在重叠的候选键(姓名和工作,姓名和承包商)

Name   Work        Contractor
John Plumber Plumber industries
Ryan Plumber Plumber industries
Ryan Elektrician Electro industries

但是,这张表不也不是2NF吗?考虑 Name 和 work 构成主键,
那么contractor可以只导出work,所以数据库要拆分吗?

如果我的陈述是真的,有人可以为我提供一个(简单的)数据库示例,该示例不在 BCNF 中,而是在 2NF 中?

最佳答案

isn't this table also not in 2NF?



不,它不违反2NF。 2NF 要求每个非主属性完全依赖于每个候选键。由于您示例中的表没有非素数属性,因此它不会违反 2NF。这就是BCNF和2NF/3NF的本质区别。 BCNF 要求每个属性都必须完全依赖于每个键。 2NF 和 3NF 的低范式只需要非素数属性。

非主要属性是指不属于任何候选键的属性。

关于relational-database - 2NF和BCNF的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com