三层体系结构与数据库编程.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三层体系结构与数据库编程

三层体系结构和数据库编程(修订版) 在ACCP课程体系中,《WinForm高级应用程序开发》教材的前三章ADO.NET讲述的是C#操作SQL Server 2000数据库,如果能细心,加耐心地学习并总结,自诩“精通数据库编程”也不为过;然而对于大型的数据库应用系统,或是拥有众多客户端的应用系统,我们需要另外一种“精通”,这就是几乎每个程序员都听说过的“三层体系结构”。本文将阐述三层体系结构和数据库编程间的应用,共分三个部分: 第一部分:理论篇 第二部分:实战篇 第三部分:小结 第一部分:理论篇 定义: 所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构;三层是指逻辑上的三层,即使这三个层放置到一台机器上。 三层体系的应用程序将业务规则、合法性校验等工作放到了中间层进行处理。通常情况下,客户端(界面层或表示层,以下都用表示层)不直接与数据库进行交互,而是通过中间层建立连接,再经由中间层与数据库进行交互。 从上面的定义中可以分离出三个概念:即表示层,业务逻辑层,数据访问层,这三层的功能和之间的关系并形成三层体系构架。 表示层:即界面层,表现方式有WinForm界面或Web界面,尽管表示层并不见得比其它层更重要,但是它几乎得到了全部的荣耀——因为它是唯一的用户可以看到的层。这个层负责与用户进行交互工作。 数据访问层:专门负责与数据库进行交互,对数据库表记录的增删改查操作都由该层完成,数据访问层不负责对数据的判断和处理。 业务逻辑层:业务逻辑相当与一个桥梁的作用,把界面层和数据访问层衔接起来,该层从数据访问层获取数据,并根据表示层的需要来对数据进行处理。业务逻辑层也可以获得表示层提供的数据,并根据数据访问层的需要对其进行处理。 三层之间的调用关系如图: 优势比较----传统的C/S模式 在传统的数据库应用体系中,客户端与数据库完全分开,在客户端上运行了大部分服务,如数据访问规则、业务规则、合法性校验等等。每一个客户端都存在数据引擎,并且每个客户端与数据库服务器建立独立的数据库连接(DB Connection)。 基于该种体系的数据库应用系统的优势:开发周期较短,能够适应大部分中小型数据库应用系统的要求。 但是,随着数据库应用的日渐发展、数据容量的不断增加、客户端数量的不断增加,该种体系结构显示出了诸多缺陷,主要体现在以下几个方面: 1、可扩充性:对于数据库服务器端,每当建立一个数据连接,就会占用大量的系统资源,当数据连接达到一定数量(如20个)时,数据库服务器的响应速度与处理速度将大打折扣。 2、可维护性:基于传统C/S的数据库应用系统,业务规则通常置于客户端应用程序中。如果业务规则一旦发生变化(随便举个例子,如身份证号码有可能升为19位)时,我们就必须修改客户端应用程序,并且将每个客户端进行相应的升级工作。 3、可重用性:采用传统C/S的设计模式时,数据库访问、业务规则等都固化在客户端应用程序中。如果客户另外提出了B/S的应用需求,则需要在WEB服务器中重新进行数据库访问、业务规则、合法性校验等编码(例如将数据库访问写入ASP代码),而所做的工作与客户端应用程序中的功能完全重复,从而加大了工作量,又使得程序开发者心里感到极不舒服。 可扩充性,可维护性是检验软件质量的重要标志,代码可重用性是面向对象编程的最基本优势,三层体系构架恰恰弥补了传统的C/S模式的不足,针对上述的问题,总结出三层体系构架的优点: 1、由于数据访问是通过中间层进行的,因此客户端不再与数据库直接建立数据连接。也就是说,建立在数据库服务器上的连接数量将大大减少。例如一个500个客户端的应用系统,500个客户端分别与中间层服务器建立DCOM连接,而DCOM通讯所占用的系统资源极为有限,并且是动态建立与释放连接,因此客户端数量将不再受到限制。同时,中间层与数据库服务器之间的数据连接通过“连接池”进行连接数量的控制,动态分配与释放数据连接,因此数据连接的数量将远远小于客户端数量。 2、可维护性得以提高。因为业务规则、合法性校验存在于中间层,因此当业务规则发生改变时,只需更改中间层服务器上的某个组件(如某个DLL文件),而客户端应用程序不需做任何处理,有些时候,甚至不必修改中间层组件,只需要修改数据库中的某个存储过程就可以了。 3、良好的可重用性。同样,如果需要开发B/S应用,则不必要重新进行数据访问、业务规则等的开发,可以直接在WEB服务器端调用现有的中间层(如可以采用基于IIS的WebClass开发,或直接编写ASP代码)。 第二部分:实战篇 功能定义: 登入功能是C/S系统中最常见的模块,针对《教务系统》提出如下业务要求: A

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档