函数依赖
函数依赖是指关系中属性间(或者说是表中字段间)的对应关系。
定义:设 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
- 例如:学生学号和姓名可以决定唯一的学生,但是学生号也可以决定唯一的学生
- 传递函数依赖
- 定义:设 R 为任一给定关系, X Y Z 为其不同的属性子集,若 X —> Y, Y 不决定 X 且 Y —>Z,则有 X —>Z,称为 Z 传递函数依赖于 X
- 例如:书的出版编号是唯一,版权归出版社所有,所以只能由该出版社出版。所以存在函数依赖:书出版编号—>出版社名,出版社名—>出版社地址,但是出版社名不能决定唯一的出版书编号(除非出版社只出版过一本书,那我没话说
相关阅读
一、函数依赖(Functional Dependency)的概念函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界