候选码
某一属性的值能唯一标识一个元组,而其子集不能,则称该属性组为候选码。若一个关系中有多个候选码,则选定其中一个为主码。
例如下图所示的学生表中,学号和姓名都可以唯一标识一个元组,故该表的候选码为学号和姓名,我们可以随便选定其中一个作为主码
学号 | 姓名 | 年龄 | 性别 |
---|---|---|---|
001 | 张三 | 20 | 男 |
002 | 李四 | 20 | 男 |
003 | 王五 | 20 | 男 |
主属性
所有候选码的属性称为主属性。
不包含在任何候选码中的属性称为非主属性或非码属性
在上面的学生表中,学号和姓名就是该关系的主属性,年龄和性别就是非主属性。
函数依赖
设R为任一给定的关系,如果对于R中属性X的每一个值,R中属性Y只有唯一值与之对应,则称X函数决定Y或Y函数依赖于X,记作X→Y。其中X称为决定因素。
通俗一点,就是给定一个X都有唯一的Y。可以理解为函数 y = f(x);对于任意的x都有一个y,且y的取值有x决定。
例如:学号可以唯一确定一个学生的年龄、姓名等信息。
完全函数依赖
如果存在X属性组(注意是组,说明是主键)决定唯一的Y,但X中的任意子集却不能决定唯一的Y,则Y完全依赖于X.
例如:学生的成绩由学生与课程共同决定。所以成绩完全依赖于学生和课程
部分函数依赖
与完全函数依赖相反:如果存在X属性组(注意是组,说明是联合主键)决定唯一的Y,且X中的任一子集都能决定唯一的Y,则Y部分依赖于X。
例如:在没有同名的情况下,学号与姓名都可以决定一个学生的年龄、性别等信息。
传递函数依赖
设R为任一给定关系,X Y Z 为其不同的属性子集,若X→Y且Y→Z,则有X→Z,称为Z传递函数依赖于X
例如:学号可以唯一确定一个系部,且系部可以唯一确定一个系主任。
什么是范式
范式来自英文Normal form,简称NF。要想设计一个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,这就是我们俗称的范式。范式分成几个等级,一级比一级要求更严格。
范式的分类
第一范式(1NF)
强调属性的原子性,即属性不可再分。
第二范式(2NF)
第二范式必须满足第一范式
第二范式是指每个关系必须有一个(有且仅有一个)数据项作为主键,其他数据项与主键一一对应,即其他数据项完全依赖于主键。由此可知单主属性的关系均属于第二范式。