前言
需求分析简单地说就是分析用户的需求,需求分析是设计数据库的起点,需求分析结果是否准确反映用户的实际要求将直接影响到后面各阶段的设计,并影响到设计结果是否合理和实用
需求分析的任务
需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库
调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据的如下要求:
- 信息要求,指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储那些数据;
- 处理要求,指用户要完成的数据处理功能,对处理功能的要求,如增删改查;
- 安全性与完整性要求
需求分析的方法
进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。
调查用户需求的具体的步骤是:
- 调查组织机构情况
- 调查各部门的业务活动情况
- 在熟悉业务活动的基础上,协助用户明确对新系统的要求
- 确定新系统边界
常用的调查方法有:
- 跟班作业,实际参与到业务活动中了解情况
- 开调查会,邀请该系统的使用人和建立人开座谈会来了解业务活动的需求
- 请专人介绍
- 询问
- 设计调查表请用户填写
- 查阅记录
数据字典
数据字典是进行详细的数据收集和数据分析所获得的主要成果。它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。它在数据库设计中占有很重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程几部分。
数据项
数据项是不可再生的数据单位。对数据项的描述通常包括一下内容:
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,
取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}
例子如下:
sex数据项描述={sex,指学生的性别,性别,char,2,
“男”或“女”,性别只能取男或者女,{Sno->Ssex,Sname-Ssex},1:1}
数据结构
数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
例子如下:
student数据结构描述={student,这是一张学生信息表,组成:{Sno,Sname,sex}}
数据流
数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:
数据流描述={数据流名,说明,数据流来源,数据流去向,组成{数据结构},平均流量,高峰期流量}
例子如下:
登陆信息数据流模式={登陆信息,该用户登陆系统时的基本信息,用户登陆,
系统后台记录,组成{用户名,密码,工号,姓名,性别,上次登陆时间},2/h,3/h}
数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或手工凭单,也可以是计算机文档。对数据存储的描述通常包括以下内容:
数据存储描述={数据存储名,说明,编号,输入数据流,输出数据流,
组成:{数据结构},数据量,存取频度,存储方式(批处理/联机处理,更新/检索(顺序检索/随机检索))}
例子如下:
用户信息数据存储描述={用户信息,登陆该系统的用户信息,1,{用户名,密码},登陆信息,
组成:{用户名,密码,工号,姓名,性别,上次登陆时间},10/h,联机处理,更新}
存储过程
处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明下信息即可,通常包括以下内容:
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
例子如下:
用户登陆处理过程描述={用户登陆,说明:{用户通过登陆界面,使用用户名和密码登陆该系统},
输入:{用户名,密码},输出:{登陆信息},简要说明:{用户登陆更新后台记录}}
补充
数据字典中,数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容,而对于数据项、数据结构、数据流、数据存储和处理过程最好用表来描述,如下:
数据流名 | 说明 | 数据流来源 | 数据流去向 | 组成 | 平均流量 | 高峰期流量 |
---|---|---|---|---|---|---|
登陆信息 | 该用户登陆系统时的基本信息 | 用户登陆 | 后台记录 | 用户名+码+工号+姓名+性别+上次登陆时间 | 2/h | 3/h |
结语
明确地把需求收集和分析作为数据库设计的第一阶段是十分重要的。这一阶段收集到的基础数据(用数据字典来表达)是下一步进行概念设计的基础,要强调两点:
- 需求分析阶段的一个重要而困难的任务是收集将来应用所涉及的数据,设计人员应充分考虑到可能的扩充和改变,使设计易于更改、系统易于扩充
- 必须强调用户的参与,这是数据库应用设计的特点。
借鉴
王珊,萨师煊.数据库系统概论(第五版)[M].北京:高等教育出版社,2014:211-214.