知识点一:函数依赖可分为完全函数依赖、部分函数依赖、传递函数依赖
完全函数依赖:关系R中,X、Y是属性集,X决定Y的值(X→Y),且任何一个X(子)都没办法决定Y的值
设一个学生选课信息的关系模式SC:
SNO | CNO | CTITLE | INAME | IPLACE | GRADE |
学号 | 课程编号 | 课程名 | 授课老师 | 老师办公地址 | 成绩 |
在此关系中,(学号,课程编号)决定成绩为完全依赖。即其中的单个属性(无论是学号还是课程编号)都无法决定成绩
部分函数依赖:关系R中,X、Y是属性集,X决定Y的值(X→Y),且X其中一个子集满足X(子)决定Y的值
设一个学生住宿登记关系S1:
SNO | SNAME | SSEX | SROOM |
学号 | 姓名 | 性别 | 宿舍 |
在此关系中,存在函数依赖(学号,姓名)决定性别,但其中
学号就已经决定了性别,所以函数依赖(学号,姓名)决定性别就是部分依赖
传递函数依赖:关系R中,X、Y、Z是属性集,X决定Y的值(X→Y),Y不决定X,Y决定Z的值(Y→Z),则有X决定Z(X→Z) 称Z传递函数依赖于X
设一个图书的关系模式BOOKS
BNO | PNAME | PADDRESS |
图书编号 | 出版社名 | 出版社地址 |
在此关系中一个图书编号对应一个出版社名,但一个出版社可能对应多个图书编号(一个出版社可出版多本图书),一个出版社只有一个地址,所以一个图书编号对应一个出版社地址,则有出版社地址对图书编号的传递函数依赖。
关键字:在关系R中,U是所有关系的集合,X完全依赖U,则X为R的一个候选关键字。
在学生选课的关系模式SC中,属性集(学号、课程编号)为候选关键字,于是学号和课程编号为主属性。