第三范式(3NF)解释

问题描述 投票:-1回答:1

我试图理解数据库规范化,但被示例所困扰。

假设一张桌子(老师,学科),老师只能读一个学科。

teacher subject
-----------------
A       Math
B       Computer science
C       Math

教师字段是主键,FD教师->对象存在,该表似乎是3d范式。

但是如果我们将id列添加为行的新主键(而不是Teacher),>

id  teacher subject
--------------------
1    A       Math
2    B       Computer science
3    C       Math

然后该表的3 NF状态对我来说变得不明显。

据我所知3 NF的定义,不应存在由另一个非素数属性确定非素数属性的情况。但是在这里,我们在非主要属性的教师和科目之间有FD。我了解该表格仍处于3 NF中,但我不知道为什么。

我的假设是,当每个非素数属性都是由主键确定的非传递性时,我对3NF的定义是错误的,表为3 NF。 因此,在我的情况下,老师和主体都由id决定,这就是为什么非主要属性教师->主体存在之间的FD没有区别的原因。

您能否解释一下为什么添加id列不会导致3NF中断。

更新。在发表哲学评论后,我意识到定义和术语一团糟。

假设3NF的Wiki定义是正确的

第三范式(3NF)是:

  • 该实体为第二范式。
  • 没有非主要(非密钥)属性可传递地依赖于任何密钥,即,没有任何非主要属性均不依赖于其他非主要属性。所有非素数属性必须仅取决于候选键。

由于id->科目不是FD教师中的传递FD的结论->主题教师属性是候选关键字。因此,我们对任何键都没有非质数(非键)属性的传递依赖,并且该表位于3NF中。

我试图理解数据库规范化,但被示例所困扰。假设有一张桌子(老师,学科),老师只能读一个学科。教师科目----------------- A ...

database database-normalization 3nf
1个回答
0
投票

让我对philipxy

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