求候选键
- 找入度为0的属性
- 如果不满足上面的条件,则尝试便利中间节点(既有入度,也有出度),并入上面的条件,直至该集合能便利所有节点
部分函数依赖
如果候选键是一个合集,且一部分非主属性依赖于候选键的一部分,为部分函数依赖
传递函数依赖
A-> B,B->C 则 A->C
Armstrong 公里
自反率
Y∈X∈U
U={ABC}
X={AB}
Y={A}
则,X-> Y
身份证号与姓名 可以确认姓名,身份证号也可以确认姓名.
增广律
若 Z ∈ U 且 X->Y,则 XZ->YZ
传递率
A-> B,B->C 则 A->C
学号可以推出系号,系号可以推出系名,那么学号可以推出系名
合并规则
如果 X->Y,X->Z 则 X->YZ
伪传递规则
如果 X->Y,WY->Z,则WX->Z
分解规则
如果 X-Y 且 Z ∈ Y,则 X-> Z
范式
第一范式
属性都是不可分的原子值
第二范式
消除非主属性对候选键的部份依赖
单属性候选键不会出现这类问题,只有候选键可能存在这种可能
完全依赖于主键,不存在部分依赖
学号、课程号、成绩、学分
学号,课程号-> 成绩
课程号-> 学分
没有课程的情况下,无法插入学分信息
如果课程没有人报名,那么没有课程信息
解决办法:将课程号与学分单独提取到一张表
第三范式
消除非主属性对候选键的传递依赖
学校、身份证号、系号、系名 满足第三范式,因为不存在对非主属性的传递依赖
学号、姓名、系号、系名
学号-> 系号
系号-> 系名
学号-> 系名
其中系名依赖于非主属性系号,所以存在对非主属性的传递依赖,不满足第三范式
解决办法:系号、系名 单独组表
BC范式
完全依赖于候选键
不解决