MySQL关系规范化
作者:就叫易易好了
时间:2020/10/21
指导老师:桃群老师
一、关系规范化
1、函数依赖
什么是函数依赖?比如学生管理系统数据库,有学生姓名(Sname)、学生系名(Sdept)、学生学号(Sno)等等。一个学号只能唯一确定一个学生,一个学生只在一个系学习。所以,当“学号”确定后,学生姓名和该学生所在系也被唯一确定了。
这时我们可以说
Sno函数决定Sname和Sdept,或者说Sname,Sdept函数依赖于Sno
可记作:Sno->Sname,Sno->Sdept
1.1 完全函数依赖
在R(U)中,若X->Y,并且对于X的任意一个真子集X’,都有Y不依赖于X’,那么称Y对X完全函数依赖
比如一个学生的学号和课程号才能共同决定一个学生该门课的成绩,即(Sno,Cno)->Grade,但X的真子集为Sno或者Cno,他们无法单独决定该门课的成绩,所以学号和课程号完全函数依赖成绩
2.2 部分函数依赖
在R(U)中,若X->Y,对于X的任意一个真子集X’,有Y依赖于X’ ,那么称Y对X部分函数依赖。
比如(Sno,Cno)->Sname,X的真子集Sno和Cn都能单独决定学生姓名,所以学号和课程号部分函数依赖学生姓名。
2.3 传递函数依赖
在R(U)中,如果Y依赖于X,X不依赖于Y,Z依赖于Y,则称Z对X传递函数依赖;