3

我对这些的非正式表示是:

1NF:表格被划分,因此没有项目会出现超过一次。

2NF:?

3NF:值只能由主键确定。

我无法从我在网上或书中找到的摘录中理解它。如何区分 1NF 和 2NF?

4

3 回答 3

3

如果每个非主属性在功能上完全依赖于每个键,则关系模式属于 2NF。

于 2012-04-11T20:58:08.220 回答
2

维基百科说:

一个表在 2NF 中当且仅当它在 1NF 中并且表的每个非主属性要么依赖于整个候选键,要么依赖于另一个非主属性。

为了解释这个概念,让我们使用一张表来表示根据Head First SQL改编的玩具清单:

TOY_ID| STORE_ID| INVENTORY| STORE_ADDRESS

主键由属性 TOY_ID 和 STORE_ID 组成。如果我们分析非主属性 INVENTORY,我们会看到它同时依赖于 TOY_ID 和 STORE_ID。这很酷。

但另一方面,非主属性STORE_ADDRESS 只依赖于STORE_ID 属性(即与主键属性TOY_ID 无关)。这明显违反了 2NF,所以要向 2NF 投诉,我们的模式必须是这样的:

库存表:TOY_ID| STORE_ID| INVENTORY

和一个存储表:STORE_ID| STORE_ADDRESS

于 2012-04-11T21:14:43.163 回答
0

某些列是键的一部分(主要或次要)。我们称这些主要属性。

对于第二范式,我们将考虑非主属性,看看是否应该将它们移动到另一个表中。我们可能会发现某些属性不需要完整的键,我们就能够识别它们对至少一个候选键持有什么值。也就是说,有一个候选键,即使该候选键的一列中的值被删除,我们仍然可以在给定候选键的情况下确定该属性的值。

于 2020-05-04T06:54:02.900 回答