P1 数据库应用系统开发方法前言
第一节 数据库基本概念
1.数据
数据(Date)是数据库中存储的基本对象。
定义:描述事物的符号序列
数据的种类:数字、文字、图形、图像声音及其其他特殊符号。
数据举例:学生记录:(李明,男,1994,湖南,计算机学院)
计算机中数据分为两部分:
临时性数据(内存中的数据)
持久性数据(硬盘中的数据)
数据有类型(Type)与值(Value)之分
类型:数据表示的类型,如整型,字符型等
值:给出符合类型的值
2.数据库
数据库-Database,简称DB
数据的集合,具有统一的结构形式并存放于统一存储介质内,是多种应用数据的集成,并可被各个应用程序所共享
按数据所提供的数据模式存放的
3.数据库系统
数据库系统-Database System,简称DBS
指在计算机系统中引入数据库和数据库管理系统(DBMS)后的完整系统
在不引起混淆的前提下常常把数据库系统简称为数据库
实现有组织地、动态地存储大量相关数据,提供数据管理和资源共享服务
组成:
//---------------------------------//
数据库(数据)【DB】
数据库管理系统(软件)【DBMS】
//--------以上统称DBS------//
数据库管理员(人员)
硬件平台:计算机和网络
软件平台:操作系统、数据库系统
开发工具、接口软件
4.数据库应用系统
数据库应用系统-Database Application System,简称DBAS
组成:数据库系统+应用软件+应用界面
第二节 软件工程与数据库技术
软件工程
1968年北大西洋公约组织的工作会议上Fritz Bauer首先提出“软件工程”的概念,提出要用工程化的思想来开发软件。从此,软件生产进入了软件工程时代。
软件工程是用工程、科学和数据的原则与方法来开发、维护计算机软件的有关技术和管理方法。
软件工程由方法、工程和过程三部分组成-软件工程的三要素。
软件生存周期
一般来说,软件爱你产品从定义开始,经过开发,使用与维护,直到最后退役的全过程称为软件生存周期。
数据库工程:
数据库应用系统的开发是一项软件工程,但又有自己的特点,所以特称为“数据库工程”。数据库工程按内容可分为两部分,一部分是数据库设计,另一部分是相应的应用的设计与实现。
数据库应用系统的设计开发必须有软件过程模型作为指导。
典型的软件开发模型有:瀑布模型、快速原形模型、螺旋模型、快速增量模型、等。
P2 数据库应用系统开发方法第三节
第三节 DBAS声明周期模型
参照软件工程中软件开发瀑布模型原理,DBAS的声明周期由项目规划、需求分析、系统设计、实现与部署、运行管理与维护等5个基本活动组成。
根据DBAS的软件组成和各自功能,分为数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计数据库、数据库事务和应用程序。
根据数据库系统三级模式结构,DBAS设计阶段分为概念设计、逻辑设计、物理设计三个步骤,每一步设计内容涵盖了三条设计主线
1.规划与分析
是DBAS生命周期的第一步,目标是面向实际应用和需求,确定整个数据库应用系统的目标和任务,从技术、操作和经济三个方面进行可行性分析,并制定合理的项目开发计划。
规划与分析的主要工作内容:
系统规划与定义:人物陈述、确定任务目标、确定范围和边界、确定用户视图
可行性分析:技术、经济、操作可行性及开发方案选择
项目规划:项目团队、环境、活动、成本预算、进度计划
2.需求分析
准确了解与分析用户需求(包括数据与处理)
最困难、最耗费时间的一步
需求分析过程由需求获取、需求分析、需求描述与规范说明、需求验证等步骤组成
各种需求的主要工作:
数据需求分析:描述用户需要组织的信息内容形成数据字典
功能需求分析:描述系统做什么,数据处理需求分析、业务规则需求分析
性能需求分析:描述系统应当做到什么程度,数据操作响应时间、系统吞吐量、硬件资源等等
其他需求:存储需求、安全性需求、备份与恢复需求
3.系统设计
如果需求分析阶段的任务就是解决“干什么”的问题,那么系统设计阶段的任务是确定“怎么干”。
系统设计包括:
概念设计:数据库概念模型设计、系统总体设计
逻辑设计:数据库逻辑结构设计、应用程序概要设计、数据库事务概要设计
物理设计:数据库物理结构设计、数据库事务详细设计、应用程序详细设计
4.实现与部署
也成为DBAS的实施。需要根据设计结果建立数据库编写应用程序,集成DBAS软硬件,组成完整的DBAS。
包括建立数据库结构,数据加载,事务和应用程序的编码及测试,系统集成、测试与运行,系统部署。
5.运行管理与维护
主要包括日常维护、系统监控与分析、系统性能调整、系统进行升级等。这些主要工作由DBA(管理员)负责。
第四节 应用案例
1.案例概述
针对商场建立一个数据库应用系统,即商场经营管理系统。该系统应实现顾客管理、商品采购入库、商品销售、财务管理、人力资源管理和查询统计等大类功能。出于篇幅,忽略财务核算、退货、发票等功能。
2.案例业务功能需求及非功能性需求
(1)会员网络查询本人积分情况并修改自己信息(谷歌功能需求)
(2)登记供应商及其提供商品的信息(商品采购功能需求)
(3)系统应能支持顾客现金支付或银行卡刷卡方式支付(商品销售业务功能需求)
(4)对各类员工进行绩效考核,核定管理员工工资。(人力资源管理功能需求)
(5)系统能支持商场的财务业务活动,如银行业务往来、生成财务报告等。(财务管理功能需求)
(6)提供商场业务情况数据查询服务(查询统计管理功能需求)
(7)整个系统对基本销售业务实现秒级响应(性能需求、实时性)
(8)商场平均销售业务量约为1万笔/天;每笔平均3条销售细节在线保存至少1年销售(性能需求、数据处理)
例题:
下列属于数据库设计内容的是:(B)
A.需求分析和维护
B.概念结构设计和逻辑结构设计
C.功能设计和测试用例设计
D.结构设计和行为设计
下列不属于DBAS可行性分析的是:(C)
A.技术可行性
B.经济可行性
C.结构可行性
D.操作可行性
下列不属于数据库运行维护工作的是:(C)
A.系统监控
B.系统性能优化
C.应用系统重写
D.系统升级
在数据库应用系统的需求分析阶段,设有如下工作:
1.分析与描述目标系统需要完成的功能
2.分析与描述目标系统对响应时间、存储容量的要求
3.分析与描述目标系统涉及的数据范围、数据的属性特征及数据之间的关系
4.分析与描述每项功能活动需要的输入数据、业务规则及输出数据
5.分析与描述目标系统的总体结构、功能活动及各功能活动之间的关系
以上属于系统功能建模内容的是:(A)
A.仅1、4、5
B.仅2、4、5
C.仅1、2、3
D.仅3、4、5
6.在数据库应用系统开发的需求调研阶段,需要对用户提出的需求进行分析和整理。此过程不仅需要描述用户提出的具体功能需求,也需要对用户未明确提出的非功能需求进行描述。设在某商场经营管理系统的需求分析阶段整理了下列需求:
1.系统需要支持会员制
2.系统不需要考虑财务核算功能
3.系统应长期稳定运行
4.系统应有销售统计功能
5.系统应保证数据存储安全
以上需求中属于非功能需求的是:(B)
A.仅3、4
B.仅3、5
C.仅4、5
D.仅1、2、5
7.DBAS需求分析阶段的性能分析是分析DBAS应具有的性能指标。下列不属于DBAS性能指标的是(A)
A.数据库空间占用情况
B.数据查询响应时间
C.单位时间内可以完成的查询数量
D.单位时间内可以完成的事务数量
8.DBAS生命周期模型中时间最长的阶段是(D)
A.需求分析
B.系统设计
C.实行与部署
D.运行管理与维护
P3 需求分析第一节、第二节
内容提要:
1.了解需求分析的概念及需求获取的方法
2.了解需求建模方法
3.结构化分析案例-教材购销系统
第一节 需求分析
1.需求分析的概念与意义
需求是指用户对软件爱你的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。
需求分析是计算机系统的软件功能分配和软件设计之间起重要桥梁作用的一项软件工程活动。描述待开发的系统所要完成的功能。
需求分析使系统工程师能够刻画出软件的功能和性能,指明软件和系统其他元素的接口,并建立软件必须满足的约束。
需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
2.需求分析往往因为软件产品的下列特性而困难重重。
①软件功能复杂
②需求的可变性
③软件产品的不可见性
通常,一个计算机应用系统的需求分析工作是在系统分析人员与用户不断交互的过程中完成的。
3.需求获取的方法
面谈:系统分析员与用户方的专家和业务人员进行知识交流、与他们会谈、获得需求。
实地观察:实地观察用户的操作过程,对比现有的系统,思考如何采取更高效的方式。
问卷调查:若需访谈的个体太多,且需要回答容易确定的细节问题,可采取问卷调查方式。
查阅资料:收集和查阅相关的文献资料,如组织机构图、规章制度、相关文档、图标及报告等。
面谈(用户访谈)(对象:项目核心人物)
1.准备访谈
2.计划和安排访谈日程
3.访谈开始和结束
4.引导访谈
5.访谈整理工作
实地考察
1.现场观察法
2.询问法:直接访问、堵截访问、电话访问、邮寄访问等。
问卷调查
适合使用情况:
1.需访谈的个体太多
2.需要问答容易确定的细节问题
3.希望有详细的结果
注意事项:
1.使用问卷表尽可能的简短
2.估计回答问题需要时间,并在问卷表头标注时间
3.制定问题前,先确定你需要的答案
查阅资料
收集用户以下材料:
1.书面需求文档
2.现在的业务操作流程及其改进意见文档
3.现在使用的数据表和文件及其格式,并确定数据的来源
----------------------------------------------------------------------------------------分割线
4.需求分析的过程
A、标识问题:需求分析的第一步,通过对问题和标识获得的对所有求解问题及其运行环境的理解。
B、建立需求模型:目前在信息系统的需求分析中可使用结构化分析模型或面向对象分析模型。
C、描述需求:需求、功能、信息、性能、环境、其他需求。
D、确认需求:需求确认及评审。审核功能需求、数据需求、性能、数据管理及其他需求。
第二节 需求分析方法
目前在信息系统的需求分析中可使用如下方法:
结构化分析与建模方法(简称SAD) 如:DFD建模、IDEF建模
面向对象分析与建模方法(OOA)(第5章介绍) 如:UML用例建模
结构化分析方法的提出
20世纪70年代中期、Stevens、Myers与Constantine等人在结构化程序设计的基础上,倡导结构化设计(Structured Design,SD)技术。
70年代后期,Yourdon等人倡导了SD配套的结构化分析(Structured Analysis,SA)技术,合称为结构化分析与设计方法(SAD)。
结构分析与设计方法是瀑布模型的首次实践。
结构化分析任务
建立分析模型。SA模型是描述软件需求的一组模型,主要包扩功能模型(建模)、数据模型(建模)和行为模型(建模)。
编写需求规格说明书。SRS是分析阶段编写的以文字为主的文档,主要内容包括:引言、信息描述、功能描述、行为描述、质量保证、接口描述以及其他需求等。
结构化分析的指导思想。抽象与分解是结构化分析的主要指导思想。
1.DFD需求建模方法
√数据流图(Data Flow Diagram,DFD):
DFD建模方法的核心是数据流,从应用系统的数据流着手以图形方法刻画和表示一个具体业务系统的数据处理过程和数据流。
P4 第二章 需求分析第二节(二)、第三节
第二节 需求分析方法
*数据流
数据流是数据在系统内传播的路径,因此由一组固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
*数据源(终点)
代表系统之外的实体,可以是人、物或其他软件系统。
*数据处理的加工(处理)
加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。
*数据存储
表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等
2.DFD建模过程
*具体建模过程及步骤
(1)明确目标,确定系统范围。
将用户对目标系统的功能需求完整、准确、一致的描述出来。
(2)建立顶层DFD图
说明系统边界,即系统的输入和输出数据流,顶层DFD只有一张。
(3)构建第一层DFD分解图
中间层DFD,描述某个过程的分解,而它的组成部分又要进一步分解。
(4)开发DFD层次结构图(原则:保持均匀的模型深度,按困难程度选择)
底层DFD,由一些不可再分解的过程组成。
(5)检查确认DFD图
5条规则:
*1*父图中描述过的数据流必须在相应子图出现。
*2*一个处理至少有一个输入流和输出流。
*3*一个存储必定有流入的数据流和流出的数据流。
*4*一个数据流至少有一端是处理框。
*5*表达描述的信息是全面、完整、正确和一致的。
3.IDEF0需求建模方法
IDEF方法:ICAM DEFinition Method,由美国空军发明,从IFEF0到IDEF14(包括IDEF1X在内)共有16套方法,每套方法都是通过建模程序来获取某个特定类型的信息。
最常使用的是IDEF0~IDEF4:
IDEF0:描述系统功能及其相互关系;
IDEF1:系统信息及其数据之间联系;
IDEF2:系统模拟,动态建模;
IDEF3:过程描述及获取方法;
IDEF4:面向对象设计;
4.UML用利建模方法
UML方法采用面向对象思想建模,使用用例图来描述系统功能需求。用例图由系统、角色、用列三种模型元素及其之间的关系构成(详见第5章)
第三节 结构化分析案例-教材购销系统
实例:教材购销系统
从用户调查中了解到,某高校向学生销售教材的手续是:
√先由院办公室的张秘书开--购书证明;
√学生凭证明找教材科的王会计开购书发票;
√向李出纳交付书款;
√然后到书库找赵保管领书。
将上述手工操作流程改为计算机处理流程发,开发一个“教材购销系统”。
DFD功能建模体现的是业务流程
下列不属于DFD方法基本元素的是(D)
A.数据流
B.数据处理
C.数据存储
D.数据结构
E.数据源
下列不属于信息系统需求分析常用建模方法的是(A)
A.ER
B.IDEF0
C.DFD
D.UML
获取需求的主要方法包括(面谈)(实地观察)(问卷调查)(查阅资料)
在信息系统的需求分析中,目前广为使用的结构化分析与功能建模方法主要有DFD、IDEF0等。
其中,DFD建模方法也被称为过程建模和功能建模方法,其核心是(C)
A.数据
B.软件
C.数据流
D.分析过程
P5 第三章 数据库结构设计第二节(二)
第二节 数据库逻辑设计
3NF:如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第3范式的,RΣ3NF
例:判断R(学号,姓名,年龄,所在学院,学院地点,学院电话)是否属于第三范式。
主码:(学号)
非主属性:姓名、年龄,所在学院,学院地点,学院电话
存在关键字断“学院地点”、“学院电话”对关键字段“学号”的传递函数依赖
3NF要求实体的属性不能存在传递依赖。
R不属于3NF
关系模式规范化的基本步骤:
消除决定性集非码的非平凡函数依赖
1NF
消除非主属性对码的部分函数依赖
2NF
消除非主属性对码的传递函数依赖
3NF
消除主属性对码的部分和传递函数
BCNF
消除非平凡且非函数依赖的多值依赖
4NF
示例:设关系模式R(学号、课程号、成绩、教师名、教师地址)规定:每个学生每学一门课只有一个成绩,每门课只有一个教师任教,每个教师只有一个地址,且教师没有同名同姓。
要求:
(1)写出R的基本函数依赖:
存在如下基本函数依赖:
(学号,课程号)-->成绩 课程号-->教师姓名 教师姓名-->教师地址
(2)写出R的候选码:
R的候选码:(学号,课程号)
(3)确定R属于每几范式,并说明理由
∵课程号-->教师姓名
∴(学号,课程号)--P-->教师姓名
∴R不属于2NF,R属于1NF
(4)若R不属于2NF,则将R分解为2NF,并说明理由
把R分解为如下二个关系模式:
R1(学号、课程号、成绩)
R2(课程号、教师姓名、教室地址)
∵R1的候选码为(学号、课程号)
非主属性:成绩
P6 第三章 数据库结构设计第二节(一)
第二节 数据库逻辑设计
1.逻辑设计的任务:
将概念模型(如ER图)转化为DBMS支持的数据模型(如关系模型),并对其进行优化。
2.逻辑设计的依据和阶段目标:
3.补充相关概念
关系模型
数据依赖
候选码、主码、外码
数据规范化
范式
3.1关系模型
有三种主要的数据模型:层次模型、网状模型、关系模型。其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流行的数据模型。
关系模型就是用二维表格结构来表示实体及实体之间联系的模型。
关系的描述称为关系模式(Relation Schema)。关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F)
P8 第三章 数据库结构设计第一节
内容提要:
1.掌握数据库概念设计
2.掌握数据库逻辑设计
3.掌握数据库物理设计
第一节 数据库概念设计
一个设计良好的数据库,在很大程度上决定了系统的陈功与否。
一般分为:①数据库概念设计 ②数据库逻辑设计 ③数据库物理设计
概念设计是数据库设计的核心环节。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
1.数据库概念设计的目标
定义和描述应用领域设计的数据范围
获取信息模型
描述数据的属性特征
描述数据之间的关系
定义和描述数据的约束
说明数据的安全性要求
支持用户的各种数据处理需求
保证信息模型能转化成数据库的逻辑结构(即数据库模式)
2.概念设计的依据及过程:
依据:
数据库概念设计以需求分析的结果为依据,即需求说明书、DFD图以及在需求阶段收集到的应用领域中的各类报表等。
结果:
概念设计的结果是概念模型(ER)与概念设计说明书
过程:
(1)明确建模目标(模型覆盖范围)
(2)定义实体集(自底向上标识和定义实体集)
(3)定义联系(实体间关联关系)
(4)建立信息模型(构造ER模型)
(5)确定实体集属性(属性描述一个实体集的特征或性质)
(6)对信息模型进行集成与优化(检查和消除命名不一致、结构不一致等)
概念设计是DB设计的核心环节。
模型是对现实世界的抽象和模拟。
3.概念模型设计
概念设计目前采用最广泛的是ER建模方法。将现实世界抽象为具有属性的实体及联系。
1976年,Peter.Chen提出E-R模型(Entity-Relationship Model),即实体联系模型,用E-R图来描述数据库的概念模型。
观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。