:关系数据理论

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:关系数据理论相关的知识,希望对你有一定的参考价值。

视频

参考资料

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

文章目录

存在的问题

为什么要引入范式
因为关系模式存在一些问题:

规范化-几个范式

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

函数依赖

平凡的函数依赖与非平凡的函数依赖

举例: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也要单独分一类。

以上是关于:关系数据理论的主要内容,如果未能解决你的问题,请参考以下文章

关系数据库 · 规范化理论

数据库-第六章 关系数据理论-6.5 小结

:关系数据理论

关系数据理论之第二范式

概率论小课堂:公理化过程(大数据方法解决问题的理论基础)

数据库系统原理:范式理论