数据库关系模型范式总结

[size=large][size=small]数据库关系模型范式总结
到目前为止,数据库中应用最广泛的是关系数据库。根据满足不同程度的要求,把范式分为:一范式(1NF),二范式(2NF),三范(3NF),BCNF范式,4NF等等。。。
(1)、一范式(1NF)的规范化过程
在数据库表中,每个属性都是不可再分的数据项(原子性),则该关系属于一范式。也就是说不允许表中含表的情况。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。
(2)二范式(2NF)的规范化过程
如果某关系满足一范式,并且它的所有非主属性都完全函数依赖于主键,则该关系满足二范式。也就是在一范式的基础上消除了非主属性对主键的部分函数依赖。在判定是否为二范式时,一旦发现有一个非主属性部分函数依赖于主键,则判定它不属于二范式。
例如:关系模式 SLC(Sno, Sdept, Sloc, Cno, Score),其中Sno为学号、Sdept为系名、Sloc为学生住处,每个系的学生住在同一个地方。Cno为课程号、Score为学生成绩。其中每个学生可以选修多门课程,一门课程可以被多个学生选修。一个学生选定一门课程后就会产生一个成绩。其函数依赖集合为F={Sno→Sdept,Sdept→Sloc,(Sno,Cno)→Score}根据语义,主键为属性组合(Sno、Cno)。函数依赖图如下:
因为Sno→Sdept,所以(Sno,Cno)→Sdept
同样Sno→Sloc,所以(Sno,Cno)→Sloc
可以看到非主属性Sdept、Sloc部分函数依赖于码。所以SLC∈2NF。
(3)三范式(3NF)的规范化过程
三范式(3NF):如果某关系模式满足第二范式,并且它的任何一个非主属性都不传递依赖于主键,则满足第三范式。
例如:上述例子中的关系模式SC(Sno, Cno, Score)。根据语义,主键为属性组合(Sno、Cno)。主键(Sno、Cno)函数确定非主属性Score,不存在非主属性对码的传递函数依赖,满足3NF。
再如:上述例子中的关系模式SL(Sno、Sdept、Sloc),存在传递依赖Sno→Sdept,Sdept→Sloc,所以不是三范式(3NF)。
注意:一个关系模型R若低于3NF范式,就会产生插入异常,删除异常,冗余度大等问题。
(4)小结
2NF→3NF:消除了非主属性对主关键字的传递函数依赖。
1NF→2NF:消除了非主属性对主关键字的部分函数依赖[/size][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值