需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。
常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表并请用户填写和查阅与业务相关的数据记录等。
常用的需求分析方法有调查客户的公司组织情况,各部门的业务需求情况、协助客户分析系统的各种业务需求和确定新系统的边界。
无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤:
- 收集信息
- 标识实体
- 标识每个实体需要存储的详细信息
- 标识实体之间的关系
1. 收集信息
创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单来说,就是要了解数据库中需要存储哪些信息(数据),实现哪些功能。
下面以酒店管理系统为例,我们需要了解酒店管理系统的具体功能,以及在后台数据库中保存的数据,如以下需求:
- 酒店为客人准备充足的客房,后台数据库需要存放每间客房的信息,如客房号、客房类型、价格等。
- 客人在酒店入住时要办理入住手续,后台数据库需要存放客人的相关信息,如客人姓名、身份证号等。
2. 标识实体
在收集需求信息后,必须标识数据库要管理的关键对象或实体。实体可以是有形的事物,如人或产品,也可以是无形的事物,如商业交易、公司部门或发薪周期。
在系统中标识这些实体以后,与它们相关的实体就会条理清楚。以酒店管理系统为例,我们需要标识出系统中的主要实体。
- 客房:单人间、标准间、三人间、豪华间和总统套房。
- 客人:入住酒店客人的个人信息。
注意:实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。
数据库中每个不同的实体都拥有一个与之相对应的表,按照以上的酒店管理系统需求,在酒店管理系统数据库中,会对应至少两张表,分别是客房表和客人表。
3. 标识每个实体需要存储的详细信息
将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单的说,就是需要细分出每个实体中包含的子成员信息。
下面以酒店管理系统为例,逐步分解每个实体的子成员信息,如下:
- 客房:客房号、客房类型、客房状态、客房描述、床位数、入住人数、价格
- 客人:客人姓名、身份证号、客人编号、入住日期、结账日期、押金、总金额
在进行实体属性分解时,含义相同的成员信息不能重复出现,如联系方式和电话等。
每个实体对应一张表,实体中的每个子成员分别对应表中的每一列。例如,从上述关系可以看出客人应该包含姓名和身份证号等列。
4. 标识实体之间的关系
关系型数据库有一项非常强大的功能,即它能够关联数据库中各个项目的相关信息,不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。
在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。
以酒店管理系统为例,客人与客房有主从关系,我们需要在客房实体中标明其入住的客房号。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/24056.html