日期:2014-05-16  浏览次数:20517 次

数据库三范式(下)

应用实例:

 

假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:

1.公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等

2.公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等

3.公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)

经过总结我们可以得到如下的一张表,为第一范式:

 

第二范式规范化的表为:

第三范式规范化的表为:

总结:

                 三种范式之间的关系:

–  第一范式(1NF)的目标:确保每列的原子性。

–  第二范式(2NF)的目标:确保表中的每列,都和主键相关

–  第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关

 

 1N
  消除非主属性对码的部分函数依赖

 2N
  ↓
消除非主属性对码的传递函数依赖
 3N
  ↓
消除主属性对码的部分和传递函数依赖

            规范化的本质是提高数据独立性,解决插入异常、删除异常、修改复杂、数据冗余等问题的方法。规范化的基本思想是逐步消除数据依赖中不合适的部分。我们在设计数据库时必须要考虑这些因素,要符合三范式的设计规范,建立规范,简明的数据库。

7楼linlin802306192小时前
http://blog.csdn.net/linlin80230619/article/details/7626300应该把咱俩的范式合并合并~
6楼lfmilaoshi5小时前
深入浅出。。。好好。。。米老师
5楼lzh11106小时前
。。。。。。。。。。。
4楼hejingyuan612小时前
我说呢,上一个差个例子,嘿嘿
3楼aboy123昨天 19:56
有例子容易理解多了
Re: as19901130昨天 21:19
回复aboy123n嘿嘿,篇幅有点长,就分开了