一、函数依赖

函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。

设R(U)是属性U上的一个关系模式,X和Y均为U={A1,A2,…,An}的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X→Y。

简单的说就是在属性U上有两个子集属性X,Y,由X属性可以获得一个元组,而X属性对应的Y属性获得相同的元组

比如:
(sno-学生ID,tno-教师ID,cno-课程ID,sname-学生姓名,tname-教师姓名,cname-课程名称,grade-成绩)
1、sno→sname, cno→cname,(sno,cno)→grade √
2、sname→sno, tno→cno, sno→tname × (不存在一一对应关系)

二、平凡依赖

如果X决定Y,而且Y属于X,也就是Y是X 的真子集,则称该依赖为平凡依赖;否则为非平凡依赖。
简单的讲,X可以推导出自己活着自己的一部分。
例如:
在学生表(学号,姓名,年级)中,(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖.
直白点说,就是只要Y是X的子集,Y就依赖于X

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

三、部分函数依赖和完全函数依赖

如果X->Y且对于X的任意真子集X均不具有X->Y,则称Y对X完全函数依赖,否则称Y对X部分函数依赖。
例如:
完全依赖:通过{学生学号, 选修课程名}可以得到{该生本门选修课程的成绩},而通过单独的{学生学号}或者单独的{选修课程名}都无法得到该成绩,则说明{该生本门选修课程的成绩}完全依赖于{学生学号,选修课程名}

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

四、传递函数依赖

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

微信搜一搜【梓莘】或扫描下方二维码交个朋友共同进步。文章持续更新中。

【数据库原理】函数依赖 平凡依赖 非平凡依赖 完全函数依赖 部分函数依赖 传递函数依赖相关推荐

  1. 快速理解数据库函数依赖(平凡函数依赖、非平凡函数依赖、完全函数依赖、部分函数依赖、传递依赖)

    在我们学习数据库的范式之前,我们需要理解一下有关函数依赖的一些知识. 我们数据库中常说的函数依赖其实是数据依赖的一种,数据依赖除了函数依赖还有多值依赖和连接依赖.其中最重要的是函数依赖. 函数依赖的概 ...

  2. 查缺补漏:集和与非平凡属性

    查缺补漏:集和与非平凡属性 前面的习题和知识点补充 Conjunctive normal form(CNF)是布尔逻辑的一种方法,它将公式表示为带有AND或or的子句的连词.由连词or AND连接的每 ...

  3. 数据库原理复习与知识点总结

    2022.5.29 更新:大学最后一门考试考完啦,开始下一阶段的学习 2022.5.26 更新:成功更完,开始刷题! 2022.5.25 更新:争取明天更完 以下为原内容 第一章 绪论 1.1 数据库 ...

  4. 数据库逻辑设计 完全函数依赖、部分函数依赖、传递函数依赖、码、候选码、主码、范式

    数据库逻辑设计 R:关系名 U:组成该关系的属性名集合 D∶属性组U中属性所来自的域 DOM:属性 到域的映射 F:属性组U上的一组数据依赖 由于D.DOM对模式设计的关系不大,这里把关系模式简化为一 ...

  5. 数据库原理课后答案 第六章

    建立一个关于系.学生.班级.学会等诸信息的关系数据库. 学生:学号.姓名.出生年月.系名.班号.宿舍区. 班级:班号.专业名.系名.人数.入校年份. 系:系名.系号.系办公地点.人数. 学会:学会名. ...

  6. 数据库原理(关系的规范化及数据库设计)

    复习函数依赖,数据规范化,范式的基本概念以及各级范式的判别标准. 判断给定的表满足哪级范式的条件. 将给定的表转换成满足特定等级范式条件的表. 根据需求确定实体,属性和联系. 将实体,属性和联系转化为 ...

  7. 传递函数依赖与第三范式

    基本概念 1.数据依赖 在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态.其中最重要的是函数依赖和多值依赖. 2.函数依赖 设X,Y是关系R的两个属性集合,当任何时 ...

  8. 数据库中为什么叫“非平凡”的函数依赖Nontrivial Function Dependency? nontrivial的本意探讨

    定义:设一个关系为R(U),X和Y为属性集U上的子集,若X→Y且X不包含Y,则称X→Y为非平凡函数依赖,否则若XY则必有X→Y,称此X→Y为平凡函数依赖. 例如:在一个职工关系中,职工号总能函数决定它 ...

  9. 关系数据理论(回顾关系模式、数据依赖、不规范的关系模式存在的问题、 函数依赖、非平凡函数依赖/平凡函数依赖、完全函数依赖/部分函数依赖定义、传递函数依赖,码)

    关系数据库的规范化理论是数据库逻辑设计的一个有力工具. 1.回顾关系模式         第2章中已经讲过,一个关系模式应当是一个五元组:                 R(U,D,DOM,F)   ...

  10. 数据库原理之函数依赖、多值依赖

    一.函数依赖(Functional Dependency)的概念 函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系. 设R(U)是属性U上的一个关系模式 ...

最新文章

  1. cleanmymac3.9.6 for mac_色轮插件配色神器Coolorus 2.6(win+mac)
  2. 使用时空-频率模式分析从脑电数据的一些试验中提取N400成分
  3. Openstack组件部署 — Networking service_Compute Node
  4. linux下防DDOS***软件及使用方法详解
  5. Ubuntu下利用Mono,Jexus搭建Asp.Net(MVC) Web服务器
  6. 我为什么fuck GFW同时FUCK 开心网
  7. sae 微信 java web_[1] 微信公众号与sae的web应用之间的配置
  8. 如何制作可以在 MaxCompute 上使用的 crcmod 1
  9. xp电脑怎么进入bios
  10. 时序动作定位:Rethinking the Faster R-CNN Architecture for Temporal Action Localization(TAL-Net)
  11. Responsive自适应网页设计与ResponsiveColumn自适应列实例
  12. xxx is not in the sudoers file. This incident will be reported
  13. 网络工程师考试第一节计算机硬件基础
  14. 基于python+django框架+Mysql数据库的新闻信息管理系统设计与实现
  15. 通过 HttpClient 下载 文件
  16. 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
  17. csdn头像修改失败的解决办法
  18. python对比excel重复数据_python入门之对比两份excel表格数据
  19. qq等级查询php源码,基于PHP的QQ等级计算器
  20. OCP 11G 053题库解析汇总链接(1-200)

热门文章

  1. CMakeLists.txt文本编辑工具
  2. mvc html禁用文本框,如何在MVC htmlAttribute中設置禁用
  3. 金字塔结构式表达利器
  4. db2 windows linux,Migrate DB2 v9 on windows to DB2 v10.5 on linux
  5. C语言编程我爱你心形,用c语言写出变色的心形图案
  6. python画钢铁侠标志_钢铁侠历代战衣mark1—mark47全揭秘(四)
  7. HyperX Alloy Mars2游戏机械键盘,深耕专业电竞机游戏械键盘
  8. 2 万字 + 30 张图 |MySQL 日志:undo log、redo log、binlog 有什么用?
  9. 拥抱趋势,蓄能跃迁——2018慧点科技企业协同及治理创新论坛圆满举行
  10. 读书笔记:《结构思考力》基于目标定主题