为何下表为第二范式?

时间:2019-03-21 13:31:19

标签: database database-normalization

在这里以1.普通格式显示我的表,带有主键Student_ID和Course_Nr:

enter image description here

这是我的表格(格式为2): enter image description here

要使表格具有第二范式,它不应具有部分依赖性。

但是,student表中的Teacher列取决于Co.Nr列(Course Nr)。 那也不应该放在单独的表中吗(课程编号#|教师)?

1 个答案:

答案 0 :(得分:2)

“第二范式”的定义要求在关系模式中,任何非主属性都不应依赖于任何候选键的适当子集。

在第二个关系模式中,唯一的候选键是StudentId,并且由于属性Teacher依赖于CourseNumber,而它不是任何候选键的一部分,因此应遵循该定义并关系模式为第二范式。

由于关系不是第三范式(3NF),因此应该进行规范化,因此显然存在冗余。

实际上,第二范式不再重要,而只是出于历史原因对其进行描述,因为所有规范化技术都旨在将关系图式至少引入 表格或Boyce-Codd普通表格。的确如此,以至于没有正式的算法可以将关系模式带入第二范式,而有第三种和博伊斯-科德范式的算法。