2011.2.26数据库设计范式小结

又准备开始找工作了,根据以往经验,数据库范式是面试时较为常见的问题,前些天重新翻了下资料,今晚简单总结一下。

在数据库设计时,我们鼓励设计满足一定的规则,即是所谓的数据库范式,已确保消除数据库的数据冗余、更新异常、插入异常、删除异常。数据库范式有第一范式,第二范式,第三范式,BCNF范式....一般情况下,我们主需要关注到第三范式

第一范式要求数据库表中的属性具有原子性,即他的属性列不能是多列。这个无需理会,只要是关系型数据库都满足此范式。

第二范式要求数据库表的非关键字段完全依赖于任意候选关键字段,既不存在依赖于关键字段的某部分的非关键字字段。

第三范式要求消除数据库表的传递依耐性,即不存在非关键字字段传递函数依赖于关键字段。

BCNF范式是修正的第三范式,要求不存在任何字段传递依赖于关键字段。


然后举下例子吧,拿个简单的企业人事管理系统来做例子,数据有 员工ID,员工资料,部门ID,部门资料,任务ID,任务资料

满足第一范式
(员工ID,员工资料,部门ID,部门资料,任务ID,任务资料)

满足第二范式
(员工ID,员工资料,部门ID,部门资料)
(员工ID,任务ID)
(任务ID,任务资料)

满足第三范式
(员工ID,员工资料,部门ID)
(部门ID,部门资料)
(员工ID,任务ID)
(任务ID,任务资料)

当然,实际设计中也不一定要做到满足这些范式,具体情况具体分析,下次再写(*^__^*)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值