【数据库】函数依赖

前言

 趁热打铁,多了解一点知识!下面是我的理解,若有错误还望指出!

定义

完全函数依赖

  • 在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’ \→ Y,则称Y对X完全函数依赖。
  • 示例
    S#——学号;C#——课程号;GRADE——分数
    在关系R(U)(S#,C#,GRADE)中,S# \→ C#,S# \→ GRADE,在这里单个的属性不能作为决定因素,但属性的组合可以作为决定因素。
    即(S#,C#)→ GRADE
    注意:S# \→ C#,为什么呢?因为,一个学生可以选多门课程,同理S# \→ GRADE,C# \→ GRADE

部分函数依赖

  • 若X→Y ,但Y不完全函数依赖于X,则称Y对X部分函数依赖。

传递函数依赖

  • 在R(U)中,如果X→Y,(Y∉X),Y \→ X,Y→Z,则称Z对X传递函数依赖。

函数依赖

  • 函数依赖
    设R(U)是属性集U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y
  • 示例
    (集合)U={SNO,SNAME,AGE,DEPT}
    R(U)为:(关系模式)Student{SNO,SNAME,AGE,DEPT}
    | SNO | SNAME | AGE | DEPT
    |:---------|:------------- | ----------
    | 001 | 张三 | 22 |计算机
    | 002 | 李四 | 20 |计算机
    | 003 | 王五 | 21 |中文
    | 004 | 赵六 | 21 |英语
    设:X={SNO}
      Y={AGE}
      Z={DEPT}
    若r1为SNO与AGE之间的联系,则有r1的元组为:
    | X(SNO)| Y(NAME) |
    |:---------|:------------- |
    | 001(第一个元组) | 22 |
    | 002(第二个元组) | 20 |
    | 003(第三个元组) | 21 |
    | 004(第四个元组) | 21 |
    因为第一个元组与第二、第三、第四个元组在X部分不等,同理推论,任意两组之间X部分没有出现相等,Y部分不相等,所以就可以确定X和Y是一种函数依赖关系。
    若r2为AGE与DEPT之间的联系,则有r2的元组为:
    | Y(NAME)| Z(DEPT) |
    |:---------|:------------- |
    | 22(第一个元组) | 计算机 |
    | 20(第二个元组) | 计算机 |
    | 21(第三个元组) | 中文 |
    | 21(第四个元组) | 英语 |
    通过观察我们发现第三个元组和第四个元组在Y部分相等,而在Z部分不等,这说明Y→Z函数依赖关系不成立
    综上:理解的最通俗一点的函数依赖关系和我们之前所学的数学函数大同小异,X中的任意一个元素在Y中都有唯一确定的值与之对应,也就是说,Y中可以有重复,但是X中不可以有重复。
    综上就是:在函数关系中,可以“多(X)对一(Y),不可一(X)对多(Y)”;换句话说就是X能不能唯一确定Y,如果能,则为函数依赖关系,反之,则不是。

小结

 刚开始学这个的时候可能会难理解一些,但是自己逐渐的去理解,也就会慢慢的懂那么一丢丢呦,心急吃不了热豆腐,一步一步来吧,我觉得这一块学习和数学的关联度挺大的呀~

你可能感兴趣的:(#,数据库)