第二范式是什么?

问题描述 投票:4回答:3

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

[1NF:表格被分开,因此没有一个项目会出现多次。

2NF:?

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

我从网上或书中的摘录中无法理解这一点。如何区分1NF和2NF?

database normalization
3个回答
3
投票

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


1
投票

Wikipedia说:

一个表在2NF中且仅当它在1NF中且每个非素数都在表的属性取决于整个候选者键或其他非主要属性。

为了解释这个概念,让我们使用一个表格来整理从Head First SQL改编而成的玩具清单:

TOY_ID| STORE_ID| INVENTORY| STORE_ADDRESS

主键由属性TOY_ID和STORE_ID组成。如果我们将非素数属性INVENTORY进行分析,则会看到in同时依赖于TOY_ID和STORE_ID。太酷了。

但是另一方面,非主要属性STORE_ADDRESS仅取决于STORE_ID属性(即,它与主键属性TOY_ID不相关)。这显然是对2NF的违反,因此要向2NF投诉,我们的架构必须像这样:

库存表:TOY_ID| STORE_ID| INVENTORY

和商店表:STORE_ID| STORE_ADDRESS


0
投票

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

对于第二范式,我们将考虑非素数属性,并查看是否应将它们移至另一个表。我们可能会发现,某些属性不需要完整密钥,因为我们可以识别至少一个候选密钥所拥有的值。也就是说,有一个候选键,即使删除了该候选键的一列中的值,我们仍然可以在给定候选键的情况下确定该属性的值。]

© www.soinside.com 2019 - 2024. All rights reserved.