数据库函数依赖定义的问题?
下面是教材上的定义:设R(U)是一个属性集U上的关系模式,X和Y分别是U的属性子集,r是R(U)中任意给定的一个关系实例,s、t是r中的两个元组,当s[X]=t[X]时,...
下面是教材上的定义:
设R(U)是一个属性集U上的关系模式,X和Y分别是U的属性子集,r是R(U)中任意给定的一个关系实例,
s、t是r中的两个元组,当s[X]=t[X]时,就有s[Y]=t[Y],则称属性子集X函数决定属性子集Y,或者称Y函数依赖,否则就称X不函数决定Y,或Y不函数依赖X。
上面的定义确实不太好理解,比较抽象,为了理解这个定义,现我做如下假设:
假设关系实例r的数据如下所示:
学号 姓名 年龄 性别
001 张三 18 F ==>假设 这条元组为s
002 李四 18 M ==>假设 这条元组为t
假设属性子集X为{学号,姓名}
假设属性子集Y为{年龄,性别}
请问,s[X]=t[X] 是指怎么样个等价关系?麻烦解释下这两个等式的关系s[X]=t[X]时,就有s[Y]=t[Y]?
难道是s[学号,姓名]=t[学号,姓名] ?那么根据上面的假设即关系实例r,就明显不对,因为元组s和t是不相等的两个元组。而这个关系实例r从语义上看确实存在函数依赖关系,如: 学号-> 年龄 学号->性别 学号->姓名
谢谢。 展开
设R(U)是一个属性集U上的关系模式,X和Y分别是U的属性子集,r是R(U)中任意给定的一个关系实例,
s、t是r中的两个元组,当s[X]=t[X]时,就有s[Y]=t[Y],则称属性子集X函数决定属性子集Y,或者称Y函数依赖,否则就称X不函数决定Y,或Y不函数依赖X。
上面的定义确实不太好理解,比较抽象,为了理解这个定义,现我做如下假设:
假设关系实例r的数据如下所示:
学号 姓名 年龄 性别
001 张三 18 F ==>假设 这条元组为s
002 李四 18 M ==>假设 这条元组为t
假设属性子集X为{学号,姓名}
假设属性子集Y为{年龄,性别}
请问,s[X]=t[X] 是指怎么样个等价关系?麻烦解释下这两个等式的关系s[X]=t[X]时,就有s[Y]=t[Y]?
难道是s[学号,姓名]=t[学号,姓名] ?那么根据上面的假设即关系实例r,就明显不对,因为元组s和t是不相等的两个元组。而这个关系实例r从语义上看确实存在函数依赖关系,如: 学号-> 年龄 学号->性别 学号->姓名
谢谢。 展开
1个回答
2015-03-26
展开全部
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意两个可能的关系r1、r2,若r1[x]=r2[x],则r1[y]=r2[y],或者若r1[x]不等于r2[x],则r1[y]不等于r2[y],称X决定Y,或者Y依赖X。
若对于R(U)的任意两个可能的关系r1、r2,若r1[x]=r2[x],则r1[y]=r2[y],或者若r1[x]不等于r2[x],则r1[y]不等于r2[y],称X决定Y,或者Y依赖X。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询