传递函数依赖与第三范式
基本概念
1.数据依赖
在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。其中最重要的是函数依赖和多值依赖。
2.函数依赖
设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。
3.平凡函数依赖
当关系中属性集合Y是属性集合X的子集时(Y⊆X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。
4.非平凡函数依赖
当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。
5.完全函数依赖
设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
6.部分函数依赖
设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
7.传递函数依赖
设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
举例
如下表
学号 | 课程号 | 成绩 |
上面是一个典型的选课表,主键是“学号+课程号”,这个表示符号第三范式的。
下表对表的设计进行一下变换
学号 | 课程号 | 成绩 | 是否及格 |
这里加了一个“是否及格”的字段,不符合“第三范式”了,因为是否及格依赖于成绩,索引存在传递函数依赖。
成绩(Y) | 是否及格(Z) | |
文字表达 | 课程号+学号→成绩 | 成绩→是否及格 |
数学表达 | X→Y | Y→Z |
传递依赖 | 无 | 有 |
传递函数依赖与第三范式相关推荐
- 数据库 部分函数依赖 完全函数依赖 传递函数依赖 第一范式、第二范式、第三范式、BCNF范式区别
数据库 部分函数依赖 完全函数依赖 传递函数依赖 第一范式.第二范式.第三范式.BCNF范式区别 在理解函数依赖之前,先来看一下函数依赖分析: 在关系中,包括在任何候选码中的属性称为主属性:不包括 ...
- 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别
要讲清楚范式,就先讲讲几个名词的含义吧: 部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X'是X的真子集,存在X'→Y,则称Y部分函数依赖于X. 举个例子:学生基本信息表R中(学号,身份 ...
- 关系数据理论(回顾关系模式、数据依赖、不规范的关系模式存在的问题、 函数依赖、非平凡函数依赖/平凡函数依赖、完全函数依赖/部分函数依赖定义、传递函数依赖,码)
关系数据库的规范化理论是数据库逻辑设计的一个有力工具. 1.回顾关系模式 第2章中已经讲过,一个关系模式应当是一个五元组: R(U,D,DOM,F) ...
- 数据库部分函数依赖、传递函数依赖的区别以及范式判断
说到部分函数依赖,传递函数依赖,必须谈到2个概念,"非主属性"和"主属性". 主属性:组成候选码的属性,就是主属性.例如,属性集{学号,姓名,身份证号码,联系电 ...
- 数据库逻辑设计 完全函数依赖、部分函数依赖、传递函数依赖、码、候选码、主码、范式
数据库逻辑设计 R:关系名 U:组成该关系的属性名集合 D∶属性组U中属性所来自的域 DOM:属性 到域的映射 F:属性组U上的一组数据依赖 由于D.DOM对模式设计的关系不大,这里把关系模式简化为一 ...
- 数据库函数依赖——完全函数依赖、部分函数依赖、传递函数依赖【通俗易懂,博主会讲人话】
1.函数依赖:在一个表里面,属性X可以映射到属性Y,也就是说知道了X就能确定Y,称X为决定因素. 举栗子
- 数据库原理与应用(SQL)——3、关系数据理论(函数依赖、闭包、函数依赖集的最小集、规范化---范式 )
加油! 不要停止奔跑, 不要回顾来路, 来路无可眷顾, 值得期待的只有远方. 关系数据理论是关系数据库的理论基础, 为数据库设计提供了判别标准, 是设计关系数据库的指南. 数据存储异常(因为存在数据 ...
- 【数据库】 关系模式的规范化理论----一文让你轻松理解其中奥秘
文章目录 关系模式设计中存在的问题 关系的形式化定义 数据依赖的基本概念 函数依赖 非平凡函数依赖.平凡函数依赖 完全函数依赖和部分函数依赖 传递函数依赖 关键字和超关键字 数据依赖的公理系统 函数依 ...
- 2W字 0-1 讲解数仓(附软硬件架构图)(建议收藏)
大数据篇:一文读懂@数据仓库 1 网络词汇总结 人工智能层的:智慧地球.智慧城市.智慧社会 企业层面的:数字互联网,数字经济.数字平台.数字城市.数字政府: 平台层面的:物联网,云计算,大数据,5G, ...
最新文章
- hellowolrd 的系统调用
- chrome 插件开发心得
- ServletJSP学习笔记--导航
- rtmp服务器与播放器的交互
- Spring注解源码分析
- 用php 用拼出一个菱形_这可是我没来过的杭州呀!远在开封的他,用一种特殊的方式,拼出一个彩色杭州...
- POJ2987 Firing 最大权闭合图
- 导入AIDL例子的时候,在asBinder出现错误
- 【解决方案】kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
- sql server 纵横表的转换
- 计算机xp画板在哪找,xp系统画图工具在哪里|xp画图工具有什么功能
- 网络时间协议 (SNTP)
- 高斯拉盖尔(Gauss-Laguerre)法则求积分(python,数值积分)
- 战网服务器组件,架设自己的战网服务器
- 猜秘密三位数(人、机互相猜)小游戏
- Linux入门---环境搭建(腾讯云服务器)、XShell远程登陆Linux
- Vue、ElementUI
- 如何压缩图片大小到200k以下?照片太大怎么压缩到200k?
- mysql执行语句出来全是问号_解决MySQL中文输出变成问号的问题
- python输出字符串两次_下列程序的运行结果是: str = Hello print(str * 2) # 输出字符串两次 print(str + Python!) # 连接字符串_学小...
热门文章
- 内网渗透--CS伪造黄金票据与白银票据
- VS Code 调试JavaScript报错:“crbug1173575, non-JS module files deprecated”
- 初中教师计算机培训方案,初中教师信息技术培训与考核校本培训的实施方案
- web基础阶段的小兔鲜儿项目学习
- 数据可视化|世界杯球迷统计
- Hive Metastore详解大全
- java se 01
- 主叫无回铃音情况分析
- 用git上传项目到GitHub过程记录
- html实现富文本编辑器,前端程序员福利,6款轻量级富文本编辑器,轻松实现富文本编辑...