如何理解非平凡且非函数依赖的多值依赖

2021-03-11 09:00:54 字数 4677 阅读 2188

1楼:**有毒

概念楼上有

bai了,我举个例子。

du函数依赖:zhi一夫一妻制下,我只能dao有一个老内婆,所以我决容

定了我的老婆,反之亦然,这就是函数依赖。

多值依赖:我有3个女朋友,5栋房子。女朋友多值依赖于我,房子也多值依赖于我,因为他们各自的选择与另一者无关(选定房子只与我有关,与女朋友无关,另一组同样)。

平凡的多值依赖:未成年人不允许有女朋友,但是可以有5栋房子,即女朋友为空集,这种情况就是平凡的多值依赖。

非平凡非函数依赖的多值依赖:女朋友不是老婆。

2楼:匿名用户

多值依赖的定义: 设r(u)是一个属性集合u上的一个关系模式,x, y, 和z是u的子集,并且回z=u-x-y,多值依赖x->->y成立当答且仅当对r的任一个关系r,r在(x,z)上的每个值对应一组y的值,这组值仅仅决定于x值而与z值无关。 若x->->y,而z=空集,则称x->->y为平凡的多值依赖。

否则,称x->->y为非平凡的多值依赖。 可以看出,如果把上面的一组改为一个,那么多值依赖就变成了函数依赖。当然一个值组成的组也是组,所以说,函数依赖是多值依赖的特殊情况。

如下表:

数据库问题:什么是非平凡函数依赖?

3楼:匿名用户

定义:设一个关系为r(u),x和y为属性集u上的子集,若x→y且x不包含y,则称x→y为非平凡函数依赖,否则若xy则必有x→y,称此x→y为平凡函数依赖.

例如:在一个职工关系中,职工号总能函数决定它本身,记作“职工号→职工号”,对于任一个给定的职工号,都有它本身的职工号值唯一对应,此为平凡函数依赖.又如:

职工号和性别构成的属性子集总是能够函数决定其中的职工号或性别属性,可分别记作为“(职工号,性别)→职工号”和“(职工号,性别)→性别”,因为对于任何给定的一个元组中的职工号和性别的组合值,都唯一对应一个职工号值或性别值,不可能出现其他的职工号值或性别值,此种也为平凡函数依赖.

通常,主要讨论的是非平凡函数依赖,即x→y且xy.如在职工关系中,职工号函数决定其他每个属性都是非平凡函数依赖,另外“(职工号,姓名)→性别”也是非平凡函数依赖,虽然在这里由决定因素中所含的职工号单属性就能够函数决定性别,而带有的姓名属性有些多余.

4楼:匿名用户

所谓函数依赖是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数y = f(x)一样x的值给定后,y的值也就唯一地确定了。

举几个例子,在学生表中(学号,姓名,年级),(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖.

通过(学号,姓名)可以推出这个学生所在的年级,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x')

通过属性学号就可以推出年级,说明年级完全依赖于学号,这就是完全函数依赖.

而(学号,姓名)虽然也可以推出年级,但是它的真子集姓名却推不出年级,这就是部分函数依赖,也叫不完全函数依赖.

5楼:匿名用户

设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, s***, sage, sdept)

假设不允许重名,则有:

sno → s***, sno → sage , sno → sdept,

sno ←→ sname, sname → s***, sname → sage

sname → sdept

但s*** -\→sage

若x→y,并且y→x, 则记为x←→y。

若y不函数依赖于x, 则记为x-\→y。

在关系模式r(u)中,对于u的子集x和y,

如果x→y,但y

数据库里的理论部分,非平凡函数依赖和部分函数依赖有什么区别?我感觉是一样的,谁帮我举例分析分析。

6楼:沈伟栋

定义:设一个关系为r(u),x和y为属性集u上的子集,若x→y且x不包含y,则称x→y为非平凡函数依赖,否则若xy则必有x→y,称此x→y为平凡函数依赖。

例如:在一个职工关系中,职工号总能函数决定它本身,记作“职工号→职工号”,对于任一个给定的职工号,都有它本身的职工号值唯一对应,此为平凡函数依赖。

部分函数依赖(partial functional dependency)是一个数学用语。 在关系模式r(u)中,如果x→y,并且存在x的一个真子集x0,使得x0→y,则称y对x部分函数依赖。

