zl程序教程

您现在的位置是:首页 >  后端

当前栏目

函数依赖关系的例子_部分函数依赖

依赖 函数 关系 例子 部分
2023-06-13 09:15:06 时间

大家好,又见面了,我是你们的朋友全栈君。

完全函数依赖、部分函数依赖和传递函数依赖举例

完全函数依赖、部分函数依赖和传递函数依赖举例

1. 完全依赖:

通过{学生学号, 选修课程名}可以得到{该生本门选修课程的成绩},而通过单独的{学生学号}或者单独的{选修课程名}都无法得到该成绩,则说明{该生本门选修课程的成绩}完全依赖于{学生学号,选修课程名}

2. 部分函数依赖:

通过{学生学号,课程号}可以得到{该生姓名},而通过单独的{学生学号}已经能够得到{该生姓名},则说明{该生姓名}部分依赖于{学生学号,课程号}; 又比如, 通过{学生学号,课程号}可以得到{课程名称},而通过单独的{课程号}已经能够得到{课程名称},则说明{课程名称}部分依赖于{学生学号,课程号}。(部分依赖会造成数据冗余及各种异常。)

3.传递函数依赖:

在关系R(学号,宿舍,费用)中,通过{学号}可以得到{宿舍},通过{宿舍}可以得到{费用},而反之都不成立,则存在传递依赖{学号}->{费用}。(传递依赖也会造成数据冗余及各种异常。)

4.平凡函数依赖

定义: 若X->Y,且Y是X的子集(对任一关系模式,平凡函数依赖必然成立),就是平凡函数依赖。

例如: 在学生表(学号,姓名,年级)中,(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖. 直白点说,就是只要Y是X的子集,Y就依赖于X。

5.非平凡函数依赖

定义: 若X->Y,但Y不是X的子集,就是非平凡函数依赖。

例如: 在学生表(学号,姓名,年级)中,通过(学号,姓名)可以推出这个学生所在的年级,但年级不是(学号,姓名)的子集,这是非平凡函数依赖.((学号,姓名)就是一个x,年级就是一个y’)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234847.html原文链接:https://javaforall.cn