什么是第二范式?

Chr*_*eta 4 database database-normalization

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

1NF:表格被划分,以便任何项目都不会出现多次。

2NF:我需要一个明确的定义

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

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

Car*_*ron 5

维基百科说:

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

为了说明概念,让我们使用一个改编自Head First SQL的玩具清单表:

TOY_ID| STORE_ID| INVENTORY| STORE_ADDRESS
Run Code Online (Sandbox Code Playgroud)

主键由属性TOY_ID和组成STORE_ID。如果我们分析非素数属性,INVENTORY我们会发现 int同时依赖于TOY_ID和。STORE_ID这很酷。

另一方面,非主属性STORE_ADDRESS仅依赖于属性STORE_ID(即它与主键属性无关TOY_ID)。这明显违反了 2NF,因此为了遵守 2NF,我们的模式必须如下所示:

库存表:TOY_ID| STORE_ID| INVENTORY

和一个存储表:STORE_ID| STORE_ADDRESS