03数据库系统

06-概念模型设计-函数依赖

2021-07-31 48 1

简介 函数依赖概念和Armstrong公理

函数依赖

    设 R(U) 是属性集U上的关系模式, X和Y是U的子集。 若R(U)的任何一个可能的关系r不可能存在两个元组在X上的属性值相等, 而在Y上的值不等, 则称X函数决定Y或者 Y函数依赖于X, 记为 X -> Y

    * 对于任何给定的X有唯一的Y与之对应

    * 函数依赖X->Y的定义不是指关系模式R的某个或某些关系满足上述条件,而是指在任何可能的关系(任何情况)下,都要满足上述条件。

    * 函数依赖是语义范畴的概念, 只能根据语义来确定是否函数依赖。 例如 姓名-> 系, 如果没有同名的情况下成立, 而对于允许同名的情况, 这个函数依赖就不成立了。判断是否函数依赖要考虑上下文环境

    * 若 X->Y 则X叫做决定因子

    * 若X->Y, Y->X 则记做X<-->Y

    * 若Y不函数依赖于X, 则记作 upfile


平凡函数依赖、非平凡函数依赖

upfile

    *若不做特殊说明,一般都讨论非平凡函数依赖

    非平凡函数依赖: 例如 (Sno, Cno) -> Grade   学号和课程号 决定 成绩

    平凡函数依赖:例如 (Sno,Cno) -> Sno 学号和课程号 决定 学号    (Sno,Cno) -> Cno     学号和课程号 决定 课程号



完全函数依赖、 部分函数依赖

upfile

    由于Sno -> Sdept

        Sdept部分函数依赖于(Sno, Cno)

        Grade成绩完全函数依赖于(Sno, Cno)


传递依赖

    传递函数依赖;    简单理解就是“非平凡,不反依赖”

upfile


    Sno-> Sdept  , Sdept -> Mname(系负责人)  则Mname传递函数依赖于Sno

    学号 宿舍 费用

    062201 A 900

    062230 B 1200

    062240 B 1200


    学号确定宿舍、宿舍确定费用且有学号不包含宿舍,宿舍不确定学号,符合传递函数依赖条件。

    所以以上关系R存在添加异常(建了C宿舍但是没人住无法添加了)删除异常(学生062201退学了宿舍A也删除掉)如果存在传递函数依赖,如下更改


    学号 宿舍

    062201 A

    062230 B

    062240 B


    宿舍 费用

    A 900

    B 1200


    传递函数依赖会导致数据冗余和异常。传递函数依赖的Y和Z子集往往同属于某一个事物,因此可将其合并放到一个表中。

    

逻辑蕴含

upfile


    若R(A,B,C), F={A->B, B->C} 则F逻辑蕴含A->C

    若F为关系模式R(U)的函数依赖集,我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+。 


多值依赖    

upfile

    

    6中性质: 考点:对于中级的数据库工程师,是必须记住

    多值依赖: 对于给定的X有多个Y与之对应, 而且Y只与X有关系,与XY之外的属性无关。

    

upfile

函数依赖的公理(Armstrong)

upfile


    函数依赖公式: 函数依赖定理

    传递律: X->Y Y->Z 则X->Z

    伪传递: X->Y WY->Z 则WX->Z

    增广律: X->Y U包含Z, 则XZ->YZ

    合并规则: X->Y, X->Z ,则 X->YZ

    分解规则: X->Y Y包含Z,则 X->Z


点赞 1

文章评论

欢迎您:

纸上得来终觉浅,绝知此事要躬行!

112 文章 36783 浏览 3 评论

联系我

  •   QQ:    361352119
  •  Email:  lisimmy@sina.com
  • 微信: