第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

发布时间 2023-11-14 22:02:09作者: 昨夜星辰沦陷✨
这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13106
这个作业的目标 <第9次作业-知识点整理:关于函数依赖定义、函数依赖类型>

1.什么是函数依赖?

MySQL函数依赖是指在关系型数据库中,某些列的值可以由其他列的值推导出来。在数据库设计中,函数依赖是非常重要的概念,它可以帮助我们优化数据库结构。

2.函数依赖概念

设R(U)是属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称X函数决定Y,或Y函数依赖于X,记作 X→Y。

3.范式概念

范式(Normal Form,NF)是指关系模式的规范形式。

4.范式之间的联系


注:范式级别并不是越高越好,选择适合的范式最优。

5.范式的规范化

① 将一个给定的关系模式转化为某种范式的过程,称为关系模式的规范化过程,简称为规范化。
② 规范化一般采用分解的办法,将低级别范式向高级别范式转化,使关系的语义单纯化。
③ 规范化程度,不一定越高越好,在关系模式设计时,一般要求关系模式达到3NF或BCNF即可。

6.MySQL函数依赖的分类

函数依赖的分为完全函数依赖、部分函数依赖、传递函数依赖。

6.1完全函数依赖与部分函数依赖定义:

设R是一个具有属性集合U的关系模式,X和Y是U的子集。如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X,记作 X→Y;如果X→Y,并且对于X的任何一个真子集Z,Z→Y都成立,则称Y部分函数依赖于X,记作 X→Y。
例如,一个订单的总金额可以由订单中的商品数量和商品单价推导出来,因此总金额完全依赖于商品数量和商品单价。若一个订单的商品数量可以由订单号唯一确定,也可以由订单号和商品编号确定,因此商品数量部分依赖于订单号。
说明:只有当决定因素(函数依赖左侧)是组合属性时,讨论部分函数依赖才有意义,当决定因素是单属性时,都是完全函数依赖。

6.2传递函数依赖定义:

设R是一个具有属性集合U的关系模式,X、Y、Z是U的子集,且X、Y、Z是不同的属性集。如果X→Y,Y→X不成立,Y→Z,则称Z传递函数依赖于X,记作X→Z。

说明:
①若 X→Y,且Y→X,则称x与Y等价,记作 X↔Y。
②若定义中Y→X成立,则x与Y等价,这时候称Z对X直接函数依赖,而不是传递函数。