日期:2014-05-16 浏览次数:20506 次
假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:
1.公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等
2.公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等
3.公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)
经过总结我们可以得到如下的一张表,为第一范式:
第二范式规范化的表为:
第三范式规范化的表为:
– 第一范式(1NF)的目标:确保每列的原子性。
– 第二范式(2NF)的目标:确保表中的每列,都和主键相关
– 第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关
1N
↓消除非主属性对码的部分函数依赖
2N
↓ 消除非主属性对码的传递函数依赖
3N
↓ 消除主属性对码的部分和传递函数依赖
规范化的本质是提高数据独立性,解决插入异常、删除异常、修改复杂、数据冗余等问题的方法。规范化的基本思想是逐步消除数据依赖中不合适的部分。我们在设计数据库时必须要考虑这些因素,要符合三范式的设计规范,建立规范,简明的数据库。