例如 : 在关系模式student中,因为sno不能函数决定grade,**o也不能函数决定grade,但(sno,**o)可以唯一地函数决定grade,所以(sno,**o)→grade是完全函数依赖。因为sno可以函数决定sage,所以(sno,**o)→sage是部分函数依赖。

扩展资料

函数依赖简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。

函数依赖是由数学派生的术语,它表征一个属性或属性集合的值对另一个属性或属性集合的值的依赖性。需要强调的是,函数依赖是关系所表述信息本身具有的语义特性,而不能由属性构成关系的方式来决定,也不能由关系的当前内容所决定。

7楼:满天海晨星

非平凡函数依赖:设一个关系为r(u),x和y为属性集u上的子集,若x→y且x不包含y,则称x→y为非平凡函数依赖。

平凡函数依赖:(接上非平凡函数依赖定义)若y包含于x,则称x→y称为平凡函数依赖。

部分函数依赖:设x,y是关系r的两个属性集合,存在x→y,若x’是x的真子集,存在x’→y,则称y部分函数依赖于x,此处的x'是有可能和y相等的,也就是说y有可能包含于x,而此时也就成了平凡函数依赖。

所以呢非平凡函数依赖和部分函数依赖的区别就在于x包不包含y,也就是y是不是x的子集的区别。

8楼:匿名用户

五年后保证你会忘得一干二净,建议把概念背下来就行了,应付下考试

试举例说明为什么分解规则在函数依赖中成立,而在多值依赖中不成立

9楼:天马行空设计

1.数据依赖

数据依赖指的是通过一个关系中属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。

2.函数依赖

设x,y是关系r的两个属性集合,当任何时刻r中的任意两个元组中的x属性值相同时,则它们的y属性值也相同,则称x函数决定y,或y函数依赖于x。

3.平凡函数依赖

当关系中属性集合y是属性集合x的子集时(y?x),存在函数依赖x→y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。

4.非平凡函数依赖

当关系中属性集合y不是属性集合x的子集时,存在函数依赖x→y,则称这种函数依赖为非平凡函数依赖。

5.完全函数依赖

设x,y是关系r的两个属性集合,x’是x的真子集,存在x→y,但对每一个x’都有x’!→y,则称y完全函数依赖于x。

6.部分函数依赖

设x,y是关系r的两个属性集合,存在x→y,若x’是x的真子集,存在x’→y,则称y部分函数依赖于x。

7.传递函数依赖

设x,y,z是关系r中互不相同的属性集合,存在x→y(y !→x),y→z,则称z传递函数依赖于x。

:数据库原理及应用

请教四范式数据库的具体应用例子

10楼:匿名用户

例如关系模式test(课程,参考书),课程->->参考书,即参考书多值依赖于课程,例如课程物理可以有参回考书普通物理学或光学答物理等。

这种依赖是属于平凡的多值依赖。

2nf消除了非主属性对码的部分函数依赖;

3nf消除非主属性对码的传递函数依赖;

b**f消除主属性对码的部分和传递函数依赖;

4nf消除非平凡且非函数依赖的多值依赖。

上面的关系模式test主码是(课程、参考书),是一个全码;

没有非主属性,属于2nf和3nf;

除了码本身没有其它主属性,属于b**f;

没有非平凡且非函数依赖的多值函数依赖,只有一个平凡的多子函数依赖,所以属于4nf。

函数依赖与多值依赖的关系是什么

11楼:

多值依赖:y->->x 且x存在t[x]和u[x]通俗点讲:

"多值依赖"说白了就是"一夫多妻"制 一个男人[y]可以有老婆[x]但是老婆可以是t[x]和u[x]就是两个人或者多个

"函数依赖"就是"一夫一妻"制一个男人只能有老婆但是只能是一个人由上可理解"一夫一妻"制也是"一夫多妻"的一种因为"一夫多妻"你可以只能娶一个老婆

"函数依赖"就是"多值依赖"的特殊情况

函数依赖与多值依赖的关系是什么,数据库函数依赖与多值依赖区别?帮帮忙…!

1楼 多值依赖 y x 且x存在t x 和u x 通俗点讲 多值依赖 说白了就是 一夫多妻 制 一个男人 y 可以有老婆 x 但是老婆可以是t x 和u x 就是两个人或者多个 函数依赖 就是 一夫一妻 制一个男人只能有老婆但是只能是一个人由上可理解 一夫一妻 制也是 一夫多妻 的一种因为 一夫多妻...