DingCL

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13106
这个作业的目标 第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

一、函数依赖的定义:

【例1】

Sid Sname Sdept
1001 李红 计算机
1001 李红 计算机
在这一个例子中,这三个字段组合成了属性集u的关系模式,
在这个关系中存在一个sid(x)唯一确定了sdept(y)的具体值,(查询sid为1001的学号,可以返回唯一一个sdept为计算机的结果)就称y函数依赖于x

【例1反例】

Sid Sname Sdept
1001 李红 计算机
1001 李红 自动化
在这一个例子中,这三个字段组合成了属性集u的关系模式,在这个关系中存在一个sid(x)不能唯一sdept(y)的具体值,(查询sid为1001的学号,可以返回一个sdept为计算机的结果,另外一个是sdept为自动化)就违反了函数依赖的定义,原因:(对于x的一个具体值,y有多个值与之对应)

二、类型

(1)平凡函数依赖和非平凡函数依赖
非平凡函数依赖:若Y函数依赖于X,且Y不属于X,则称X→Y为非平凡函数依赖
平凡的函数依赖:若X→Y,且Y属于X,则称X→Y为平凡的函数依赖

(2)完全函数依赖于部分函数依赖

  1. 完全函数依赖:在R(U)中,X→Y,且X的任何一个真子集X',都有Y不函数依赖于X',则称为Y对X完全函数依赖
    需要分两个情况理解:
    (1)X为单个属性值,这时候X→Y,那么这个关系必定为完全依赖关系。
    (2)X为属性组,也就是你用他的子集无法推导出Y,必须用整个X才行。
    2.部分函数依赖:一个关系模式R(U)中,X和Y为属性集U上的子集,如果X→Y,对与X的真子集Z来说,存在一个Z→Y,那么X→Y为部分函数依赖。

(3)传递函数依赖
传递函数依赖:在R(U)中,X→Y(Y不属于X),X不函数依赖于Y,Z函数依赖于Y,Z不属于Y,那么Z对X传递函数依赖
设R为任一给定关系,X、Y、Z 为其不同属性子集,也就是X、Y、Z为U的子集,若 X→Y,Y→X不成立,Y→Z,则有X→Z,称为Z传递函数依赖于X。
即:如果A→B,B→C,并且B!→A(防止直接→C),那么我们可以得出结论A→C,叫做C传递函数依赖A。
也就是说:通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么成C传递依赖于A
比如学号→系名,系名→系主任,并且(系名不能决定学号),所以系主任传递函数依赖学号。
说明:
①若 X→Y,且Y→X,则称x与Y等价,记作 X↔Y。
②若定义中Y→X成立,则x与Y等价,这时候称Z对X直接函数依赖,而不是传递函数。


三、思维导图

posted on 2023-11-19 14:02  DingCL  阅读(15)  评论(0编辑  收藏  举报