数据库范式
在数据库设计中,范式(Normal Form)是一组规则,用于优化关系型数据库的结构,减少数据冗余、避免数据异常(如插入、更新和删除异常),并确保数据的一致性和完整性。范式从第一范式(1NF)开始,逐步严格化到更高级别的范式,如第二范式(2NF)、第三范式(3NF)和Boyce-Codd范式(BCNF)。下面我将一步步解释这些范式,并用简单示例说明。
第一范式(1NF)
第一范式是最基本的范式要求:每个属性(列)的值必须是原子的(不可再分),且表中没有重复的组。这意味着:
- 每个单元格只包含一个值,不能是集合或数组。
- 表必须有主键(唯一标识每行的列)。
示例:考虑一个学生选课表。如果初始设计如下:
学号 | 学生姓名 | 课程 |
---|---|---|
001 | 张三 | 数学, 英语 |
002 | 李四 | 物理 |
这违反了1NF,因为“课程”列包含多个值。规范化后,拆分为:
学号 | 学生姓名 | 课程 |
---|