需求分析
需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析结果是否准确反映用户的实际要求将直接影响到后面各阶段的设计,并影响到设计结果是否合理和实用。
需求分析的任务
需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据库的如下要求:
(1)信息要求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
(2)处理要求。指用户要完成的数据处理功能,对处理性能的要求。
(3)安全性与完整性要求。
确定用户的最终需求是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此往往不能准确地表达自己的需求,所提出的需求往往不断地变化。另一方面,设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此设计人员必须不断深入地与用户交流,才能逐步确定用户的实际需求。
需求分析的方法
进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。
调查用户需求的具体步骤是:
(1)调查组织机构情况。包括了解该组织的部门组成情况、各部门的职责等,为分析信息流程做准备。
(2)调查各部门的业务活动情况。包括了解各部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么等,这是调查的重点。
(3)在熟悉业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求、处理要求、安全性与完整性要求,这是调查的又一个重点。
(4)确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。
在调查过程中,可以根据不同的问题和条件使用不同的调查方法。常用的调查方法有:
(1)跟班作业。通过亲身参加业务工作来了解业务活动的情况。
(2)开调查会。通过与用户座谈来了解业务活动情况及用户需求。
(3)请专人介绍。
(4)询问。对某些调查中的问题可以找专人询问。
(5)设计调查表请用户填写。如果调查表设计得合理,这种方法是很有效的。
(6)查阅记录。查阅与原系统有关的数据记录。
做需求调查时往往需要同时采用上述多种方法,但无论使用何种调查方法,都必须有用户的积极参与和配合。
调查了解用户需求以后,还需要进一步分析和表达用户的需求。在众多分析方法中,结构化分析(Structured Analysis, SA)方法是一种简单实用的方法。SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统。
对用户需求进行分析与表达后,需求分析报告必须提交给用户,征得用户的认可。下图描述了需求分析的过程。

数据字典
数据字典是进行详细的数据收集和数据分析所获得的主要成果。它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。它在数据库设计中占有很重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
①数据项
数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}
其中,“取值范围”、“与其他数据项的逻辑关系”(如该数据项等于其他几个数据项的和、该数据项值等于另一数据项的值等)定义了数据的完整性约束条件,是设计数据检验功能的依据。
可以用关系规范化理论为指导,用数据依赖的概念分析和表示数据项之间的联系。即按实际语义写出每个数据项之间的数据依赖,它们是数据库逻辑设计阶段数据模型优化的依据。
②数据结构
数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
③数据流
数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:
数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
其中,“数据流来源”是说明该数据流来自哪个过程;“数据流去向”是说明该数据流将到哪个过程去;“平均流量”是指在单位时间(每天、每周、每月等)里的传输次数;“高峰期流量”则是指在高峰时期的数据流量。
④数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或手工凭单,也可以是计算机文档。对数据存储的描述通常包括以下内容:
数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
其中,“存取频度”指每小时、每天或每周存取次数及每次存取的数据量等信息;“存取方式”指是批处理还是联机处理、是检索还是更新、是顺序检索还是随机检索等;另外,“输入的数据流”要指出其来源:“输出的数据流”要指出其去向。
①进程控制
处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息即可,通常包括以下内容:
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
其中,“简要说明”主要说明该处理过程的功能及处理要求。功能是指该处理过程用来做什么(而不是怎么做),处理要求指处理频度要求,如单位时间里处理多少事务、多少数据量、响应时间要求等。这些处理要求是后面物理设计的输入及性能评价的标准。
明确地把需求收集和分析作为数据库设计的第一阶段是十分重要的。这一阶段收集到的基础数据(用数据字典来表达)是下一步进行概念设计的基础。
最后,要强调两点:
(1)需求分析阶段的一个重要而困难的任务是收集将来应用所涉及的数据,设计人员应充分考虑到可能的扩充和改变,使设计易于更改、系统易于扩充。
(2)必须强调用户的参与,这是数据库应用系统设计的特点。数据库应用系统和广泛的用户有密切的联系,许多人要使用数据库,数据库的设计和建立又可能对更多人的工作环境产生重要影响。因此用户的参与是数据库设计不可分割的一部分。在数据分析阶段,任何调查研究没有用户的积极参与都是寸步难行的。设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果承担共同的责任。







