数据库编程第3章

来源:互联网 发布:网络破案电视剧 编辑:程序博客网 时间:2024/05/30 04:38

第3章 数据库开发过程

开发一个数据库应用,通常需要经过如下的阶段:

  • 阶段1:调查与分析。获得软件的需求信息和基本的功能定义,形成基本的软件功能描述。
  • 阶段2:数据建模。根据应用调查分析得到的信息,建立应用中涉及的数据以及操作数据的方法、流程,形成数据的流动图表。
  • 阶段3:功能设计。针对应用调查与分析结果和数据建模,进行应用的详细功能设计,形成应用的软件升设计文档。
  • 阶段4:选择数据库系统。选择适合应用的数据库系统。
  • 阶段5:选择数据库访问技术。选择适合应用的数据库访问技术。
  • 阶段6:代码设计。设计应用的软件代码。
  • 阶段7:测试与调试。发现设计中的问题并及时更改,直到能稳定地运行。
  • 阶段8:发行应用软件。

本书介绍的所有数据库应用实例都是按照上述步骤进行的,下面分别介绍上述各个阶段的任务和目的。

3.1 阶段1:调查与分析

对软件需求的深入理解是软件开发工作至关重要的一个步骤。不论我们设计的如何好,代码编写的如何高效,没有很好的需求分析,这个软件工程只能给用户带来失望,给开发者造成很大的麻烦。

在需求分析过程中,软件人员和客户都扮演了积极的角色,客户必须尽力将有些模糊的软件功能和性能概念具体详细地描述出来,而开发者则是软件功能的询问者、咨询顾问和问题解决者。这个任务看起来简单,实际上不是这样,客户和开发者之间的通信量很大,通信的内容很繁杂,其中存在误解或者误传的可能性,或者说含糊性,软件工程师面临进退两难的局面,只有通过重复客户的陈述才可能得到完整的理解。

需求分析时软件工程活动,它在系统级别的软件分配和软件设计间起到了桥梁的作用。需求分析能够使软件工程师刻画出软件的功能和性能,指明软件和其他系统元素的接口,并建立软件必须满足的约束条件。

在软件分析过程中,分析人员的主要焦点是发现“问题是什么”,而不是发现“怎么做”,“系统会产生和使用哪些数据?系统必须要完成的功能由哪些?系统的用户界面应该是怎么样的?”等等。通过对当前问题和希望的信息(输入和输出)进行的评估,分析员综合一个或者多个解决方案,选择一个最优方案,开始应用的数据建模。

数据库应用是一种尤其强调应用的软件工程。在需求分析阶段,客户的积极参与,以及软件工程人员的积极配合,是数据库应用开发成功的关键。

3.2 阶段2:数据建模

在技术层次上,软件工程师是从数据建模开始的,这是对被建立软件的完整的需求表示。模型,是软件的第一技术表示,人们提出了许多建模的方法,包括结构化分析方法和面向对象分析方法。

结构化分析方法侧重于对功能的分析,创建描述信息内容和信息流的模型,依据功能和行为对系统进行划分,并描述必须要建立的元素。通过建模必须做到:(1)描述客户的需求;(2)建立创建软件设计的基础;(3)定义在软件完成后可以被确认的一组需求。模型的核心是“数据字典”,这个字典包括了软件使用或者生产的所有数据对象的描述;模型通过实体-关系图描述数据对象之间的关系,通过数据流图指明数据在系统中移动时变换的过程和对数据流进行变换的功能和子功能,通过状态-变迁图指明作为外部实现的结果以及系统进行的动作。

面向对象分析法采用面向对象的分析方法,侧重于对软件实体的描述,对软件涉及的功能实体进行分类并封装。面向对象分析法将实体的数据对于为实体属性,将对身体的操作定义为实体的方法,它代表了实体的一个行为。实体之间通过消息进行交互,通过消息来激发其它实体的功能。通过面向对象建模,软件应用中使用的所有实体被封装到不同的类里,同类的属性和方法体现实体的数据和行为。面向对象分析方法同结构化分析方法的区别在于,面向对象分析方法努力寻找需求定义中涉及的名词,而结构化分析方法则力图寻找需求定义中涉及的动词。

数据库应用中传统的建模方法是结构化分析方法。在数据库应用中,数据在软件中往往扮演十分重要的角色。因此,数据库应用的建模势必影响到软件完成后的运行效率,需要十分重视。

3.3 阶段3:功能设计

这里的功能设计是指详细的功能设计。在需求分析完成后,我们已经有了一个概要的功能描述,但是并不是软件开发中可以使用的功能设计文档,还需要对软件的功能进行更加详细的定义。

通过功能设计应得到如下结果:(1)每个软件功能的详细功能细分与描述;(2)模块的简要工作流程;(3)详细的功能设计文档。

功能设计是由软件开发人员根据需求分析和建模结论进行的。在数据库应用里,功能设计尽可能详尽,而且有必要将软件的详细功能描述提交系统分析员或者客户确认,不允许任何的功能误解。

3.4 阶段4:选择数据库系统

