函数依赖

函数依赖是指关系中属性间(或者说是表中字段间)的对应关系。数据库

定义:设 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
    • 例如:书的出版编号是惟一,版权归出版社全部,因此只能由该出版社出版。因此存在函数依赖:书出版编号—>出版社名,出版社名—>出版社地址,可是出版社名不能决定惟一的出版书编号(除非出版社只出版过一本书,那我没话说🤣),则有出版社地址传递函数依赖于出版书编号

理解好函数依赖,对于理解关系数据库的三范式起到关键做用。get

相关文章
相关标签/搜索