数据库函数依赖
来源:互联网 发布:淘宝店铺logo尺寸 编辑:程序博客网 时间:2024/06/06 20:32
数据库函数依赖
一、函数依赖(Functional Dependency)的概念
数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。
二、定义
设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。
例:
(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 ×
三、函数依赖是语义范畴
1、语义:数据所反映的现实世界事物本质联系
2、根据语义来确定函数依赖性的存在与否
3、函数依赖反映属性之间的一般规律,必须在关系模式下的任一个关系r中都满足约束条件。
四、属性间的联系决定函数依赖关系
设X、Y均是U的子集
1、X和Y间联系是1:1,则X→Y,Y→X。(相互依赖,可记作X←→Y)
2、X和Y间联系是M:1(M),则X→Y。
3、X和Y间联系是M:N(M,N),则X、Y间不存在函数依赖。
五、完全函数依赖和部分函数依赖
1、函数依赖分为完全函数依赖和部分函数依赖
2、定义:
在R(U)中,如果X→Y,并且对于X的任何真子集X'都有X'Y',则称Y完全依赖于X,记作X→Y;否则,如果X→Y,且X中存在一个真子集X',使得X'→Y成立,则称Y部分依赖于X。
例:
学生ID,学生姓名,所修课程ID,课程名称,成绩
(学生ID,所修课程ID)→成绩
成绩既不能单独依赖于学生ID,也不能单独依赖于所修课程ID,因此成绩完全函数依赖于关键字。
(学生ID,所修课程ID)→学生姓名
学生ID→学生姓名
学生姓名可以依赖于关键字的一个主属性——学生ID,因此学生姓名部分函数依赖于(学生ID,所修课程ID)。
六、平凡函数依赖和非平凡函数依赖
设X,Y均为某关系上的属性集,且X→Y
1)若Y包含于X,则称X→Y为:平凡函数依赖;(Sno, Cno) → Sno (Sno, Cno)→ Cno
2)若Y不包含于X,则称X→Y为:非平凡函数依赖。(Sno, Cno) → Grade
Y包含于X内,W于X相交,与Y无直接交集。
则:X→Y为平凡函数依赖
X→W, W→Y为非平凡函数依赖
七、传递函数依赖 X→Y,Y→Z则Z传递函数依赖于X
- 数据库函数依赖
- 数据库的函数依赖
- 数据库函数依赖
- 【数据库复习】函数依赖
- 数据库函数依赖、范式
- 数据库函数依赖
- 数据库函数依赖
- 【数据库之函数依赖】
- 数据库 完全函数依赖 部分函数依赖 传递函数依赖
- 数据库范式及函数依赖
- 函数依赖和数据库范式
- 黑马程序员 数据库 函数依赖
- 数据库函数依赖思路整理
- 数据库 - 关系模式函数依赖
- 函数依赖及数据库范式
- oracle数据库中的函数依赖
- 【数据库】函数依赖和规范化
- 数据库基础1—函数依赖 多值依赖
- 【leetcode】Remove Duplicates from Sorted Array
- 不能启动DBConsole服务的解决办法
- Oracle的rownum原理和使用
- Java NIO笔记(一):NIO介绍
- 关系规范化设计(范式)
- 数据库函数依赖
- 如何在CSDN博客中的所贴的代码进行【代码块】显示
- sass和less,优秀的前端样式预处理器
- 学生聚类分析思考
- mysql编码、数据表编码查看和修改总结
- 【亦观察】 京东能够逆袭阿里凭什么?
- GoLang之调用C接口的使用方法
- 放弃腾讯微信!微软小冰进驻米聊和易信
- cocos2dx去掉黑色背景----ccBlendFunc的使用