三范式
三范式都有哪些?举例说明具体含义 😏。
- 第一范式:原子性(不可分割)
- 第二范式:消除部分依赖
- 第三范式:消除传递依赖
举例:存在一张学生关系模型表,按照三范式去改进该模型,如下:
根据第一范式:字段 contact
联系方式还可划分为邮箱和联系电话,改进如下:
根据第二范式:当需要录入学生张三另一课程 856 的新成绩,除了把学生号 stu_id
,课程号 cou_no
,成绩 grade
,还需填张三的其他基本信息,你觉得该工作十分冗余。
你思考发现:成绩 grade
依赖于学生号 stu_id
和课程号 cou_no
才能唯一确定,而张三基本信息只依赖于学生号 stu_id
,于是你把该表分拆为两个表,改进如下:
通过消除部分依赖,你只需要录入学生号 stu_id
,课程号 cou_no
,成绩 grade
即可。
根据第三范式:又在录入同一个系的学生成绩时,发现系主任都是一样,即:学生号 stu_id
确定则系 stu_dept
确定,系 stu_dept
则系主任 dean
确定。你思考发现:系主任 dean
传递依赖于学生号 stu_id
,再次改进了关系模型,分拆为三个表描述,如下:
于是又减少了录入李主任的工作。