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

这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13106
这个作业的目标 第9次作业-知识点整理:关于函数依赖定义、函数依赖类型
思维导图发布地址 https://www.mubu.com/doc/zDHbbOXTiF

(一)函数依赖的定义

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

函数依赖的说明
1.函数依赖关心的问题是一个或一组属性的值决定其它属性的值。
2.函数依赖不是指关系模式R的某个或某些元组满足的约束条件,而是指R的所有元组均要满足的约束条件,不能部分满足。
3.函数依赖不是指关系模式R的某个或某些元组满足的约束条件,而是指R的所有元组均要满足的约束条件,不能部分满足。

(二)函数依赖的类型

完全函数依赖:

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

理解:
如果我想知道某位学生的某一门课的成绩Grade,那我必须得同时知道他的学号Sno和课程号Cno。但如果我只知道一部分信息,比如他的Sno或者Cno可以吗?答案是不行的!此时称Y[Grade]完全依赖于X[Sno,Cno]。
image

部分函数依赖:

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

如果我想知道某位学生的姓名Sname,那我知道他的学号Sno就可以了。也就是说Y[Sname]只函数依赖于X[Sno,Cno]中的子集x[Sno],此时称Y部分函数依赖于X。

image

传递函数依赖:

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

理解:
如果我知道了一个学生的学号Sno,那我就能知道他所在的系Sdept。(因为理论上一个学生只属于一个系)
如果我知道了某一个系Sdept,那么我就能知道这个系的系主任的姓名Mname。(一个系只有一个正的系主任,别杠,你赢了。)
也就是说,我知道了一个学生的学号Sno,其实我就知道了他所在系的系主任的姓名Mname。但这个过程中,他们是不存在直接函数依赖的,我需要通过系名称Sdept作为一个桥梁去把二者联系起来的。
image

posted @ 2023-11-15 20:38  Sss~~  阅读(103)  评论(0)    收藏  举报