Access 2010数据库程序设计
上QQ阅读APP看书,第一时间看更新

1.3.1 数据库设计步骤

数据库设计一般要经过:确定创建数据库的目的、确定数据库中需要的表、确定该表中需要的字段、确定主关键字和确定表之间的关系等步骤。

1.确定创建数据库的目的

设计数据库的第一个步骤是确定数据库的目的,即需求分析。用户需要确定数据库保存哪些信息。分析用户对数据库的具体要求,这是整个数据库设计的起点。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。

(1)需求分析的任务

通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求。

在此基础上确定新系统的功能。新系统要充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。

(2)需求分析的重点

需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。

①信息要求。即用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。

②处理要求。包含对处理功能的要求、对处理的响应时间的要求、对处理方式的要处理/联机处理)等。

③安全性与完整性要求。安全性是指用户需要如何保护数据才能不被未授权的用户破完整性是指用户需要如何检查和控制不合语义的、不正确的数据,防止它们进入数据库。

具体操作就是与将要使用数据库的人员进行交流,集体讨论需要使用数据库解决的问题,并描述需要数据库生成的报表,同时收集当前用于记录数据的表格。

2.确定该数据库中需要的表

表的确定是数据库设计过程中的关键步骤。在设计表时,应按以下设计原则对信息进行分类。

(1)表不应包含备份信息,表间不应有重复信息。

如果每条信息只保存在一个表中,则数据库管理员只需在一处进行更新,这样效率更高,同时也消除了包含不同信息重复项的可能性。例如,每个学生的地址和电话号码只在一个表中保存一次。

(2)每个表应该只包含关于一个主题的信息。

如果每个表只包含一个主题的信息,则可以独立于其他主题维护每个主题的信息。例如,将学生的住址与学生选课成绩存在不同表中,则在删除某个学生成绩后仍然可以保留学生的信息。

3.确定表中需要的字段

每个表都包含关于同一主题的信息,并且表中的字段应包含关于该主题所需的全部信息。例如,课程表中可以包含课程的课程编号、课程名称、课程类别和学分等字段。在确定每个表的字段时,需要注意以下问题:

(1)每个字段直接与表的主题相关;

(2)不包含推导或计算的数据(表达式的计算结果),即表中字段存储的是原始数据;

(3)包含表的主题所需的所有信息;

(4)以最小的逻辑单位保存信息。例如,在工资表中基本工资、奖金、津贴等应设置为不同的字段,不能只保存为工资一个字段。

4.确定主关键字

数据库中的每个表必须包含表中唯一确定每个记录的字段或字段集,将这种字段或字段集确定为主键(主关键字)。例如,学生表中学生编号可以唯一确定某一个学生,则学生编号可以定为主键。

5.确定表之间的关系

为了能够满足实际应用需求,有些信息需要从几张表中得到,这就需要将多表进行连接,因此一项重要的操作就是要确定数据库中表与表之间的关系。有些字段在本表中不是关键字,但在其他表中是关键字,那么它就是外部关键字。表之间的关系通过外部关键字联系起来。例如,学生编号在学生表中为主键,在选课成绩表中并不是主键,而是外键。学生表和选课成绩表之间通过学生编号产生联系。

6.优化设计

在设计完成需要的表、字段和关系后,就应对该设计进行检查并找出任何可能存在的不足。如果不能满足要求,则要返回到之前几个阶段进行调整并修改。

用Access创建表,指定表之间的关系,并且在每个表中输入充足的示例数据以验证设计。可通过创建查询,检查结果与预期结果是否一致,验证数据库中的关系是否正确;创建简单的窗体和报表,检查显示数据是否是所期望的;最后查找不需要的重复数据,并将其去掉。以上操作如发现问题,需要及时修改该设计。

7.输入数据并创建其他数据对象

如果表的结构已达到了设计要求,则可继续进行操作并在表中添加所有已有的实际数据,创建所需要的相应查询、窗体、报表、数据访问页、宏和模块等数据对象,完成数据库应用系统。