4.2 系统需求分析
需求分析就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确反映用户的实际需求,将直接影响后面各个阶段的设计,并影响设计结果是否合理和实用。
4.2.1 需求分析的任务
需求分析的任务是通过详细调查现实世界处理的对象(如组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据库的如下要求。
1)信息要求。信息要求是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
2)处理要求。处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
3)系统要求。系统要求主要从以下三个方面考虑。①安全性要求:系统有几类用户使用,每一类用户的使用权限如何。②使用方式要求:用户的使用环境是什么,平均有多少用户同时使用,最高峰时有多少用户同时使用,有无查询相应的时间要求等。③可扩充性要求:对未来功能、性能和应用访问的可扩充性的要求。
4.2.2 需求分析的方法
进行需求分析首先是调查清楚用户的实际需求,与用户达成共识,然后分析与表达这些需求。
调查用户需求的具体步骤如下:
1)调查组织机构情况,包括了解该组织的部门组成情况、各部门的职责等,为分析信息流程做准备。
2)调查各部门的业务活动情况,包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这是调查的重点。
3)在熟悉了业务的基础上,协助用户明确对新系统的各种要求,包括信息要求、处理要求、完全性与完整性要求,这是调查的又一个重点。
4)确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。
在调查过程中,可以根据不同的问题和条件,使用不同的调查方法。常用的调查方法有如下几个。
1)跟班作业。通过亲身参加业务工作来了解业务活动的情况。通过这种方法可以比较准确地了解用户的需求,但比较耗费时间。
2)开调查会。通过与用户座谈来了解业务活动情况及用户需求。座谈时,参加者和用户之间可以相互启发。
3)请专人介绍。
4)询问。对某些调查中的问题,可以找专人询问。
5)问卷调查。设计调查表请用户填写。如果调查表设计得合理,这种方法是很有效的,也易于为用户所接受。
6)查阅记录。查阅与原系统有关的数据记录。
需求调查的方法很多,常常综合使用各种方法。对用户对象的专业知识和业务过程了解得越详细,为数据库设计所做的准备就越充分,并且确信没有漏掉大的方面。设计人员应考虑将来对系统功能的扩充和改变,所以,尽量把系统设计得易于修改。
在调查了解了用户的需求之后,还需要进一步分析和表达用户的需求。在众多的分析方法中结构化分析(Structured Analysis,SA)方法是一种简单实用的方法。SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统,它把任何一个系统都抽象为如图4-2所示的形式。
图4-2 系统高层抽象图
数据流图表达了数据和处理过程的关系。在SA方法中,处理过程的处理逻辑常常借助于判定表或判定树来描述。系统中的数据则借助于数据字典(Data Dictionary,DD)来描述。对用户需求进行分析与表达后,必须提交给用户,征得用户的认可。
数据流图的符号说明如下。
1)数据流。由一组确定的数据组成。数据流用带名字的箭头表示,名字表示流经的数据,箭头则表示流向。例如,“成绩单”数据流由学生名、课程名、学期、成绩等数据组成。
2)加工。加工是对数据进行的操作或处理。加工包括两方面的内容:一是变换数据的组成,即改变数据结构;二是在原有的数据内容基础上增加新的内容,形成新的数据。例如,在学生学习成绩管理系统中,“选课”是一个加工,它把学生信息和开设的课程信息进行处理后生成学生的选课清单。
3)文件。文件是数据暂时存储或永久保存的地方,如学生表、课程表。
4)外部实体。外部实体是指独立于系统而存在的,但又和系统有联系的实体,它表示数据的外部来源和最后去向。确定系统与外部环境之间的界限,从而可确定系统的范围。外部实体可以是某种人员、组织、系统或某事物。例如,在学生学习成绩管理系统中,家长可以作为外部实体存在,因为家长不是该系统要研究的实体,但他可以查询本系统中有关学生的成绩。
构造DFD的目的是使系统分析人员与用户进行明确的交流,指导系统设计,并为下一阶段的工作打下基础。所以,DFD既要简单,又要容易被理解。构造DFD通常采用自顶向下、逐层分解,直到功能细化,形成若干层次的DFD为止。图4-3所示是学校成绩管理系统的第一层数据流图。如果需要,还可以对其中的三个处理过程分别创建第二层数据流图。
数据流图表达了数据和处理的关系,数据字典则是以特定格式记录下来的,对数据流图中各个基本要素(数据流、文件、加工等)的具体内容和特征所做的完整的对应和说明。
数据字典是对数据流图的注释和重要补充,它帮助系统分析人员全面确定用户的要求,并为以后的系统设计提供参考依据。
数据字典包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
图4-3 成绩管理系统的第一层数据流图(部分)
1)数据项。数据项是不可再分的数据单位。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}。其中,取值范围与其他数据项的逻辑关系定义了数据的完整性约束条件。
2)数据结构。数据结构反映了数据之间的组合关系。数据结构描述={数据结构名,含义说明,组成{数据项或数据结构}}。
3)数据流。数据流是数据结构在系统内传输的路径。
数据流描述={数据流名,说明,数据流来源,数据流去向,组成{数据结构},平均流量,高峰期流量}。
①数据流来源是说明该数据流来自哪个过程。
②数据流去向是说明该数据流将到哪个过程。
③平均流量是指在单位时间(每天、每周、每月等)里的传输次数。
④高峰期流量则是指在高峰时期的数据流量。
4)数据存储。数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成{数据结构},数据量,存取方式}。
①流入的数据流:指出数据来源。
②流出的数据流:指出数据去向。
③数据量:每次存取多少数据,每天(或每小时,每周等)存取几次等信息。
④存取方法:批处理/联机处理;检索/更新;顺序检索/随机检索。
5)处理过程。处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只描述处理过程的说明性信息。
处理过程描述={处理过程名,说明,输入{数据流},输出{数据流},处理{简要说明}}其中“简要说明”主要是说明该处理过程的功能及处理要求。
①功能:说明该处理过程用来做什么。
②处理要求:说明处理频度要求(如单位时间里处理多少事务、多少数据量);响应时间要求等,是后面物理设计的输入及性能评价的标准。
可见数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立的,在数据库设计过程中不断地进行修改、充实和完善。
下面以成绩管理系统数据流图中几个元素的定义加以说明。
1)数据项名:成绩。
说明:课程考核的分数值。
别名:分数。
数据类型:数值型,带一位小数。
取值范围:0~100。
2)数据结构名:成绩单。
别名:考试成绩。
描述:学生每学期考试成绩单。
定义:成绩清单=学生号+课程号+学期+考试成绩。
3)处理过程:选课登记处理。
输入数据流:学期、学生号、课程号。
输出数据流:选课清单。
说明:把选课学生的学生号、所处的学期号、所选的课程号记录在数据库中。
4)数据存储名:学生信息表。
说明:用来记录学生的基本情况。
组成:记录学生各种情况的数据项,如学生号、姓名、性别、专业、班级等。
流入的数据流:提供各项数据的显示,提取学生的信息。
流出的数据流:对学生情况的修改、增加或删除。
概念结构设计是将需求分析得到的用户需求抽象为信息结构即概念模型的过程,它是整个数据库设计的关键。只有将需求分析阶段所得到的系统应用需求抽象为信息世界的结构,才能更好地、更准确地转换为机器世界中的数据模型,并用适当的DBMS实现这些需求。概念结构的主要特点如下:
1)能真实、充分地反映现实世界,包括事物和事物之间的联系;能满足用户对数据的处理要求,是现实世界的一个真实模型。
2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库成功设计的关键。
3)易于更改,当应用环境和应用要求改变时,容易对概念模型进行修改和扩充。
4)易于向关系、网状、层次等各种数据模型转换。
概念模型是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,因而更加稳定。
关系数据库的设计一般要从数据模型E-R图设计开始。E-R图设计的质量直接决定了表结构设计的质量,而表是数据库中最为重要的数据库对象,可以这样说:E-R图设计的质量直接决定了关系数据库设计的质量。E-R图既可以表示现实世界中的事物,又可以表示事物与事物之间的关系,它描述了软件系统的数据存储需求,其中E表示实体,R表示关系,所以,E-R图也称为实体—关系图。在众多的概念模型中,最著名、最简单实用的一种就是E-R模型,它将现实世界的信息结构统一用属性、实体及实体间的联系来描述。