数据库 关于函数依赖

数据库 关于函数依赖,第1张

当t1[X]=t2[X]为假时,说明任意两个元组的X(X可能包含多个字段)都不相等,也就是说X是唯一的,即X能唯一地标识该模式中的元组,所以X就是R的主键。故不管t1[Y]=t2[Y]为真或为假,都有X→Y成立。

可以找一个实例来理解:比如R(编号,姓名,年龄,学院,班级),X(编号),Y(年龄,班级),r是某一个班级的学生信息,t1(0001,小明,20,工学院,土木本一班),t2(0002,小马,19,工学院,土木本一班),若t1[X]=t2[X]为假,那说明在r中,任意两个学号都不相等,那X就可以作为R的主键,由主键可以确定该关系模式的所有字段,不管其他字段是否相等。

特别要注意函数依赖中“任意”两个字。

PS:好久没看过数据库理论的书了,如果答的不对,请多指教,函数依赖部分是让人比较头疼的地方......

我给你推荐一本书吧,叫做,《数据库系统概论》!

对于你所说的问题,我是这样理解的:

SNO可以推导出SDEPT,有SDEPT可以推导出MN,但是你只有SNO,是无法推导出G的,难道不是吗?推导出G需要有CNAME,可是你却告诉只有SNO,没有选课,所以就无法得到,对应功课的成绩!这个时候,我们就要来讨论primary key,我想你肯定知道主键是什么意思了,因为你已经学到了这里,所以对数据库肯定有一定的了解,好了,不说废话,在F中,SNO不能作为主键,因为只有SNO的话,却无法得到G,(原因,前面已经讲过!),只有SDEPT,就跟更没有办法得到G了,不是吗?只有通过(SNO, CNAME)联合才能得到G,而在这之中,有SNO,所以,通过SNO可以推导出,SDEPT,而通过SDEPT,可以推导出MN,不是吗?所以总结得出,primary key 只能是(SNO , CNAME)。一个表中主键没有值,那是肯定不可以的!所有数据就不可能插于进去!

我是学数据库的,若是有什么疑问,我们可以深入谈论!

对于给你推荐的那本书,是我作为学生时,看的书,里面讲的很好,对于初学者而言,是一本不错的书!能够帮助你你在数据库这条道路上走得更远!祝你好运!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9984640.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存