6.1关系数据理论--规范化(函数依赖 码 主属性 范式 )

目录

函数依赖

码与主属性

范式

第一范式 1NF  Normal Form

第二范式 2NF          

第三范式 3NF 

BCNF(Boyce Codd Normal Form)  扩充的第三范式 

定义:

BCNF的确定:

分解成BCNF的一种算法:

多值依赖

定义:

性质:

4NF

定义:

将BCNF的R分解成4NF的方法:

小结


函数依赖

(属于语义范畴)

平凡函数依赖

非平凡函数依赖

部分函数依赖

完全函数依赖

传递函数依赖

码与主属性

候选码 关系模式R<U,F>中的属性或属性组合K,整个属性组U完全函数于K,那么K为R的一个候选码

超码 如果U部分函数依赖于K,那么称K为超码   候选码是最小的超码

主码 候选码有多个,选定一个作为主码

主属性 包含在任何一个候选码中的属性

非主属性 不包含在任何码中的属性称为非主属性

全码 整个属性组都是一个码  不等价于所有属性都是主属性

外码 关系模式R中属性或属性组 X 并非 R的码,但X 是另一个关系模式的码

范式

第一范式 1NF  Normal Form

        对一个二维表R,如果它所有关系的分量都是不可分的,则称关系模式R属于第一范式,简写为R∈1NF。

        关系数据库中的所有关系模式必须满足第一范式。

        数据冗余、删除异常、插入异常、更新异常

第二范式 2NF          

        消除了非主属性对码的部分函数依赖

        若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF。

        如果候选码都是单属性,那么必定都是完全函数依赖  => 如果关系模式R中的候选码都由单属性构成,那么该关系模式为2NF

        投影分解的方法将1范转化为2范

        更新异常、删除异常、插入异常

第三范式 3NF 

        消除了非主属性对码的传递函数依赖

        设关系模式R<U,F>∈1NF, 若R中不存在这样的码X、属性组Y 及非主属性Z(Y ⊉ Z), 使得X→Y (Y ↛ X ),Y→Z 成立,则称R<U,F> ∈3NF。(可能存在主属性对码的部分函数依赖以及传递函数依赖)

        没有非主属性 必定属于3NF

        如果R∈3NF,则R∈2NF

        插入异常 删除异常

BCNF(Boyce Codd Normal Form)  扩充的第三范式 

定义:

        消除了主属性对码的部分和传递函数依赖

        设关系模式R<U,F>∈1NF,若X →Y且Y⊈X 时X 必含有码,则R<U,F>∈BCNF。(每一个属性决定集都包含候选码)

        如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。

        所有非主属性都完全函数依赖于每个候选码;

        所有主属性都完全函数依赖于每个不包含它的候选码:

        没有任何属性完全函数依赖于非码的任何一组属性

        R∈BCNF ⇒ R∈3NF   R∈BCNF ⇍ R∈3NF

BCNF的确定:

        求出R的所有候选码;

        列出F的所有函数依赖;

        如果F中所有的函数依赖中的决定因素都包含码,则R∈BCNF;否则,R∉BCNF,R最高只能是3NF。

分解成BCNF的一种算法

多值依赖

定义:

        设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],交换s,t元组的Y值所得的两个新元组必在r中,则Y多值依赖于X,记为X→→Y。这里X,Y是U的子集,Z=U-X-Y

性质:

        

4NF

定义:

        消除非平凡且非函数依赖的多值依赖

        关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X →→Y (Y ⊈ X),X都含有码,则R<U,F>∈4NF。

        可以有非平凡的多值依赖,但必须是函数依赖

将BCNF的R分解成4NF的方法:

        假设R(A,B,C)∈BCNF满足A→→B, A→→C,则分解R可分解为R1(A, B)和R2(A, C),要求R1(A, B)和R2(A, C) 都是平凡的多值依赖。  

        其它形式的分解类似,原则是分解后的所有关系模式必须都是平凡的多值依赖

小结

        一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。        

        关系数据库的规范化理论是数据库逻辑设计的工具。

关系模式规范化基本步骤:

        

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值