数据库范式:减少数据冗余 数据库范式:减少数据冗余今天开始学习数据库设计中最重要的理论——范式(Normal Form)。范式是一套规则,帮我们设计出结构合理的数据库,避免数据冗余和各种异常问题。一、为什么需要范式1.1 先看一个"反面教材"假设我们这样设计一张"学生选课表":| 学号 | 姓名 | 院系 | 院系主任 | 课程号 | 课程名 | 成绩 | |------|------|------|---------|--------|--------|------| | 001 | 张三 | 计算机 | 王教授 | C01 | 数据库 | 90 | | 001 | 张三 | 计算机 | 王教授 | C02 | 操作系统| 85 | | 002 | 李四 | 数学 | 李教授 | C01 | 数据库 | 78 |这张表存在什么问题?1.2 四大异常问题数据冗余:"张三、计算机、王教授"重复出现了2次"C01、数据库"也重复了浪费存储空间插入异常:想新增一个院系"物理系"(主任赵教授),但该系还没有学生 → 无法插入(学号是主键的一部分,不能为空)