
若对于R(U)的任意两个可能的关系r1、r2,若r1[x]=r2[x],则r1[y]=r2[y],或者若r1[x]不等于r2[x],则r1[y]不等于r2[y],称X决定Y,或者Y依赖X。
上面一段话是某些教材上的话,比较不好理解。简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。比如在设计学生表时,一个学生的学号能决定学生的姓名,也可称姓名属性依赖于学号,对于现实来说,就是如果知道一个学生的学号,就一定能知道学生的姓名,这种情况就是姓名依赖于学号,这就是函数依赖,函数依赖又分为非平凡依赖,平凡依赖;从性质上还可以分为完全函数依赖、部分函数依赖和传递函数依赖。
Y=f(x)
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。
依赖保护,顾名思意!当有2个表,a,b
a依赖于b,所谓依赖就是a中某(几)个字段与b中某(几)个字段有依赖关系,换言之,当你在b表中做删除 *** 作时,系统会检测因为a表中有依赖于表b中的记录,因此不能删除,除非表a中已经没有针对某(几)个字段的对b的约束了。
你想知道什么?依赖关系最简单的一个理解就是Windows上你玩游戏结果提示directx版本过低无法运行。以及常见的运行某个程序之后提示mfc71.dll未找到。还有就是用个软件结果安装说明上让你先去安装.net。Linux的依赖关系因为他的整个系统都是由各个不同的开发组开发的软件集合而成(这点不知道电话是不可能理解Linux依赖关系的起因的),每个软件都有不同的功能提供和调用。而Linux因为他的软件包组成可以很灵活,某些软件包不是必须的,有些软件功能可以有很多软件进行提供。所以有些软件互相之间的功能需求就需要“依赖关系”这种描述来进行说明控制。Windows也有这个问题,只不过因为整个系统是微软统一提供的,所以他可以进行版本接口公职,以及方便的通知附带多个版本的函数库和程序进行功能提供,以及强行的提供一些用户其实根本不需要的软件来提供Windows程序的“依赖关系”。依赖关系很明显的就是一些超高精简的XP去掉的内容会导致很多软件不能运行。可以说,简单的去掉IE,就可以让很多Windows程序失去依赖关系而不能运行。Linux的软件包管理器就是有解决这个问题而设计的原因。软件包管理器通过分析软件包里面的描述信息和系统当前安装情况的数据库来确定依赖关系是否满足和如何满足依赖关系(也就是需要再安装哪些软件才行)。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)