这是我在1. Normal Form中的表,主键为Student_ID和Course_Nr:
对于处于第二范式的表,它不应该具有部分依赖性。
但是学生表中的列教师依赖于列号Co.Nr(Course Nr)。那不应该在一个单独的表(课程Nr#|老师)吗?
第二范式的定义要求在关系模式中,非主要属性不应该依赖于任何候选关键字的适当子集。
在第二个关系模式中,唯一的候选键是StudentId
,并且因为属性Teacher
依赖于CourseNumber
,它不是任何候选键的一部分,所以定义被尊重并且关系模式是第二范式。
显然存在冗余,因为关系不是第三范式(3NF),应该归一化。
实际上,第二范式不再被认为是重要的,并且仅仅出于历史原因进行描述,因为所有标准化技术旨在至少在第三范式或Boyce-Codd范式中引入关系模式。这是如此真实,以至于没有正式的算法来在第二范式中引入关系模式,而对于Third和Boyce-Codd Normal Forms有算法。