三范式

三范式都有哪些?举例说明具体含义 😏。

  1. 第一范式:原子性(不可分割)
  2. 第二范式:消除部分依赖
  3. 第三范式:消除传递依赖

举例:存在一张学生关系模型表,按照三范式去改进该模型,如下:

/images/三范式1.png
三范式

根据第一范式:字段 contact 联系方式还可划分为邮箱和联系电话,改进如下:

/images/三范式2.png
三范式

根据第二范式:当需要录入学生张三另一课程 856 的新成绩,除了把学生号 stu_id,课程号 cou_no,成绩 grade,还需填张三的其他基本信息,你觉得该工作十分冗余。

你思考发现:成绩 grade 依赖于学生号 stu_id 和课程号 cou_no 才能唯一确定,而张三基本信息只依赖于学生号 stu_id,于是你把该表分拆为两个表,改进如下:

/images/三范式3.png
三范式

通过消除部分依赖,你只需要录入学生号 stu_id,课程号 cou_no,成绩 grade 即可。

根据第三范式:又在录入同一个系的学生成绩时,发现系主任都是一样,即:学生号 stu_id 确定则系 stu_dept 确定,系 stu_dept 则系主任 dean 确定。你思考发现:系主任 dean 传递依赖于学生号 stu_id,再次改进了关系模型,分拆为三个表描述,如下:

/images/三范式4.png
三范式

于是又减少了录入李主任的工作。