现在的位置: 首页 > 综合 > 正文

如何设计数据库(2)?

2012年12月07日 ⁄ 综合 ⁄ 共 1101字 ⁄ 字号 评论关闭
 

 

数据规范化

 

          仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构。表设计后,很可能结构不合理,出现数据重复保存,简称数据的冗余,这对数据的增删改查带来很多后患,所以我们需要审核是否合理,就像施工图设计后,还需要其他机构进行审核图纸是否设计合理一样。

          如何审核呢?需要一些有关数据库设计的理论指导规则,这些规则业界简称数据库的范式。Dr E.F.codd 最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:

         第一范式(1st NF First  Normal Fromate)

         第二范式(2nd NFSecond  Normal Fromate)

         第三范式(3rd NF Third  Normal Fromate)

 

          如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)。第一范式的目标是确保每列的原子性。

          如果一个关系满足1NF,并且除了主键以外的其他列,都依赖于该主键,则满足第二范式(2NF)。第二范式要求每个表只描述一件事情,确保表中的每列,都和主键相关。

          如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)。第三范式确保每列都和主键列直接相关,而不是间接相关。

 

下面我们来看个形象的例子吧!假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:

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

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

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

         公司定期制定一个工资报表,如图-1所示

 

工程号

工程名称

职工号

姓名

职务

小时工资率

工时

实发工资

A1

花园大厦

1001

齐光明

工程师

65

13

845.00

1002

李思岐

技术员

60

16

960.00

1004

葛宇宏

律师

60

19

1140.00

 

 

 

小计

 

 

 

2945.00

A2

立交桥

1001

齐光明

工程师

65

15

975.00

1003

鞠明亮

工人

55

17

935.00

 

 

 

小计

 

 

 

1910.00

A3

临江饭店

1002

李思岐

技术员

60

18

1080.00

1004

葛宇洪

律师

60

14

840.00

 

 

 

小计

 

 

 

1920.00

 

-1 某公司打印的工资报表

 

 

工程号

工程名称

职工号

姓名

职务

小时工资率

工时

A1

花园大厦

1001

齐光明

抱歉!评论已关闭.