数据库范式

1范式:每个关系模式都满足1范式

2范式:1范式前提下,消除部分函数依赖,有AB->C和B->C就只保留B->C。单属性码一定是完全函数依赖

 

3范式:2前提向下,消除非主属性对码的函数传递依赖

BCNF: 

 

 模式分解示例:

 

 

关系的规范化就是 

 

 关系分解是通过投影实现的

 

 函数依赖集候选码求解的具体算法在学习通上。

L属性:只出现在左手边,也就是主码的属性

R属性:只出现在右手边

LR:两边都有的

N:没出现的

以下图第3个为例

设两个集合X ={L,N},Y={LR,R}

L=:BD,R=∅

LR= AC, N = ∅

然后看有没有L决定的。这里没有,所以BD不是码

然后在Y里挑出一个被决定的属性放到L里

比如A,则对BAD而言,有A→C,因此将C添加到左边发现正好是ABCD,是全集,则BAD是一个候选码

挑选C:BCD,BCD又→A,所以也能推出全集,BCD也是一个候选码

(1)因为有B→D,所以AB→D是部分函数依赖,因此它是1范式 AB是码

(2) D是码,单属性一定是2范式,但是有D→A→B,有传递函数依赖,所以是2范式

(3)BCD,BAD都是主属性,表面上好像有传递函数依赖,传递函数依赖是对非主属性的,ABCD都是主属性,全是主属性

(4)主属性为B的情况下,有B→C,B→D,所以B→CD→A,A是非主属性,所以这是个2范式

(5)ABC是主属性,全部属性只有一条,恰好还包含了ABC,因此它的所有决定属性的因素都包含码,也就是BC范式

另一个例题

 对于

(1)已知AB是主码,只有一个依赖,所以是BCNF

(2)已知码是AB,有B→D,存在非主属性对主码的部分函数依赖

(3)已知主码是BC,依然是1范式理由同上

还一个例题:

(1) 基本函数依赖F:员工(用工号表示),日期→零件 ,员工→部门(用部门名称表示),部门→经理

在这个语义下,员工和日期能确定一个唯一的元组,因此员工和日期是主码

(2)R1(工号,日期→零件数)

         R2(工号→部门→经理)

R1满足3范式,R2存在传递函数依赖,2范式

将R2拆分成,R21(工号→部门),R22(工号,经理)

多值依赖

 

 

 

 

 仓库保管员的例子

多值依赖和函数依赖的区别 

 

 

 

 

 范式等级和工程需求的对应关系

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值