00:00
好,那上一节我们提到了范式的概念和意义啊,那从这一节开始,我们就可以去学习范式的具体规则了啊,那函范式的规则当中啊,用到了一个函数依赖的概念,所以说咱现在需要先看一下函数依赖啊,好,我点开这个PPT。呃,好,大家现在呃看一下这个PPT当中的一个表啊,那这个表呢,是我们呃学习三番式需要用到的一个小例子啊,那现在我们把这个表的内容简单看一下啊,先看一下他的字段啊呃,这里边有学号,有姓名,有姓名有系主任啊,还有一个课名以及分数,那根据这个字段呀,我们大致能啊看出来这应该是一张成绩单表对吧?啊这里边存储了哎,每一个学生哎,每一个科目的分数啊行,那现在我们继续往下看啊,那接下来我们就开始学习这个函数依赖啊,那函数依赖呢,实际上是有三个种类的啊,哪三种呢?那分别是完全函数依赖啊,部分函数依赖,还有一个就是呃传递函数依赖啊,那我们逐个看一下啊好,那接下来我们看第一种啊,那第一种函数依赖呢,我们叫做完全函数依赖啊,那下边呢,是完全函数依赖的标准定义啊,那这个定义呢,是由这个呃。
01:18
集合去阐述的啊,因为呃,关系模型呢,实际上是有这个非常强的数学理论基础的啊,那主要就是这个集合的相关理论啊,在这儿我们暂时先不看它这个官方定义啊,呃,我举一个小例子,主要是方便大家快速的理解啊,那假如说我现在有一个这样的函数啊,什么函数Z等于FXY。啊,OK,那现在我简单问一下大家,那如果我给大家提供一个X的值,那再提供一个Y的值,那大家才能不能得到Z的值呢?那显然是可以得到的,没有任何问题,对吧?啊,但是大家想,假如说我只给一个X不给Y,或者说我只给一个Y不给X,那大家说我能推出Z的值吗?那显然是不可以的,对吧?那这时候我们就说Z是完全函数依赖于X和Y的。
02:12
啊,这就是所谓的完全函数依赖啊,OK,那当然我们现在呃去讲的这个完全函数依赖是为了去学习范式对吧?那范式呢,是去做数据库设计的时候需要遵循的一套规则,那所以说我们需要把这个完全函数依赖啊,啊,这个概念啊,需要从这个数学公式啊,给它移植到我们这个表上边,对吧?啊,数据库里边的一张表上边,OK,那我们看看在这个一张表当中,这个完全函数依赖是如何体现的啊,我们一起看一下。好,那我们看一下这个所谓的人类语言这块啊,咱们看一下,那比如说我们可以通过呃,学号加课程这两个字段推出分数,我们看是不是啊,给一个学号啊,那再给一个课名,我们是不是能够得到一个具体的分数呢?那显然是可以的,对吧?咱们得到的分数就是啊某位同学,那他某个课程的分数,这是没有任何问题的。
03:07
啊,那然后再继续往下看,但是我们单独用学号是推断不出来分数的,你比如说我只给一个学号啊,那我能不能得到一个分数呢。啊,那不一定,为什么呢?因为我同一个学号是不是可能会对应多个分数啊,因为有不同的科目啊,那所以说显然我通过学号或者说只通过学号是得不到分数的,那同样道理,我只给一个课名,我们也得不到一个具体的分数啊,那这个时候呢,我们就说分数字段是完全函数依赖于学号加课程字段的啊,这其实就是所谓的完全函数依赖啊好,那接下来我们再看第二一个啊,那第二种呃,函数依赖呢,我们称为哎,部分函数依赖啊,那同样的大家还是先看我举一个小例子啊,我同样用刚才那个函数应该是Z等于。啊,X,然后Y啊,对吧?那假如现在我给大家一个X,再给大家一个Y,那能不能得到Z呢?显然是没有问题的啊,对吧,这是可以的,那现在假如说我给大家一个X啊,我再给一个Y,那我再给一个N啊,那大家说能不能得到Z是多少呢?那显然也是可以的,对吧?啊,但是我们大家心里清楚,其实这个N是不必要的对吧?那所以说这个时候我们就说Z是部分函数依赖于XY加N的。
04:29
啊,因为我只依赖于XYN当中的一部分,也就是X和Y啊,这就是所谓的部分函数依赖啊,那同样我们把这个数学的小公式啊,给它放到我们这张数据库的一张表当中啊,咱们去看一看到底什么叫做部分函数依赖来下边有一个小例子,那比如我们可以通过学号加课程推出姓名,那大家看一下能不能得到啊,给一个学号,再给一个具体的课程,那咱们能不能得到一个学号呢?呃,能不能得到一个这个姓名呢?那显然是可以的,但是大家心里都很清楚,实际上我要想得到姓名,我只要给谁就可以了,只要给学号就够了,对吧?课名实际上是不必要的,那所以这时候我们就说姓名字段呢,是部分函数依赖于学号加课程的。
05:17
啊,这就是所谓的部分函数依赖啊,相对来说也是比较简单的啊好,那接下来我们再看最后一个啊,那最后一个呢,是传递函数依赖,传递函数依赖啊,那什么叫传递函数依赖呢?还是举一个小例子,比如说我有一个这样的函数啊,叫做呃,重新写啊,Y等于FX,那我还有一个函数叫做呃,Z等于AGY。啊,那大家说,呃,我给一个X,能不能得到Z的值。那钱是可以的啊,咱们得对吧,那是不是把X给我之后,我可以通过Y等于FX先得到Y对吧,然后再等,再通过Z等于GY是不是得到GZ是多少啊对吧?那所以说我们现在是可以通过X得到这个Z的值的啊,那当然呢,这里边儿我们经过了一个Y值的传递,对吧?那所以说我们就说Z是传递函数依赖于X的。
06:13
啊,这就是传递函数依赖的一个概念啊,那同样我们再看一下,呃,在这个表当中,我们是否存在传递函数依赖呢?来看一个小例子。好,我们看一下啊,那这里边儿我们可以看到,呃,学号能够推出戏名能不能呢?学号推出戏名可不可以,应该是可以的,对吧?只要我呃给一个确定的学号,我就能够查到这个学生他位于哪个系,那我就能够得到相应的系名,这个没问题,对吧?啊,那继续往下走,那戏名能不能推出系主任呢?那给一个特定的系名,我们肯定是能够知道他的系主任是谁的,对吧?那所以说呃,那系名也能得到系主任没有任何问题,那这时候你可以看到啊,那咱们的系主任是不是就是传递函数依赖于学号了呀,对吧?啊,那这就是所谓的传递函数依赖啊,传递函数依赖OK,那现在我们就把这三种函数依赖给大家说明完了啊,那分别是部分完全函数依赖,部分函数依赖,还有传递函数依赖,那这三种依赖关系我们大家需要搞清楚,因为在后边的三范式的规则当中,我们需要用到啊这个函数依赖的概念啊。
我来说两句