第二范式

第二范式(2NF),主要关注消除非主属性对候选关键字的部分函数依赖。

在数据库设计中,表中的列可以分为两种类型:主属性和非主属性。主属性是直接定义在关系的候选关键字上的属性,而非主属性则不是直接定义在关键字上的属性。

第二范式有两个重要的要点:

  1. 表必须符合第一范式,即每个属性都是原子的,不可再分。

  2. 非主属性必须完全依赖于关系的候选关键字。

简言之,第二范式要求在关系中,每个非主属性都必须完全依赖于关键字,而不能依赖于关键字的一部分。这就意味着如果一个表的候选关键字由多个属性组成,那么非主属性必须与所有这些属性都有关联,而不能只与其中的一部分属性相关。

以下是一个示例来说明第二范式的概念。一个学生成绩表,其中包含学生ID、课程ID和成绩:

学生ID 课程ID 成绩
1 101 90
1 102 85
2 101 88
2 102 92

在这个示例中,(学生ID,课程ID)是候选关键字,因为它们唯一标识了每个学生在每门课程中的成绩。这个表符合第一范式,因为每个属性都是原子的。

然而,这个表不符合第二范式,因为成绩属性部分依赖于候选关键字(学生ID,课程ID)。成绩属性依赖于学生ID和课程ID的组合,而不是它们的一部分。为了符合第二范式,可以将表拆分成两个表:一个存储学生信息,另一个存储成绩信息,以确保非主属性完全依赖于候选关键字。

你可能感兴趣的:(mysql)