当前位置:操作系统 > Unix/Linux >>

数据库三范式(下)


数据库三范式(下)
 
应用实例:
 
假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:
1.公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等
2.公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等
3.公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)  www.zzzyk.com  
经过总结我们可以得到如下的一张表,为第一范式:

 
第二范式规范化的表为:


 
第三范式规范化的表为:

总结:
                 三种范式之间的关系:
–  第一范式(1NF)的目标:确保每列的原子性。
–  第二范式(2NF)的目标:确保表中的每列,都和主键相关
–  第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关
   www.zzzyk.com  
 1N
  ↓消除非主属性对码的部分函数依赖
 2N
  ↓ 消除非主属性对码的传递函数依赖
 3N
  ↓ 消除主属性对码的部分和传递函数依赖
 
            规范化的本质是提高数据独立性,解决插入异常、删除异常、修改复杂、数据冗余等问题的方法。规范化的基本思想是逐步消除数据依赖中不合适的部分。我们在设计数据库时必须要考虑这些因素,要符合三范式的设计规范,建立规范,简明的数据库。
 
 
作者 赵书立
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,