热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

关系数据库基础:函数依赖知识笔记

1、函数依赖的定义设R(U)是属性集U.上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X集合上的属性值相等,而在Y上的

              

1、函数依赖的定义

设R(U)是属性集U.上的关系模式,X, Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X集合上的属性值相等,而在Y上的属性值不等,

则称X函数确定Y或Y函数依赖于X,记作X→Y。

理解:X,Y为两个集合,对于集合X中的所有元素,在Y集合中都能找到对应。

当X值不同时:X既可以对应Y的相同元素,也能对应不同元素。

当X值相同时:X只能对应Y中的相同元素。

2、如何判断是否存在函数依赖

必备公式如下:

1.X和Y是一对一的关系,则X→Y,Y→X

2.X和Y是多对一的关系,则X→Y

3.X和Y是多对多或是一对多的关系,则X与Y不存在依赖关系

3、函数依赖的分类

3.1 平凡函数依赖

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

举例:

在学生表(学号,姓名,年级)中,(学号,姓名)可以推导学号和姓名其中的任何一个,就是所谓的平凡函数依赖。

简单来说,就是只要Y是X的子集,Y就依赖于X。

3.2  非平凡函数依赖

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

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

3.3. 完全函数依赖

定义:在R(U)中,如果X->Y。并且对于X的任何一个真子集X‘,都有X'-/->Y,则称Y对X有完全函数依赖,记作X->Y(箭头上有个大写F)。

举例:

1:在学生表(学号,姓名,年级)中,通过属性“学号”就可以推出“年级”,说明“年级”完全依赖于“学号”,这就是完全函数依赖。

2:“一门课的成绩”对(学号,课程号)是完全函数依赖。学号和课程号可以确定对应课程成绩,但是学号和课程号它们谁都不能单独确定成绩。

也就是说X内任意一个真子集(真子集不包含它本身),都不能唯一确定Y。 

3.4. 部分函数依赖

定义:若X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X->Y(箭头上有个大写P)。

举例:

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

2:“院系”对(学号,课程号)是部分函数依赖。课程号和学号一起可以确定院系,但学号是(学号,课程号)的真子集,并且学号单独可以确定院系。

3.5 传递函数依赖

定义:在R(U)中,如果X->Y(Y不是X的子集),Y-/->X,Y->Z,Z是Y的子集,则称Z对X传递函数依赖。记为X->Z(箭头上是汉字 “传递”)

举例:

学号->院系,院系->院长名,学号->院长名。

简单点说就是X确定Y,Y不是X子集,Y能确定Z,Z不是Y子集,Y不能确定X。 

3.6 直接函数依赖

定义:在R(U)中,如果X->Y,Y不是X的子集,Y->Z,Z是Y的子集,则称Z对X传递函数依赖。记为X->Z(箭头上是汉字 “直接”)

简单来说就是X确定Y,Y不是X子集,Y能确定Z,Z不是Y子集。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识



推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 35岁程序员连续被2家公司裁掉,网友酸了,成功入职成事业编晒出福利
    这篇文章讲述了一个35岁程序员连续被两家公司裁掉的故事,他在遭遇中年危机后成功入职事业单位,并分享了入职后的福利。文章探讨了程序员在互联网行业中的竞争力下降的原因。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了Svn和Maven的使用说明,包括版本控制和构建工具的功能和优势。同时提供了一个相关链接,链接中详细介绍了SvnMaven的使用方法和注意事项。通过学习和使用SvnMaven,开发人员可以更好地进行代码管理、软件开发和协作开发,提高项目管理的效率和质量。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
author-avatar
姚若薇_453
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有