数据库函数依赖、范式

一、函数依赖

设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)上的任何一个可能的关系r,r中不肯呢过存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称Y依赖于X,即X->Y.其中X成为决定属性组或决定因素。

平凡/非平凡的函数依赖:X->Y 但Y不是X的子集,则X->Y是非平凡的函数依赖。否则是平凡的函数依赖。对于任意关系模式,平凡的函数依赖是一定成立的。如果X->Y且Y->X则记作 X <-->Y

部分依赖/完全依赖:X->Y,且任何X的真子集X'都不能决定Y,则成为Y完全依赖于X(F),否则是部分依赖(P)。

传递依赖:如果X->Y,Y不是X的子集(X与Y是非平凡的函数依赖),且Y不决定X,如果Y->Z,Z不是Y的子集(Y与Z是非平凡函数依赖),则Z对X传递函数依赖。

利用函数依赖定义候选码:设K为R<U,F>中的属性或属性组,若K完全决定U,则K为R的候选码,若候选码多于一个,则选定其中一个作为主码。包含在任何一个候选码中的属性称为主属性,不包含在任何码中的属性是非主属性。

二、范式

通常,有1NF,2NF,3NF,BCNF,4NF,5NF.

1NF:满足最低要求的关系是第一范式。即,元组可区分,属性不可分。

2NF:如果R属于1NF,且每一个非主属性完全依赖于码,则R属于第二范式。也就是说,第二范式消除了非主属性对码的部分依赖。如果关系模式不满足2NF,则会出现更新异常(插入异常,删除异常,修改复杂)

3NF:关系模式中如果不存在这样的码X,属性组Y及非主属性Z(Z不包含于Y),使得X->Y,Y->Z成立,则称R<U,F>属于第三范式。如果R属于第3范式,则每个非主属性既不部分依赖于码,也不传递依赖于码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值