【数据库系统概论】第六章:关系数据理论

视频

参考资料

关系数据库理论之最小函数依赖集

存在的问题

为什么要引入范式
因为关系模式存在一些问题:
在这里插入图片描述

规范化-几个范式

引入范式就是为了解决上述的问题。

函数依赖

平凡的函数依赖与非平凡的函数依赖
在这里插入图片描述
举例:A在这个班级中,给我这个班级的所有名单,我就能找到A——平凡的函数依赖。

完全函数依赖与部分函数依赖
在这里插入图片描述
举例:
学号->姓名,(学号,班级)->姓名。
(学号,班级)->姓名多此一举了——部分函数依赖。
学号->姓名——完全函数依赖。

ps:完全函数依赖,真子集是推不出的,要整个集合刚好能推出才行。

候选码
严格的定义:
在这里插入图片描述
好理解的定义:
有这样一个集合,它可以推出所有的属性,但它的任意一个真子集无法推出所有属性。
——刚好这一整个集合才能推出所有属性。

举例:

有F={A->B,B->C,D->E};

则候选码为AD,因为AD可以推出ABCDE,而它的真子集A或D都不能退出ABCDE。

一个F中可以有多个候选码,候选码不唯一。

举例:

有F={A->B,B->C,D->E,E->D};

则候选码为AD、AE

例题:
在这里插入图片描述
解:
注意:U表示所有属性,F表示关系。

步骤:(对字母)

  1. 只出现在左边的一定是候选码
  2. 只出现在右边的一定不是候选码
  3. 左右边都出现的不一定
  4. 左右边都不出现的一定是候选码

按照步骤来分析:
A:左右边都出现了,可能
B:只有左边出现,一定是
C:左右边都出现了,可能
D:只有左边出现,一定是
E:左右边都出现了,可能
G:只有右边出现,一定不是

则:
一定是:BD
一定不是:G
可能:ACE

接下来求一定是的闭包
BD的闭包:BD能推出来的所有属性。表示为(BD)+=BD。(BD的闭包就是BD)

BD的闭包不是全体,则接下来把所有可能的加进去求闭包。
即求(ABD)+、(BCD)+、(BDE)+

(ABD)+=ABCDEG
(BCD)+=ABCDEG
(BDE)+=ABCDEG

所以候选码为ABD、BCD、BDE

其他码的概念
超码:能推出所有属性的属性集。如上题的超码为ABD、ABCD、ABCDEG。
候选码:最小的超码。
主码:从候选码中任意挑出一个为主码。
主属性:包含在任意一个候选码中的属性。如上题的主属性为A、B、C、D、E
非主属性:不包含在候选码中的属性,上题为G。
:我们把主码、候选码都简称为码
全码:所有的属性都是码,成为全码。

范式

范式的种类:

  • 第一范式:1NF
  • 第二范式:2NF
  • 第三范式:3NF
  • 第BC范式:BCNF
  • 第四范式:4NF
  • 第五范式:5NF

各范式的联系:
在这里插入图片描述

第一范式:1NF
所有的关系模式都满足1NF,1NF的要求是表中无表。

反例:
在这里插入图片描述

第二范式:2NF
在1NF的基础上,不存在非主属性部分函数依赖

在这里插入图片描述
第三范式:3NF
在2NF的基础上,不存在非主属性传递函数依赖

传递函数依赖:
A->B,B->C,则A->C,这就是传递函数依赖。

如图,R1、R2中无传递函数依赖。
在这里插入图片描述
思考:为什么全码一定是3NF?
答:因为全码里没有非主属性,所以一定是3NF。

BCNF
在3NF的基础上不存在主属性对码的部分和传递函数依赖。

是3NF也是BCNF的例子:
在这里插入图片描述
是3NF但不是BCNF的例子:
在这里插入图片描述
3NF与BCNF的关系:
在这里插入图片描述

数据依赖的公理系统

公理系统
理解:

  • 自反律:Y属于X,则X可以推出Y——小明在A班,如果能拿到A班所有人的名单,则可以找到小明——大可以找小。
  • 增广律:已知X->Y,则XZ->YZ;
  • 传递律:X->Y,Y->Z——X->Z;

在这里插入图片描述三个定理
在这里插入图片描述
求最小函数的依赖集
概念:
在这里插入图片描述
一个很清晰的讲解:关系数据库理论之最小函数依赖集:下面的最小函数依赖的图都来自这个链接,举例也是

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
解:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

模式分解

模式分解有两个准则:

  1. 无损连接性
  2. 保持函数依赖

在这里插入图片描述
step3中左边一样的是指:
若:F={A->B,A->C…},则有{ABC},这里A就是一样的左边。
step4:CE是候选码,且没有出现在分类AD、ED、DB、BCD、DCA中所以就单独分一类(如果出现了就不管它);GH也要单独分一类。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

karshey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值