数据库中的范式

  • 数据依赖
    • 数据依赖的类型
      • 函数依赖(Functional Dependency,简记为FD)
      • 多值依赖(Multivalued Dependency,简记为MVD)
      • 其他
    • 数据依赖对关系模式的影响
      • "好"的模式:
        • 不会发生插入异常、删除异常、更新异常,
        • 数据冗余应尽可能少
        • 原因:由存在于模式中的某些数据依赖引起的
        • 解决方法:通过分解关系模式来消除其中不合适的数据依赖
    • 函数依赖
      • 定义6.1   设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 "X函数确定Y" 或  "Y函数依赖于X",记作X→Y。  
      • 在关系模式R(U)中,对于U的子集X和Y,
        • 如果X→Y,但Y Í X,则称X→Y是非平凡的函数依赖
        • 若X→Y,但Y Í X,   则称X→Y是平凡的函数依赖
        • 若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。
        • 若X→Y,Y→X,则记作X←→Y。
        • 若Y不函数依赖于X,则记作X→Y。
    • 完全函数依赖与部分函数依赖
      • 定义6.2 在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X' Y, 则称Y对X完全函数依赖,记作X→F Y 。 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X→P Y。
    • 传递函数依赖
      • 定义6.3  在R(U)中,如果X→Y,(Y ÍX) ,Y→X Y→Z, 则称Z对X传递函数依赖。记为:X →传递 Z
      • 注: 如果Y→X, 即X←→Y,则Z直接依赖于X。
      • 定义6.4  设K为R<U,F>中的属性或属性组合。若K    U,  则K称为R的侯选码(Candidate Key)。若候选码多于一个,则选定其中的一个做为主码(Primary Key)。
      • 主属性与非主属性
        • 包含在任何一个候选码中的属性 ,称为主属性(Prime attribute) 
        • 不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute) 
      • 全码
        • 整个属性组是码,称为全码(All-key) 
    • 外部码
      • 定义6.5  关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码
  • 范式
    • 范式是符合某一种级别的关系模式的集合
    • 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式
    • 范式的种类:    
      • 第一范式(1NF)
      • 第二范式(2NF)
      • 第三范式(3NF)
      • BC范式(BCNF)
      • 第四范式(4NF)
      • 第五范式(5NF)
    • 各种范式之间存在联系:
    • 某一关系模式R为第n范式,可简记为R∈nNF。
    • 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化 
    • 1NF
      • 1NF的定义
        • 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
      • 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库
      • 但是满足第一范式的关系模式并不一定是一个好的关系模式
    • 2NF
      • 2NF的定义
        •     定义6.6  若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。
    • 3NF
      • 3NF的定义
        • 定义6.7  关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z Í Y), 使得X→Y,Y→Z成立, Y → X,则称R<U,F> ∈ 3NF。
        • 若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。 
    • BC范式(BCNF)
      • 定义6.8   关系模式R<U,F>∈1NF,若X→Y且Y Í X时,X必含有码,则R<U,F> ∈BCNF。
      • 等价于:每一个决定属性因素都包含码
      • 若R∈BCNF 
        • 所有非主属性对每一个码都是完全函数依赖
        • 所有的主属性对每一个不包含它的码,也是完全函数依赖
        • 没有任何属性完全函数依赖于非码的任何一组属性
      • R ∈BCNF R ∈3NF
  • 多值依赖
    • 定义6.9   
      • 设R(U)是一个属性集U上的一个关系模式, X、 Y和Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关
    • 多值依赖的另一个等价的形式化的定义: 
      • 在R(U)的任一关系r中,如果存在元组t,s 使得t[X]=s[X],那么就必然存在元组 w,vÎ r,(w,v可以与s,t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交换s,t元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为X→→Y。 这里,X,Y是U的子集,Z=U-X-Y。
    • 平凡多值依赖和非平凡的多值依赖
      • 若X→→Y,而Z=φ,则称X→→Y为平凡的多值依赖
      • 否则称X→→Y为非平凡的多值依赖
    • 多值依赖的性质
      • (1)多值依赖具有对称性。若X→→Y,则X→→Z,其中Z=U-X-Y
      • (2)多值依赖具有传递性。若X→→Y,Y→→Z, 则X→→Z –Y
      • (3)函数依赖是多值依赖的特殊情况。若X→Y,则X→→Y。
      • (4)若X→→Y,X→→Z,则X→→YÈ Z。
      • (5)若X→→Y,X→→Z,则X→→Y∩Z。
      • (6)若X→→Y,X→→Z,则X→→Y-Z,X→→Z -Y。
    • 多值依赖与函数依赖的区别
      • (1) 多值依赖的有效性与属性集的范围有关
      • (2) 
        • 若函数依赖X→Y在R(U)上成立,则对于任何Y' Ì Y均有X→Y' 成立
        • 多值依赖X→→Y若在R(U)上成立,不能断言对于任何Y' Ì Y有X→→Y' 成立
    • 4NF
      • 定义6.10   关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y Í X),X都含有码,则R∈4NF。
      • 如果R ∈ 4NF, 则R ∈ BCNF
        • 不允许有非平凡且非函数依赖的多值依赖
        • 允许的非平凡多值依赖是函数依赖 
    • 5NF
      • 定义    如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称R∈5NF。

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值