根据wikipedia示例,以下示例不是bcnf,因为存在重叠的候选键(名称和工作,以及名称和承包商)
Name Work Contractor
John Plumber Plumber industries
Ryan Plumber Plumber industries
Ryan Elektrician Electro industries
但是,这张表还不在2NF吗?考虑Name和work组成主键, 那么承包商只能从工作中获得,所以应该拆分数据库吗?
如果我的陈述是真的,有人可以给我一个(简单)数据库的例子,该数据库不在BCNF中,但是是2NF吗?
答案 0 :(得分:3)
这个表也不在2NF中吗?
不,它不违反2NF。 2NF要求每个 nonprime 属性完全依赖于每个候选键。由于示例中的表没有nonprime属性,因此不能违反2NF。这是BCNF和2NF / 3NF之间的本质区别。 BCNF要求每个属性必须完全依赖于每个键。 2NF和3NF的较低正常形式仅需要非主要属性。
nonprime属性表示不属于任何候选键的属性。
答案 1 :(得分:0)
该表格为2NF。表可以有许多候选键。在我们的例子中,我们有两个。因此,没有非关键属性。这意味着所有都是主要/关键属性。工作确定唯一的承包商,同时承包商也确定唯一的工作。