数据库系统选择是狭义软件开发的第一步,选择数据库应用中存放数据的数据库系统。此时需要考虑以下因素:

  • 应用的并发处理要求。应用是否存在多用或同时操作的可能?如果需要并发处理能力,我们往往需要选择大型的数据库服务器作为数据存放的仓库。在一般的桌面应用中,使用单用户的数据库系统就足够了。
  • 应用的事务处理量。应该考虑每天、每小时、甚至每分钟的事务处理数量。在业务量大的情况下,应该选择稳定性比较强的数据库系统作为数据存放仓库。
  • 应用的数据安全性。数据是否需要高度的安全保证,数据是否涉及商业的经济命脉?一般只有大型的数据库服务器才具有数据安全保证,比如在银行的数据库应用中,安全性是最重要的因素。

数据库服务器才具有数据安全保证,比如在银行的数据库应用中,安全性是最重要的因素。除此之外,数据库选择还要考虑开发的方便性,是否便于数据的访问,是否具有丰富的编程接口。

3.5 阶段5:选择数据库访问技术

开发数据库应用时,恰当选择访问数据库的技术是很必要的。数据库访问技术的确定与应用的规模、操作的层次、数据的分布能力以及选择的数据库系统等因素有关。

应用的规模可以分成桌面应用、办公室自动化应用、企业级应用和全球互联网应用四种。桌面应用是最简单、最低级的应用,通常利用Windows系统的Microsoft Access数据库就足够了,Microsoft Access数据库的最快捷方法是使用DAO。办公室自动化应用是一种基于小型局域网的数据库应用,这种应用往往是比较简单的客户/服务器模式,这时,ODBC是一个比较好的选择。企业级应用是一种基于客户/服务器模式的大规模的数据库应用,应用的事务处理量比较大,事务处理能力要求比较高,应该使用OLE DB进行这种开发。ADO是一种适用于互联网应用的数据库访问技术,它往往作为控件在VBScript语句或者ASP语句中使用。

操作的层次是指数据库应用是否涉及到了底层的接口,涉及到了多少。比如应用中需要用到数据库系统里的各种数据库对象的有关信息,需要用户进行一些数据库管理和权限管理,这时,ODBC和OLE DB能够提供这种接口。而MFC的ODBC类,对底层的数据库操作是不能实现的。

数据的分布能力是指应用是否有数据分布处理的要求,大型的应用往往将数据分布到不同的数据库服务器上,为了实现数据的透明访问,ADO和OLE DB是值得采用的技术。

通常选择了数据库,就将数据库访问技术限制到一个小的选择范围。例如我们选择使用微软的SQL Server 7.0 数据库系统,这时我们只能通过ODBC或者通过DAO、OLE DB、ADO访问数据库,而不能采用DAO。DAO虽然也可以通过ODBC访问SQL Server,但是效率非常低下,通常很少会用到它。

但是问题并不是绝对的,本书介绍的任何一种数据库访问技术基本上都可以作为候选的数据库访问技术。选用数据库时,应该根据实际需要确定。

3.6 阶段6:代码设计

这个阶段是实际的代码编写阶段,根据功能的详细设计文档,将所有各模块付诸实施。我们往往把界面设计也作为代码设计的一个内容,因为只不过是VC++提供了可视化的编程环境,实际上也是由VC代替我们编写界面代码。但是更多的功能代码需要我们自行设计的。

代码设计可以分成自顶向下和自底向上两种方法。前者比较容易把握软件的框架结构,而患者则有利于代码的重用。两种方法各有利弊,实际开发时需要结合二者优势,在不同情况下采取不同的策略。

3.7 阶段7:测试与调试

代码完成后,初始系统就基本构建起来了,但是距离反省还有很远的距离。为了保证软件的健壮性、稳定性、界面友好性,需要对软件进行测试。测试的结果往往批量提交给开发人员,有开发人员对软件进行调试和修正,以解决存在的问题。

软件测试是一个艰难的历程,也是保证软件质量的最后关卡,没有经过充分测试的软件是不能发行的。测试一般需要花费与开发相同甚至更长的时间,需要开发人员和测试人员配合进行。

从处理上来分,测试分为自动测试和手动测试:从测试的内容上分,测试分功能测试、稳定性测试、界面友好性测试。有些软件开发公司开发了计算机辅助测试软件,更加完整地控制测试的全面性和质量。

某型应用性强的软件行业在测试的时候将客户邀请到公司,对开发完成的产品进行用户验收。这也是一种测试手段,进一步保证了产品的质量。

3.8 阶段8:发行产品

经过测试后的数据库应用就可以发行了。发行数据库应用同发行其它应用基本相同,需要打包处理,刻盘,生产,最后投放市场并提供给用户使用。

上述数据库应用开发中的各个阶段是不可缺少的,也是不可超越的。其中任何一步被忽视,都将导致不同程序的不良后果。建议读者在进行数据库开发时,一方面严格按照上述步骤进行,另一方面对各个步骤的具体内容进行灵活处理,力求高质量地完成各个步骤的任务,开发出高质量的数据库应用。

0 0
原创粉丝点击