数据库问题:什么是非平凡函数依赖?
答案:3 悬赏:10 手机版
解决时间 2021-12-01 05:20
- 提问者网友:流星是天使的眼泪
- 2021-11-30 20:48
数据库问题:什么是非平凡函数依赖?
最佳答案
- 五星知识达人网友:街头电车
- 2021-11-30 20:59
定义:设一个关系为R(U),X和Y为属性集U上的子集,若X→Y且X不包含Y,则称X→Y为非平凡函数依赖,否则若XY则必有X→Y,称此X→Y为平凡函数依赖.
例如:在一个职工关系中,职工号总能函数决定它本身,记作“职工号→职工号”,对于任一个给定的职工号,都有它本身的职工号值唯一对应,此为平凡函数依赖.又如:职工号和性别构成的属性子集总是能够函数决定其中的职工号或性别属性,可分别记作为“(职工号,性别)→职工号”和“(职工号,性别)→性别”,因为对于任何给定的一个元组中的职工号和性别的组合值,都唯一对应一个职工号值或性别值,不可能出现其他的职工号值或性别值,此种也为平凡函数依赖.
通常,主要讨论的是非平凡函数依赖,即X→Y且XY.如在职工关系中,职工号函数决定其他每个属性都是非平凡函数依赖,另外“(职工号,姓名)→性别”也是非平凡函数依赖,虽然在这里由决定因素中所含的职工号单属性就能够函数决定性别,而带有的姓名属性有些多余.
例如:在一个职工关系中,职工号总能函数决定它本身,记作“职工号→职工号”,对于任一个给定的职工号,都有它本身的职工号值唯一对应,此为平凡函数依赖.又如:职工号和性别构成的属性子集总是能够函数决定其中的职工号或性别属性,可分别记作为“(职工号,性别)→职工号”和“(职工号,性别)→性别”,因为对于任何给定的一个元组中的职工号和性别的组合值,都唯一对应一个职工号值或性别值,不可能出现其他的职工号值或性别值,此种也为平凡函数依赖.
通常,主要讨论的是非平凡函数依赖,即X→Y且XY.如在职工关系中,职工号函数决定其他每个属性都是非平凡函数依赖,另外“(职工号,姓名)→性别”也是非平凡函数依赖,虽然在这里由决定因素中所含的职工号单属性就能够函数决定性别,而带有的姓名属性有些多余.
全部回答
- 1楼网友:渊鱼
- 2021-11-30 23:20
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。
X称为这个函数依赖的决定属性集(Determinant)。
Y=f(x)
说明:
1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。
2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。
例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立
3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。
例: Student(Sno, Sname, Ssex, Sage, Sdept)
假设不允许重名,则有:
Sno → Ssex, Sno → Sage , Sno → Sdept,
Sno ←→ Sname, Sname → Ssex, Sname → Sage
Sname → Sdept
但Ssex -\→Sage
若X→Y,并且Y→X, 则记为X←→Y。
若Y不函数依赖于X, 则记为X-\→Y。
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y ?? X,则称X→Y是非平凡的函数依赖
若X→Y,但Y ?? X, 则称X→Y是平凡的函数依赖
例:在关系SC(Sno, Cno, Grade)中,
非平凡函数依赖: (Sno, Cno) → Grade
平凡函数依赖: (Sno, Cno) → Sno
(Sno, Cno) → Cno
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。
X称为这个函数依赖的决定属性集(Determinant)。
Y=f(x)
说明:
1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。
2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。
例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立
3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。
例: Student(Sno, Sname, Ssex, Sage, Sdept)
假设不允许重名,则有:
Sno → Ssex, Sno → Sage , Sno → Sdept,
Sno ←→ Sname, Sname → Ssex, Sname → Sage
Sname → Sdept
但Ssex -\→Sage
若X→Y,并且Y→X, 则记为X←→Y。
若Y不函数依赖于X, 则记为X-\→Y。
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y ?? X,则称X→Y是非平凡的函数依赖
若X→Y,但Y ?? X, 则称X→Y是平凡的函数依赖
例:在关系SC(Sno, Cno, Grade)中,
非平凡函数依赖: (Sno, Cno) → Grade
平凡函数依赖: (Sno, Cno) → Sno
(Sno, Cno) → Cno
- 2楼网友:廢物販賣機
- 2021-11-30 22:12
所谓函数依赖是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数y = f(x)一样x的值给定后,y的值也就唯一地确定了。
举几个例子,在学生表中(学号,姓名,年级),(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖.
通过(学号,姓名)可以推出这个学生所在的年级,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x')
通过属性学号就可以推出年级,说明年级完全依赖于学号,这就是完全函数依赖.
而(学号,姓名)虽然也可以推出年级,但是它的真子集姓名却推不出年级,这就是部分函数依赖,也叫不完全函数依赖.
举几个例子,在学生表中(学号,姓名,年级),(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖.
通过(学号,姓名)可以推出这个学生所在的年级,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x')
通过属性学号就可以推出年级,说明年级完全依赖于学号,这就是完全函数依赖.
而(学号,姓名)虽然也可以推出年级,但是它的真子集姓名却推不出年级,这就是部分函数依赖,也叫不完全函数依赖.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