游戏开发工具

实际应用中,需求分析阶段需要做什么?

在《数据库设计步骤》一节我们介绍了设计数据库的基本步骤,下面将详细介绍需求分析阶段。

需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。

常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表并请用户填写和查阅与业务相关的数据记录等。

常用的需求分析方法有调查客户的公司组织情况,各部门的业务需求情况、协助客户分析系统的各种业务需求和确定新系统的边界。

无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤:

1、收集信息

2、标识实体

3、标识每个实体需要存储的详细信息

4、标识实体之间的关系

收集信息

创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单来说,就是要了解数据库中需要存储哪些信息(数据),实现哪些功能。

下面以酒店管理系统为例,我们需要了解酒店管理系统的具体功能,以及在后台数据库中保存的数据,如以下需求:

1、酒店为客人准备充足的客房,后台数据库需要存放每间客房的信息,如客房号、客房类型、价格等。

2、客人在酒店入住时要办理入住手续,后台数据库需要存放客人的相关信息,如客人姓名、身份证号等。

标识实体

在收集需求信息后,必须标识数据库要管理的关键对象或实体。实体可以是有形的事物,如人或产品,也可以是无形的事物,如商业交易、公司部门或发薪周期。

在系统中标识这些实体以后,与它们相关的实体就会条理清楚。以酒店管理系统为例,我们需要标识出系统中的主要实体。

1、客房:单人间、标准间、三人间、豪华间和总统套房。

2、客人:入住酒店客人的个人信息。


注意:实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。

数据库中每个不同的实体都拥有一个与之相对应的表,按照以上的酒店管理系统需求,在酒店管理系统数据库中,会对应至少两张表,分别是客房表和客人表。

标识每个实体需要存储的详细信息

将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单的说,就是需要细分出每个实体中包含的子成员信息。

下面以酒店管理系统为例,逐步分解每个实体的子成员信息,如下:

1、客房:客房号、客房类型、客房状态、客房描述、床位数、入住人数、价格

2、客人:客人姓名、身份证号、客人编号、入住日期、结账日期、押金、总金额


在进行实体属性分解时,含义相同的成员信息不能重复出现,如联系方式和电话等。

每个实体对应一张表,实体中的每个子成员分别对应表中的每一列。例如,从上述关系可以看出客人应该包含姓名和身份证号等列。

标识实体之间的关系

关系型数据库有一项非常强大的功能,即它能够关联数据库中各个项目的相关信息,不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。

在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。

以酒店管理系统为例,客人与客房有主从关系,我们需要在客房实体中标明其入住的客房号。