第9次作业-知识点整理:关于函数依赖定义、函数依赖类型
这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13106
这个作业的目标 第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

目录
一.函数依赖的定义

  1. 定义
  2. 平凡函数依赖
  3. 函数依赖于属性之间联系的关系

二.函数依赖的逻辑蕴涵

  1. 逻辑蕴涵
  2. 闭包
    函数依赖的推导规则

三.完全函数依赖与部分函数依赖

  1. 完全函数依赖
  2. 部分函数依赖
  3. 传递函数依赖

四.候选键在函数依赖中的定义

  1. 定义
  2. 如何在函数依赖中寻找候选键

五.总结

一.函数依赖的定义

  1. 定义

  • 函数依赖是关系模式中,属性之间的逻辑依赖关系定义如下:
    设关系R(U,F),U是属性集,F是函数依赖集,令X、Y是U的两个子集
    对于任意R的一个关系r,X的每一个具体值,Y都有唯一值与之对应
    则,X决定函数Y,或Y函数依赖于X,记作X→Y(X是自变量,Y是因变量,一个X只能得到一个Y)

若且Y→X→YX,则X↔Y
不依赖则是在箭头上画上斜线
简单说,若X→Y,那么在关系r上任意两个元组,若ti[X] = tj[X],那么ti[Y] = tj[Y],在这里就要联想到函数的单映射和双映射了
函数依赖可以理解为属性之间的一种约束条件,它能够用于判断建立的关系表是否合理

  1. 平凡函数依赖

  • 若属性集Y是X的子集,则必然存在函数依赖X→Y,这种函数依赖就是平凡的函数依赖,其他类型的函数依赖就是非平凡的函数依赖
    这里是对属性集是否包含而言的,不是指属性的域的包含关系

例如:

在关系SC(Sno, Cno, Grade)中
非平凡函数依赖: (Sno, Cno) → Grade
平凡函数依赖: (Sno, Cno) → Sno,(Sno, Cno) → Cno
因为Sno包含于(Sno, Cno) 中,Cno包含于(Sno, Cno) 中

  1. 函数依赖于属性之间联系的关系

当X与Y有1:1联系时,一定有X↔Y
当X与Y有m:1联系时,有X→Y
当X与Y有m:n联系时,X、Y之间不存函数依赖

二.函数依赖的逻辑蕴涵

  1. 逻辑蕴涵

  • 设F是关系模式R的函数依赖集,X、Y是属性集U的子集,X→Y是一个函数依赖,若在F中,能够用其他函数依赖关系推导出X→Y,则X→Y为F的逻辑蕴涵,或F逻辑蕴涵X→Y,记作F|=X→Y
  1. 闭包

  • F是R的函数依赖集,被F逻辑蕴涵的函数依赖的集合称为F的闭包
    记作F+
    F+=

除了函数依赖集的闭包外,属性集也存在闭包运算,如下
属性集X的闭包X+ =

函数依赖的推导规则

定律名称 条件 结果
自反律 Y⊆X⊆U X→Y
增广律 X→Y,Z⊆U XZ→YZ
传递律 Y→Y,Y→Z X→Z
合并律 X→Y,X→Z X→YZ
伪传递律 X→Y,YW→Z XW→Z
分解律 X→Y,Z⊆Y X→Z
复合律 X→Y,W→Z XW→YZ

以上的XY这样的形式,不是离散中的集合求交集,而是将他们合并
此外如:Y⊆X,是Y中的属性是X中属性的子集,如Y(姓名,性别),X(姓名、性别、年龄),那么Y就⊆X

三.完全函数依赖与部分函数依赖

  1. 完全函数依赖

  • 若X→Y,且对于X的任意真子集X,都不满足X→Y,则Y对X完全函数依赖,记作
  1. 部分函数依赖

  • 若X→Y,且对于X的任意真子集X,存在X→Y,则Y对X部分函数依赖,记作

元组中其它属性对主键或其候选键都是完全函数依赖的
上述的X的子集,是指X属性集中的部分属性,而不是属性域的子集

  1. 传递函数依赖

  • X→Y,且Y→X不成立,而有Y→Z(其中Y不属于X,Z不属于Y),则有Z对X传递函数依赖,记作
  • 为什么不能有Y→X,是因为,如果这个条件成立,X→Z就不是传递得来的,而是直接能得到的
  • 属于关系不存在的限制也是一样,是为了排除平凡函数依赖

四.候选键在函数依赖中的定义

  1. 定义

U是关系R的属性集,若属性集X→U在R上成立,X是R的一个超键
在X是超键的基础上,若X的任一真子集X’ 都有
X’ →U不成立,那么X是R上的一个候选键
由此可知,其他所有属性对于候选键都是完全函数依赖的

  1. 如何在函数依赖中寻找候选键

对属性进行分类:

  • L类:只出现在→左边的属性,必为候选键之一,若X+包含了R的所有属性,则X是唯一的候选键
  • R类:只出现在→右边的属性,则它是非主属性
  • N类:在→两边都没出现过的属性,它是主属性
  • LR类:在→左右两边都出现过的属性,且X+包含了R的所有属性,则X是唯一的候选键

五.总结

函数依赖的主要作用是,在建立号关
系数据 表之后,可以通过它来对数据表进行检查,看是否符合规则
完全函数依赖域部分函数依赖的区别在于X的子集能否满足X’→Y
在求解函数依赖的闭包时,一定要全面,不能忘记F本身

posted on 2023-11-19 14:01  史迪仔ww  阅读(32)  评论(0编辑  收藏  举报