天天看点

【数据库之函数依赖】

总述

函数依赖,提到这个概念我们有时候分不清楚它的关系,总结是一个将知识转化为自己东西的一个方法。现在咱们一起来”分解“它:函数依赖。

  分述

  一、函数依赖关系

         1.数据依赖

            数据依赖通常包括函数依赖和多值依赖。

【数据库之函数依赖】

       2.函数依赖问题

         A.函数依赖

             定义:

                  设一个关系R,X和Y是它的两个属性集,若对于X上的每一个值都有Y上的一个唯一的值与之对应,则称X和Y 具有函数依赖关系,并称X函数决定Y,或称Y函数依赖X,称X为决定因素。

                 简而言之:一个X值只对应一个Y值。

         e.g设一个学生关系为(学号,姓名,性别,)

                      学生号为该关系的主键

                      每一个学生的学生号对应着姓名属性的唯一值,即一个学生的姓名由其学生的学号唯一确定,在这里,我们称学号函数决定姓名,或称姓名函数依赖职工号。

       B.部分函数依赖

           定义:

                   设一个关系R,X和Y是它的两个属性集,若X函数决定Y,同时X的一个子集X也能够函数决定Y,则称Y部分函数依赖于X

                    简而言之:只拿出X属性集的一部分,就可以函数决定Y了,不需要全部属性。

    e.g如上面的例子:设一个学生关系为(学号,姓名,性别,)

             学生号是一个单值属性决定因素,它决定其他的么一个属性,如果把(学生号,姓名)看成X,它能够决定其他所有属性,而职工号一个属性就能够函数决定其他属性,所以(学生号,姓名)到其他属性间的函数依赖为部分函数依赖 。

       C.传递函数依赖

           定义:

                 一个关系R,X,Y和Z是它的三个属性集,其中X→Y,Y→Z(Y不包含Z,X也不函数依赖Y),则存在X→Z,称此为传递函数依赖,即X传递函数依赖决定Y,Y传递函数依赖于Z。

                简而言之:这个函数依赖关系是通过“推导”间接得到的。

   e.g设一个学生关系为(学号,姓名,性别,系号,系名,系主任名)

              由题我们知道:学号→系号,系号→系名,所以知道一个学号之后就能够唯一对应一个系号,系号又能确定唯一的一个系名,所以学号→系名,这个关系为传递函数依赖。

  二.图形概括

         eg.设一个学生关系(学号,姓名,性别,班级,班主任,课程号,课程名,考试成绩)则用函数依赖关系可以如下表示:

      注:一个学生属于一个班,一个班有多名学生,一个班级有一个班主任,一个班主任只带一个班。

【数据库之函数依赖】

       总结: