函数依赖与关系模式的范式

目录

 

函数依赖

完全函数依赖与部分函数依赖:

传递函数依赖:

关系模式的范式

第一范式

第二范式

第三范式


函数依赖

关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。数据依赖有函数依赖 、多值依赖

函数依赖(FD ,Functional Dependency)是关系模式中属性之间的一种逻辑依赖关系。

SCD(SNo,SN,Age,Dept,MN,CNo,Score)                        SNo确定一个学生,一个学生确定(SN,Age,Dept)

SNo决定函数(SN,Age,Dept)                              (SN,Age,Dept) 函数依赖SNo

函数依赖的定义:设关系模式R(U,F), U是属性全集,FU上的函数依赖所构成的集合,XYU的子集,如果对于R(U)的任意一个可能的关系r ,对于X的每一具体值,Y 都有唯一的具体值与之对应,则称X决定函数Y ,或Y函数依赖于X,记作X→Y。我们称X为决定因素, Y为依赖因素。当Y不函数依赖于X 时,记作:X/→Y。当X→YY→X时,则记作:X↔Y

U={SNo,SN,Age,Dept,MN,CNo,Score}

F={SNo→SN,SNo →Age,SNo→ Dept, (SNo ,CNo)→ Score}
 

完全函数依赖与部分函数依赖:

设有关系模式R(U),U是属性全集,X和Y是U的子集。

如果 X→ Y ,并且对于 X 的任何一个真子集 X' ,都有 X'/→Y , 则称 YX 完全函数依赖,记作X→Y(箭头上加  f)

如果对 X 某个真子集 X', X'→Y , 则称 Y X 部分函数依赖,记作 X→Y(箭头上加 p)

[例]关系模式SCD中,因为SNo /Score,且CNo /Score,所以有:(SNo,CNo)Score (箭头上加  f),而SNo Age,所以(SNo,CNo) →  Age 箭头上加 p)

只有当决定因素是组合属性时,讨论部分函数依赖才有意义;当决定因素是单属性时,只能是完全函数依赖。

传递函数依赖:

设有关系模式 R(U) ,U 是属性全集,X,Y,Z U 的子集。

X→ Y ,但 Y/→X,而Y→Z(Y∉Z,Z∉Y),则称 ZX 传递函数依赖,记作:X → Z (箭头上加 t)。如果 Y→X,则 X↔Y , 这时称 Z对 X 直接函数依赖,而不是传递函数依赖。

关系模式的范式

关系模式存在的问题:

  1. 数据冗余度太大,浪费存储空间
  2. 更新异常
  3. 插入异常,该插入的数据插不进去
  4. 删除异常,不该删除的数据也删了

产生上面的异常原因是:模式中的某些数据依赖引起的

所以:用规范化理论改造关系模式,消除其中不合适的数据依赖。

第一范式

定义:如果关系模式R所有的属性均为原子属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R∈1NF。它所有的属性都为原子属性。

第二范式

定义:如果关系模式R∈1NF,且每个非主属性都完全函数依赖于R的主码,则称R属于第二范式,简称2NF,记作R∈2NF。

从1NF关系中消除非主属性对主码的部分函数依赖,则可得到2NF关系。如果R的主码为单属性,或R的全体属性均为主属性,则R∈2NF。

2NF规范化是指把1NF关系模式通过投影分解,转换成2NF关系模式的集合。

[例]将SCD(SNo,SN,Age,Dept,MN,CNo,Score)规范为2NF。

SD(SNo,SN,Age,Dept,MN)        /*主码为SNo*/      

SC(SNo,CNo,Score)                    /*主码为SNo,CNo*/        

非主属性对主码完全函数依赖,因此,SD∈2NF, SC∈2NF。 

第三范式

定义:如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于R的主码,则称R属于第三范式,简称3NF , 记作 R∈3NF。

[例] SC(SNo,CNo,Score)  函数依赖为(SNo,CNo)Score,非主属性Score不传递函数依赖于主码(SNo,CNo),因此,SC∈3NF。

[例]SD(SNo,SN,Age,Dept,MN)   SNo Dept 和 Dept MN      由此SNoMN  (箭头上加 t) 非主属性MN与主码SNo间存在着传递函数依赖,所以SD ∉ 3NF。

 

纯属个人学习笔记,转载记得附上原文链接

喜欢的小伙伴可以关注点赞收藏三连哦

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值