【数据库系统概念】函数依赖及其公式定理

一、概念

  • 函数依赖
    • 设R(U)是属性集合U={A1,A2,…,An}上的一个关系模式,X,Y是U上的两个子集,若对R(U)的任意一个可能关系r,r中不可能有两个元组满足在X中的属性值相等而在Y中的属性值不等,则称函数X决定Y或函数Y依赖于X,记作X->Y
    •  直观地说就是看有一个表格的一列,要是全都是不一样的值的话它一定可以决定任意列;要是有相同的值的话,看相同值对应行的那个想要被决定的属性值相不相等。如果相等的话就可以决定那个属性。决定多个属性要多个属性都相同才行w
    • 看表格找出函数依赖↑
    • 函数依赖的特性
      • 非平凡的函数依赖:被决定因素不包含决定因素。如果包含的话就平凡。
      • 若X->Y,则责任一两个元组若X上的值相等,则Y上的值必然相等,并且称X位决定因素
      • 若X->Y,Y->X,则记作X<->Y
  • 部分函数依赖 & 完全函数依赖
    • 在R(U)中,如果X->Y并且对于X的人和镇自己X'都有X'!->Y,则称Y完全函数依赖于X,记为X-f->Y;否则称Y部分函数依赖于X,记为X-p->Y
    • 部分函数依赖存在非受控冗余
  • 传递函数依赖
    • R(U)中,若X->Y,Y->Z,且Y不属于X,Z不属于Y,Z不属于X,Y!->X,则称Z传递函数依赖于X。
    • 传递函数依赖存在非受控冗余
  • 候选键
    • 设K为R(U)中的属性或属性集合,若K-f->U,则称K为R(U) 上的候选键(Candidate Key)
    • 唯一性 & 最小性
    • 可以任选一候选键作为关系R的主键Primary Key
    • 包含在任意候选键中的属性称为主属性Prime Attribute,其他属性称为非主属性。
    • 超码若K是R的一个候选键,K属于S,则称S为R第一个超码
  • 外码
    • 若R(U)中的属性或属性组合X并非R的候选键,但X确实另一关系的候选键,则称X为R的外来见(Foreign Key),简称外码。

 

  • 闭包Closure
    • 设F是关系模式R(U)中的一个函数依赖集合,被F逻辑蕴含的所有函数依赖集合称为F的闭包Closure,记作F+.
    • 若F+=F则说F是一个函数依赖完备集

 

关于函数依赖的公理定理,相关证明

  • Armstrong's Axioms A1~A3

设R(U)是属性及U={A1,A2,…,An}上的一个关系模式,F为R(U)的一组函数依赖,记为R(U,F),则有以下规则成立:

  • 自反律Reflecxivity rule:若Y属于X属于U,则X->Y被F逻辑覆盖
  • 增广律 若x->y属于F,且Z属于U,则XZ->YZ被F逻辑蕴含
  • 传递律 若X->Y属于F,Y->Z属于F,则X->Z被F逻辑蕴含
  • 引理
    • 合并律:若X->Y且X->Z则X->YZ
    • 伪传递律:若X->Y且WY->Z则XW->Z
    • 分解率: 若X->Y且Z属于Y,则X->Z

二、关系范式模式分解理论

  • 若关系模式R(U)中关系的每个分量都是不可分的数据项(值,原子),则称R(U)属于第一范式,记为:R(U)属于1NF
    • 即不能存在多值属性
  • 若R(U)属于第一范式,且U中的每一非主属性完全函数依赖于候选键,则称R(U)属于第二范式,记为R(U)属于第二范式
  • BCNF
    • 判定:F里面都是一下几种东西之一
      • 函数依赖的左边都是关系的超码
      • 函数依赖都是平凡函数依赖
    • BFNF能消除所有基于函数依赖能发现的冗余

 

 

猜你喜欢

转载自blog.csdn.net/sinat_39763590/article/details/93731150