数据库系统概论——关系数据理论

函数依赖

  • 函数依赖:X→Y的意义是对于X属性的相同的值,对应的Y的值一定是相同的,即X如果确定,一定可以通过X确定出Y
  • 传递函数依赖:X→Y,Y→Z,且Y与Z不含于X,Z不含于Y,并且Y无法→X,则称Z传递依赖于X
  • 候选键:能够决定R模式中的其他的所有关系,如果候选键多个,则可以选择一个为主码;含于任意候选键中的属性,称为主属性
  • 闭包F+:F中的函数依赖所能推出的所有的函数依赖关系的集合
  • 覆盖:F+=G+
  • 属性闭包X+f:能够由X推出来的元素构成的集合(包括X)

规范形式

  • 1NF:R中的属性值不能再分属性值
  • 2NF:非主属性要求完全依赖于候选键,不可以部分依赖
  • 3NF:候选键与非主属性之间不存在传递依赖
  • BCNF:F中的袭来关系中存在左边不含有候选键的依赖

模式分解

模式分解即把一个关系R,分解成多个Ri,分解的过程中,要考虑分解的无损连接性以及保持依赖性两个问题

无损连接的检验算法

无损连接的定义在于将R关系分解成的n个小关系自然连接后如果仍与R保持一致则保证了无损连接

  • 基本判断方法:将关系R(ABCDEF)中的每一个属性作为列项,将ρ=R{R1,R2,R3,....} 作为横项,F为函数依赖集合{A→B,B→C.....},针对于R1、R2中含有的属性项均标记为a,不含有的标记为b,形成初始化的列表,针对于A→B,A中属性值相同的行,B中的属性值也要要求相同。当将表修改完毕后,出现一行全部是a的项,则成为了无损连接,否则为有损链接。


  • 特殊判定方法将R分解成R1、R2两个模式时的检验方法:如果R1与R2的交集能够决定R2——R1或者R1——R2时,则可以判断其是无损连接

    保持依赖分解的检验算法

    ρ=R{R1,R2,R3,....},Ri所产生的函数依赖的∪产生的G覆盖F,即G+=F+,则可以说明分解保持依赖分解

    分解为BCNF范式

    通过观察F,将含有候选键的关系组成Ri,其余的单独组成Ri
  • 无损连接分解BCNF:从R中不断地将不满足BCNF模式的关系拿出来单独形成一个Ri,知道剩余的模式是BCNF为止

    分解成3NF范式

    F中的每一个依赖单独构成一个模式,而后考虑能够合并
  • 保持依赖分解3NF:先对依赖集F进行一个极小化处理,将F中未能出现的属性放在一起构成一个关系模式Ri,其余的单独成为一个模式,若X决定Y,X决定Z,则{XYZ}构成一个模式
  • 既保持依赖,又无损连接:上述算法产生的模式中,存在一个模式含有候选键,则可以在保持依赖的基础上保持无损连接

猜你喜欢

转载自www.cnblogs.com/wfplingyun/p/12445468.html