第二范式(2NF)

要以第二种形式规范化数据库,主键上的任何列都不得有任何部分依赖关系。

让我们考虑以下示例:

ID 名称 DOB 学科
1 标记 1981 年 1 月 1 日 物理
2 插口 1982 年 2 月 2 日 数学
2 插口 1982 年 2 月 2 日 生物学
3 约翰 1983 年 3 月 3 日 数学

此表被视为具有复合主键( idsubject ),但* name 和 dob 列仅取决于 id ,而不取决于主题,因此它们对主键具有部分依赖性。结果,我们可以看到表中信息的冗余。要以第二种形式规范化数据库,我们必须将此表拆分为两个表,如下所示:

学生表

ID 名称 DOB
1 标记 1981 年 1 月 1 日
2 插口 1982 年 2 月 2 日
3 约翰 1983 年 3 月 3 日

主题表

学生卡 学科
1 物理
2 数学
2 生物学
3 数学

student_id 数据的列对象表是一个外键引用主键 ID 的的学生表。