总述


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


  分述

  一、函数依赖关系

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



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


                                          

【数据库之函数依赖】_标题_02



       总结:

           对于函数依赖的知识点,我的理解就是这样,现在不知道大家清楚了没,如果有不对的地方希望大家给我指正!