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

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

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

一、函数依赖的定义:

设R(U)是属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称X函数决定Y,或Y函数依赖于X,记作 X→Y

【例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.完全函数依赖

定义:设R是一个具有属性集合U的关系模式,X和Y是U的子集。
如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X,记作xfy

完全函数依赖是指:x作为一个整体依赖于y, 而且不是x的一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X;
举例: 学号————Sid课号————Cid组合在一起可以决定某个同学的某科成绩————Cscore,(Sid,Cid)→ Cscore,在此处起决定因素的是(Sid,Cid),对应上图中的X,Sid,Cid分别对应ZCscore对应Y.

2.部分函数依赖

定义:如果X→Y,并且对于X的任何一个真子集Z,Z→Y都成立,则称Y部分函数依赖于X,记作xpy

部分函数依赖是指:x作为一个整体,x中的任何一个真子集z依赖于y,Z→Y都成立,则称Y部分函数依赖于X;
举例: 学号————Sid课号————Cid组合在一起可以决定某个同学的院系————Dname,(Sid,Cid)→Dname,我们既可以通过sid推出Dname,通过学号推出该学生是哪个院系(Sid→Dname),也可以通过他所学的课程推算出该课程属于哪个院系(Cid→Dname)。我们只需要x中的一个真子集z(任意一个都可以)就可以推出一个y。

3.传递函数依赖

定义:设R是一个具有属性集合U的关系模式,X、Y、Z是U的子集,且X、Y、Z是不同的属性集。如果X→Y,Y→X不成立,Y→Z,则称Z传递函数依赖于X,记作xty


举例: 存在一个关系模式Students(Sid-学号,Sname-学生姓名,Dname-院系名称,Ddirector-院长,Cid-课程id,Cname-课程名称,Cscore-课程分数).我们可以通过Sid→Dname,但是Dname→Sid是不成立的,然而Dname→Ddirector就可以称Ddirector传递函数依赖Sid

三、思维导图

posted @ 2023-11-16 19:14  计科升本3班刘硕  阅读(71)  评论(0)    收藏  举报