数据库的三范式(Normalization)是用于设计关系型数据库的标准,旨在减少数据冗余和提高数据一致性。三范式包括以下内容:

1.第一范式(1NF)

定义:一个表格符合第一范式,如果它的每个字段都是原子的,即每个字段的值都是不可再分的基本数据项。

要求

  • 每列中的数据必须是不可分割的原子值。
  • 每行必须是唯一的,可以通过主键来标识。

示例: 不符合 1NF 的表:

学生ID 姓名 课程
1 张三 数学, 语文

符合 1NF 的表:

学生ID 姓名 课程
1 张三 数学
1 张三 语文

2.第二范式(2NF)

定义:一个表格符合第二范式,如果它首先符合第一范式,并且所有非主键列完全依赖于主键,而不是部分依赖。

要求

  • 消除部分依赖,即非主键属性必须依赖于整个主键,而不是主键的一部分。

示例: 不符合 2NF 的表:

学生ID 课程 教师
1 数学 李老师
1 语文 王老师

在这个例子中,教师依赖于课程而不是学生ID,因此存在部分依赖。

符合 2NF 的表:

学生ID 课程
1 数学
1 语文
课程 教师
数学 李老师
语文 王老师

3.第三范式(3NF)

定义:一个表格符合第三范式,如果它首先符合第二范式,并且所有非主键列都不传递依赖于主键

要求

  • 消除传递依赖,即非主键属性不能依赖于其他非主键属性。

示例: 不符合 3NF 的表:

学生ID 课程 教师 教师办公室
1 数学 李老师 A101
1 语文 王老师 A102

在这个例子中,教师办公室依赖于教师,存在传递依赖。

符合 3NF 的表:

学生ID 课程 教师
1 数学 李老师
1 语文 王老师
教师 教师办公室
李老师 A101
王老师 A102

总结

  • 第一范式:确保数据的原子性
  • 第二范式:确保所有非主键列完全依赖于主键
  • 第三范式:确保非主键列之间没有传递依赖

通过遵循这些范式,可以设计出更高效、灵活和一致的数据库结构,减少数据冗余和异常。