第三讲 数据库需求分析
一、需求分析(针对一个应用系统)
1.1 需求分析的基本任务
哪两大基本任务?
应用需求、数据需求
基本任务:
(应用需求:有哪些应用;数据需求:涉及哪些数据)
- 详细调查客观世界(处理对象,包括事和物)
- 充分了解系统工作概况(客观运作流程)
- 明确用户的详细需求(哪些应用&处理要求)
- 描述新系统的应用功能(应用计算过程&涉及相关数据)
1.2 需求分析的基本方法
哪两大基本方法?
1、数据流程图 2、面向对象分析方法UML(用例图/类图/时序图/…)
1.3 需求分析的结果
最终结果是什么?
一套形式化的规范文档!
1.4 需求分析的其他任务
需求分析还应包含哪些工作?
任务还应包括:
- 数据约束
- 使用频率
- 性能要求
- 使用环境
- 界面友好性
- 安全要求,等方面
这些工作,往往才是应用系统真正可用的关键!
二、数据流程图
2.1 基本要素
数据流程图有哪些基本要素,用途?
特别说明:表示方法可用多种多样,甚至增加新的要素,但最重要的是给出对要素的注释(含义和作用)。
2.2 数据流程图
数据流程图要描述什么?
数据流程图(也称数据流图,date flow diagram , DFD)
- 是一种便于用户理解和分析系统业务模型的图形化工具
- 它摆脱了系统实现技术的束缚
数据流程图抽象地描述应用系统的业务模型(形式化建模)包含如下一些方面:
- 处理环节
- 处理流程
- 数据传输
- 数据输入和输出保存数据。
2.4 分层的数据流程图
什么是分层数据流程图,作用?
复杂的应用系统需要采用分层数据流程图分层来描述。
自顶向下,由粗到细
分层的数据流图示例(电子商务网站)
1)顶层数据流程图
用户购买商品、下定单,企业采购商品、保存、供货
顶层图(输入输出图,仅一张):把整个系统视为一个加工,并标出系统从外部对象接收哪些数据流和发送哪些数据流到外部对象。
2)0层数据流程图
(2个输入数据流,3个输出数据流)
0层图(顶层加工细化,仅一张):对系统的顶层加工进行细化,标出这些加工与外部对象和与这些加工的公共保存文件间的数据流向。
3)分层数据流程图
画分层数据流图(循环进行):把上层加工看作是由下层多个子加工形成的子系统,就象从0层图画出1层图一样,画出该加工的分层数据流程图
4)特别注意事项
上下层之间的一致性(接口吻合)!!
2.5 数据字典
数据流图表达了数据、处理过程、及相互作用关系抽象的拓扑结构
对流程图中外部对象、数据流、保存文件和加工等要素的详细描述必需借助数据字典(Data Dictionary)对其逐一描述。
数据字典包含内容:
- 数据项的说明(是数据的最小单位)
- 数据结构的说明(描述某些数据项之间的组成关系)
- 数据流的说明(由一个或一组固定的数据项或数据结构组成结构)
- 加工的说明(对加工逻辑进行说明)
- 保存文件的说明(描述具体的逻辑存储结构,不涉及物理组织)
- 外部对象的说明(定义外部对象的编号、名称、简述等)
2.6 数据字典示例
汽车订票系统
案例3:PPT16-21
(网上下载:http://www.docin.com/p-313670457.html,仅供参考了解数据字典文件大致的书写内容和描述格式)
三、UML类图的作用
3.1 UML
*什么是UML,有哪些常用的UML图?
UML类图描述了什么?
UML
- 指统一建模语言(Unified Modeling Language)
- 采用面向对象软件工程方法来描述一个软件系统的不同部分
主要包括:
- 类图(class diagram):描述数据对象以及对象关系
- 用况图(use case diagram):描述用户与系统之间的交互关系,又称“用例图”
- 活动图(activity diagram):描述系统的不同部分之间的任务流(任务处理过程),又称“时序图/顺序图”
3.2 UML的示例
1)用例图
2)类图
特别指出:
数据流程图(传统方法)中的保存
文件和UML类图(面向对象方法),
是数据库需求分析的两种重要数据来源,是数据库设计的基础。
3)顺序图
四、数据库需求分析
4.1 基本任务
它与需求分析有何不同?
与需求分析的不同
- 需求分析要同时考虑应用功能和所涉及的数据,数据库需求分析仅考虑需要保存哪些数据
- 两者是包含关系
数据库需求分析的核心任务?
数据库需求分析的核心任务
- 数据库需求分析不仅要确定所有待保存的“数据对象”,而且要了解清楚这些数据对象之间存在哪些关联!
- 同样地,要给出每个数据对象和数据关联的数据字典文件!
4.2 数据库需求分析的其他任务
-
首先,要描述清楚一个应用系统(业务模型)涉及的所有数据对象和数据间关联
-
同时,还需要对下述方面进行认真分析:
- 数据约束
- 数据访问频率
- 数据访问安全
- 数据可靠性
- 数据响应效率,等。
- 特别强说明:
- 后者是保证数据库真正可用的关键!
4.3 数据库需求分析人员应具备的能力
1、沟通能力:挖掘客户需求;
2、演讲能力:与客户、开发人员、测试人员达成一致;
3、逻辑思维能力:分析客户散乱的需求,解决问题;
4、原型设计能力:熟悉客户体验,使用设计工具,了解
开发过程或现有产品;
5、Office能力:输出需求规格说明书(word或excel);
6、团队工作能力;
……
特别注释:未必一定要是数据库技术专家!
一个数据库技术专家未必一定是一个优秀的数据库需求分析人员!
DFD其他图示
某银行储蓄所存(取)款过程如下:
储户将填好的存(取)单及存折送交分类处理处.分类处理处按三种不同的情况分别处理.如果存折不符或存(取)单不合格,则将存折及存(取)单直接退还储户重新填写.如果是存款,则将存折及存款单送交存款处理处.存款处理处取出底帐,登记后,将存折退还给储户;如果是取款,则将存折及取款单送交取款处,该服务台取出底帐及现金,记账后将存折与现金退还给储户,从而完成存(取)款处理过程.试按以上过程画出数据流程图.
1.简述数据库需求分析的任务
2.简述数据流程图&数据字典使用要点