数据库函数依赖
@author:Jingdai
@date:2021.04.24
函数依赖
设 R ( U ) R(U) R(U)是属性集合 U = { A 1 , A 2 , . . , A n } U=\{A_1,A_2,..,A_n\} U={A1,A2,..,An}上的一个关系模式, X X X、 Y Y Y是 U U U上的两个子集,若对 R ( U ) R(U) R(U)的任意一个可能的关系 r r r, r r r中不可能有两个元组满足在 X X X中属性值相等而在 Y Y Y中属性值不等,则称“ X X X函数决定 Y Y Y”或者“ Y Y Y函数依赖于 X X X”,记做 X X X→ Y Y Y。
示例:
U = {学号, 姓名, 年龄, 班号, 班长, 课号, 成绩}
则: 学号 → {姓名, 年龄}
班号 → 班长
特性:
- 若 X X X→ Y Y Y且 Y Y Y∉ X X X,则称 X X X→ Y Y Y是非平凡的函数依赖。(即 Y Y Y中有不被 X X X包含的属性)
- 若 X X X→ Y Y Y,则对于任意两个元组,若 X X X上的值相等,则 Y Y Y上的值一定相等。
- 若一个关系 r r r的某一个属性集 X X X, r r r中没有 X X X上相等的两个元组存在,则 X X X→ Y Y Y恒成立。
完全函数依赖/部分函数依赖
在 R ( U ) R(U) R(U)中,若 X X X→ Y Y Y并且对于 X X X的任何真子集 X ′ X' X′都有 X ′ X' X′不函数决定 Y Y Y,则称 Y Y Y完全函数依赖于 X X X,否则称 Y Y Y部分函数依赖于 X X X。
传递函数依赖
在 R ( U ) R(U) R(U)中,若 X X X→ Y Y Y, Y Y Y→ Z Z Z且 Y Y Y∉ X X X, Z Z Z∉ Y Y Y, Z Z Z∉ X X X, Y Y Y不函数决定 X X X,则称 Z Z Z传递函数依赖于 X X X。
候选键
设 K K K是 R ( U ) R(U) R(U)的属性或者属性组合,如果 K K K完全函数决定 U U U,则称 K K K为 R ( U ) R(U) R(U)上的候选键。
- 可以任选一个候选键作为 R R R的主键。
- 包含在任一候选键中的属性称为主属性,其它属性称为非主属性。
外来键
若 R ( U ) R(U) R(U)中的属性或属性组合 X X X并非 R R R的候选键,但是 X X X却是另一关系的候选键,则称 X X X为 R R R的外来键,简称外键。一个关系的外键是另一个关系的候选键。
参考
- 哈尔滨工业大学 数据库系统 MOOC - 战德臣