
1.3.3 数据库设计过程
创建数据库首先要分析建立数据库的目的,再确定数据库中的表、表的结构、主关键字及表之间的关系。下面将遵循前面给出的设计原则和步骤,以“学籍管理”数据库的设计为例,具体介绍在Access中设计数据库的过程。
例如,某学校学籍管理的主要工作包括教师管理、学生管理和学生选课成绩管理等几项,学生选课成绩信息表如图1.20所示。

图1.20 学生选课成绩信息
1.需求分析
对用户的需求进行分析,主要包括3方面的内容:信息需求、处理要求、安全性和完整性要求。针对该例,对学籍管理工作进行了解和分析,可以确定建立“学籍管理”数据库的目的是解决学籍信息的组织和管理问题,主要任务应包括教师信息管理、课程信息管理、学生信息管理和选课成绩情况管理等。
2.确定数据库中的表
表是关系数据库的基本信息结构,确定表往往是数据库设计过程中最难处理的步骤。在设计表时,应该按以下设计原则对信息进行分类。
(1)表不应包含重复信息,表间不应有重复信息。如果每条信息只保存在一个表中,只需在一处进行更新,这样效率更高,同时也消除了包含不同信息的重复项的可能性。
(2)每个表应该只包含关于一个主题的信息。如果每个表只包含关于一个主题的事件,则可以独立于其他主题维护每个主题的信息。
根据这个原则,可以确定,在“学籍管理”数据库中设计“教师”“课程”“学生”“选课成绩”等表,分别存放教师信息、课程信息、学生信息和学生选课成绩信息。
3.确定表中的字段
每个表中包含同一主题的信息,并且表中的每个字段包含该主题的各个事件。在确定每个表的字段时,应遵循以下原则。
(1)每个字段直接与表的主题相关。
(2)表中的字段必须是原始数据,即不包含推导或计算的数据。
(3)包含所需的所有信息。
(4)以最小的逻辑部分保存信息。
(5)确定主关键字字段。
根据这个原则,可以确定4个表的字段和主关键字如表1.1所示。
表1.1 学籍管理基本表设计

续表

主关键字主要用来确定表之间的联系,表示每一条记录。它可以是一个字段,也可以是一组字段,但必须是唯一的、不可重复的。
4.确定表间的关系
为各个表定义了主关键字之后,还要确定表之间的关系,将相关信息结合起来形成一个关系型数据库。表之间的联系有3种类型,即一对一、一对多和多对多联系。图1.21所示为“学籍管理”数据库中表之间的联系。

图1.21 表间关系
5.设计求精
通过前面的几个步骤,设计完需要的表、字段和关系后,就应该检查该设计方案并找出任何可能存在的不足,如是否遗忘了字段、是否包含重复信息、是否设计了正确的主关键字等。因为在现在改变数据库的设计要比在以后开发过程中更改已经装满数据的表容易得多。