数据库概论——函数依赖理解
什么是函数依赖/u>
形式化定义
设R(U)是属性集U上的关系模式,X,Y是U的子集。
若对于R(U)的任何一个可能的关系r,
r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,
则称X函数确定Y或Y函数依赖于X,记作X→Y
非形式化理解
一个关系内部属性与属性之间的一种约束关系。
首先,什么是函数依赖/p>
通俗来说,函数依赖指的是在数据库中,各种不同属性(或者属性集合)关系间的一种“约束”,也可以看作属性之间的一种映射,也是一种“依赖性”,存在“当且仅当”的前提。
给定一个属性集U上的关系R, 假设X,Y为U的子集,若X属性集可以被看作通过某种函数来决定Y属性集,则我们写作
部分函数依赖
假设 ,
一个例子,给定一个tableux,存在以下关系:
(学 ,姓名,学生宿舍)
(学 ,姓名)→学生宿舍 (通过学 和姓名可以找到学生宿舍)
学 ,姓名分别是(学 ,姓名)的两个真子集。
(学 →学生宿舍)(通过学 可以得出学生宿舍)
(姓名→学生宿舍)(通过姓名也可以得出学生宿舍)
说明学生宿舍部分依赖于学 +姓名。
完全函数依赖
假设
再举个例子,考试成绩:
(学 ,课程,分数)
(学 ,课程)→分数
但是单独知道学 或者课程两者中的一个,是无法知道具体分数的。说明分数完全依赖于学 +课程。
传递函数依赖
可以把传递依赖看作一个单向链,
比如通过学 ,我们可以知道姓名、性别、班级,间接可以知道班主任是谁(反过来推,如果一个班主任不只负责一个班级,那么从班主任→班级是得不到一个确定结果的)。
所以(学 →班级)(班级→班主任)
班主任传递依赖于学 。
以上是在下粗浅易懂的理解,望有帮助。
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树内置函数其它函数31836 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!