版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章数据库系统的访问对于那些相对独立的软件供应商而言,经常要为每一个编写一个版本的应用程序,或者为每个要访问的编写针对的代码。这就意味着,大量的资源都耗在了编写和维护的访问上,更不用说应用程序了。此时应用程序的评价标准不再是质量,而是它能否在给定的中访问数据库。这就需要开放的数据库连接,就是人们需要用一种新的方法来访问不同的数据库。为此,在/系统中必须广泛使用访问接口技术,以隐藏各种复杂性,屏蔽各种系统之间的差异。常见的数据库访问接口的技术有固有调用以及基于的数据库访问等几种流行的方式。这其中以技术和技术应用最广泛,也是目前最为优秀的访问接口方式。本章主要对几种常见的数据库访问技术如固有调用
2、以及基于的数据库访问等进行介绍。数据库的访问接口所谓访问接口是指分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统。访问接口的作用是保证网络中各部件(软件和硬件)之间透明地连接,即隐藏网络部件的异构性,尤其保证不同网络、不同和某些访问语言的透明性,即下面三个透明性。网络透明性:能支持所有类型的网络。服务器透明性:不管服务器上的是何种型号(、等),一个好的访问接口都能通过标准的语言与不同上的语言连接起来。语言透明性:客户机可用任何开发语言进行发送请求和接受回答,被调用的功能应该像语言那样也是独立的。应用系统访问数据库的接口方式有多种,本节介绍固有调用、和。固有调用每个数据
3、库引擎都带有自己的包含用于访问数据库的函数的动态链接库,应用程序可利用它存取和操纵数据库中的数据。如果应用程序直接调用这些动态链接库,就说它执行的是“固有调用”,因为该调用对于特定的数据库产品来说是“固有”专(用)的。固有调用接口的优点是执行效率高,由于是“固有”,编程实现较简单。但它的缺点也是很严重的:不具通用性。对于不同的数据库引擎,应用程序必须连接和调用不同的专用的动态链接库,这对于网络数据库系统的应用是极不方便的。是“开放数据库互连”的简称。是公司提出的、当前被业界广泛接受的应用程序通用编程接口标准,它以和的调用级接口规范为基础,用于对数据库的访问。我们可以用如下图示来说明概念。概念图
4、实际上是一个数据库访问函数库,使应用程序可以直接操纵数据库中的数据。是基于语言的,是一种在和应用界面之间的标准接口,它解决了嵌入式接口非规范核心,免除了应用软件随数据库的改变而改变的麻烦。的一个最显著的优点是,用它生成的程序是与数据库或数据库引擎无关的,为数据库用户和开发人员屏蔽了异构环境的复杂性,提供了数据库访问的统一接口,为应用程序实现与平台的无关性和可移植性提供了基础,因而获得了广泛的支持和应用。1.ODBC结构结构由四个主要成分构成:应用程序、驱动程序管理器、驱动程序、数据源。其构成及体系结构说明如下:应用程序执行处理并调用ODBCAPI函数,以提交SQL语句并检索结果。驱动程序管理器
5、(DriverManager)根据应用程序需要加载/卸载驱动程序,处理ODBC函数调用,或把它们传送到驱动程序。驱动程序处理ODBC函数调用,提交SQL请求到一个指定的数据源,并把结果返回到应用程序。如果有必要,驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致。数据源包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。其体系结构图如下:SQLServer数据源Oracle数据源Foxpro数据源Sybase数据源DBDBDBDBDBDB2数据源SQLServer数据源Oracle数据源Foxpro数据源Sybase数据源DBDBDBDBDBDB2数
6、据源ODBC数据库应用程序驱动程序管理器SQLServer驱动程序Oracle驱动程序Foxpro驱动程序Sybase驱动程序DB2驱动程序图的体系结构图为达到通用的效果,在应用程序和特定的数据库之间插入了一个驱动程序管理器e驱动程序管理器为应用程序加载或卸载驱动程序,负责管理应用程序中函数在中函数的绑定,它还处理几个初始化调用,提供函数的入口点,进行调用的参数合法性检查等。每种数据库引擎都需要向驱动程序管理器注册它自己的驱动程序,这种驱动程序对于不同的数据库引擎是不同的。驱动程序管理器能将与兼容的请求从应用程序传给这种独一无二的驱动程序,随后由驱动程序把对数据库的操作请求翻译成相应数据库引擎
7、所提供的固有调用,对数据库实现访问操作。通过驱动程序来提供数据库独立性。驱动程序是一个用于支持函数调用的模块通常是一个动态链接库,应用程序调用驱动程序所支持的函数来操纵数据库。若想使应用程序操作不同类型的数据库,就要动态链接到不同的驱动程序上。驱动程序处理函数调用,将应用程序的请求提交给指定的数据源,接受由数据源返回的结果,传回给应用程序。的一致性级别分为三级:核心级、扩展级和扩展级。核心级包括最基本的功能,包括分配、释放环境句柄、数据库连接、执行语句等,核心级函数能满足最基本的应用程序要求。扩展1级在核心级的基础上增加了一些函数,通过它们可以在应用程序中动态地了解表的模式,可用的概念模型类型
8、及它们的名称等。扩展2级在扩展1级的基础上又增加了一些函数。通过它们可以了解到关于主关键字和外来关键字的信息、表和列的权限信息、数据库中的存储过程信息等,并且还有更强的游标和并发控制功能。2.ODBC接口函数按功能分配和释放内存。这组函数用于分配必要的句柄:连接句柄、环境句柄和语句句柄。连接句柄定义一个数据库环境,环境句柄定义一个数据库连接,语句句柄定义一条SQ语句。执行分配函数时首先分配内存,然后定义所需的数据结构,并对指向数据结构的句柄赋值。一但句柄已经分配,应用系统便可以把它传递给后续的接口函数,指出该函数所作用的环境、连接或语句。连接。在应用系统的流程控制中,一旦环境(包括其句柄)已经
9、分配,便可以建立二个或者多个连接句柄;同样地,语句句柄也是如此。有了用于连接的函数,用户便能与服务器建立自己的连接。但在退出应用系统时,应关闭与服务器的连接。执行语句。指定和执行语句的方法有两种:准备的和直接的。如果想让应用系统多次提交语句并且可能修改参数值,便使用准备的执行;如果只让应用系统提交一次请求,便使用直接的执行。接收结果。这组函数负责处理从语句结果集合中检索数据,并且检索与结果集合相关的信息。例如,描述结果集合中的一列以及属性,取出结果集合的下一行,计算一条语句所影响的行数等。任何一个函数都可以在派生表或结果集合中使用光标,指出它当前在结果集合中的哪一行。事务控制。这组函数允许提交
10、或者重新运行事务。尽管的缺省模式是“自动提交”这时每一条语句都是一个完整的事务,但是也可以设置一个连接选项,从而允许使用“人工提交”模式。这种“人工提交”模式允许事务一直打开,直至应用系统提交。错误处理和其他事项。该组函数用于返回与句柄相关的错误信息。另一个函数允许人们取消一条语句。的基本流程控制是:初始化处理终止。在初始化阶段分配环境,包括分配环境句柄、连接句柄和语句句柄,与服务器连接;在处理阶段执行语句和检索操作;在终止阶段释放语句句柄、环境句柄、连接句柄,与服务器断开。如图所示。3.数据源的连接与断开连接数据源的函数连接数据源的函数有三个,但最有效、最通用的是下面一种格式:(,DDUUt
11、)。其中,参数是一个已经分配的连接分配;参数和分别表示系统所要连接的数据源名称及其长度;参数和分别表示用户标识符及其长度;参数和分别表示权限字符串及其长度。断开数据源函数其格式如下:()其中,参数是要断开的连接句柄。分配环境句柄相应的函数名SQLAllocEnv初始化分配连接句柄SQLAllocConnect与服务器连接SQLConnect分配语句句柄SQLAllocStmtSQI处理语句处理和检索部分SQLExecDirec(t直接执行函数)SQLPrepare(语句预备函数)SQLExecute(语句执行函数)与服务器断开SQLDisconnect终止释放语句句柄SQLFreeStmt释放
12、连接句柄SQLFreeConnect释放环境句柄SQLFreeEnv图的基本流程控制图具体用语句来执行实现数据源的连接与断开代码片段如下语句的执行:mai()ns/说明是一个环境型变量/;/说明是一个连接型变量/;/说明是一个语句句柄变量/;/说明是一个返回变量/();/分配一个环境句柄/(s);/分配一个连接句柄/(,学生,);/连接数据源/0S);/分配一个语句句柄/,MT执行语句/结果集处理/();/断开数据源/(dD/释放一个语句句柄/C)j/释放一个连接句柄/,);/当应用完成后,释放环境句柄/4.有准备地执行SQL语句的函数:语句预备函数其格式如下:(,)。其中,参数是一个有效的语
13、句句柄,参数和分别表示将要执行的语句的字符串及其长度。语句执行函数其格式如下:()。其中参数是一个有效的语句句柄。语句查询结果的获取:(),cG,tD,t,=(j,d,Qk1,G,Qt,D,Ct,CHARszBuf,sfi,z,(,sozfBu)f,f&,c,bV),;lu,Y,);U显示/wh(il,cG,tD,t,!=,Q,);,NO,DATA,FOU的通用性,使它在基于客户服务器模式和基于浏览器服务器模式的数据库系统中获得了广泛的应用,几乎所有现行的关系数据库管理系统和主要的程序设计语言都支持。它的缺点是,相对于直接使用固有调用来说,的运行速度较慢。1.JDBC概述自从公司将语言于年月正
14、式公布以来,风靡全球。出现大量的用语言编写的程序,其中也包括数据库应用程序。但由于没有一个语言访问数据库的,编程人员不得不在程序中加入语言的函数调用。这就使很多的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。随着越来越多的编程人员对语言的日益喜爱,越来越多的公司在程序开发上投入的精力日益增加,对语言的日益喜爱,越来越多的公司在程序开发上投入的精力日益增加,对语言接口的访问数据库的的要求越来越强烈。也由于0的有其不足之处,比如它并不容易使用,没有面向对象的特性等等,公司决定开发一个以语言为接口的数据库应用程序开发接口。在版本中,只是一个可选部件,到了公布时,类包(也就是)就成为语言的标准
15、部件。Vomectiit是一种可用于执行语句的(ictinrrin应用程序设Ot接口Ce它由一些语言编写的类、接口组成。给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以使用纯语言编写完整的数据库应用程序。而且因为基于/0er的调用级接口,这是0的基础可以保证在其他通用级包括0之上实现。这意味着所有支持0的数据库不加任何修改就能够与协同合作。通过使用,开发人员可以很方便地将语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问,写另一个程序访问Orc,再写一个程序访问icr的ter用r写的程序能够自动地将语句传送给相应的数据库管理系统(
16、)。不但如此,使用编写的应用程序可以在任何支持的平台上运行,不必在不同的平台上编写不同的应用。和的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,ner!”ere具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。它所需要的是应用如何同各种各样的数据库连接,正是实现这种连接的关键。扩展了的能力,如使用和就可以公布一个We页,页面中带有能访问远端数据库的。或者企业可以通过让全部的职工(他们可以使用不同的操作系统,如Win,cint和)在ntrne上连接到几个全球数据库上,而这几个全球数据库可以是不相同的。随着越来越多的程序开发人员使用语言,
17、对访问数据库易操作性的需求越来越强烈。管理人员喜欢和,因为这样可以更容易经济地公布信息。各种已经安装在数据库中的事务处理都将继续正常运行,甚至这些事务处理是存储在不同的数据库管理系统中;而对新的数据库应用来说,开发时间将缩短,安装和版本升级将大大简化。程序员可以编写或改写一个程序,然后将它放在服务器上,而每个用户都可以访问服务器得到最新的版本。对于信息服务行业,和提供了一种很好的向外界用户更新信息的方法。2.JDBC的基本功能的应用功能很多,可以利用它来进行动态数据库的访问、参数的输入与输出、更新数据库、异常的处理等。但其最基本的功能,简单地说,具有如下三个基本功能:同数据库建立连接;向数据库
18、发送语句;处理数据库返回的结果。下面我们以一段程序示例介绍这三个主要功能:cnnectincnrieneret“nnectcnce”e”e“”r建立与数据库的接tteenttencretet建立漏句对象tteenttencretet建立漏句对象运行语句,返回数据库操作结果获得数据库表记录项的值获得数据库表记录项的值获得数据库表记录项的值在水平上的是为语言定义的一个3.JDBCAPI在水平上的是为语言定义的一个调用级界面,也就是说其关键在于执行基本的说明和取回结果。在此基础上可以形成更高层次的,其中的接口包括直接将基本表与中的类相对应,提供更多的通用查询的语义树表示等。与的一致性一般数据库系统在
19、很大范围内支持的语法语义,但他们所支持的一般只能是语法全集中的一个子集,并且通常他们有许多更强的功能。那么是怎么保证与一致性的呢?允许使用从属于的系统的任何查询语句。一般认为标准功能比较完备,并且,是被广泛支持。可在现有数据库接口之上实现说明中的系统一致的界面说明中的系统一致的界面系统其他部分一致的界面,这对语言来说有着非常重要的这意味着语言与标准运行系统被认为是一致的,简单化,并且变得更加丰富,尤其是在处理说明中的参数及有关大的数据块上。提供与其他提供与意义。在很大程度上是功能强大的。在最大可能上简单化的基本这也是体现在大多数情况下采用简单的结构来实现特定的任务,而不是提供复杂的结构,或者说
20、对某个特定的任务,即提供一种方案,而不是多种复杂的方案。的在最大可能上简单化后还将不断的扩展以实现更完善的功能。使用静态的通用数据类型,使一般情形简单化,多种方法、多种功能中定义的界面过程少,利用过程的标志参数,使它们选择不同的操作。而心的类定义的界面方法多,方法不带有标志项参数,使用基本接口时不必被与复杂功能相关的参数所困扰。4.JDBC与ODBC和其他API的比较,JDBC一种底层的API是一种底层,这意味着它将直接调用命令。完全胜任这个任务,而且比其他数据库互联更加容易实现。同时它也是构造高层和数据库开发工具的基础。高层和数据库开发工具应该是用户界面更加友好,使用更加方便,更易于理解的。
21、但所有这样的将最终被翻译为象这样的底层。目前两种基于的高层正处在开发阶段。语言嵌入va预处理器。虽然已经实现了查询,但要求语句被当作字符串参数传送给v呈序。而嵌入式预处理器允许程序员将语句混用:va量可以在语句中使用,来接收或提供数值。然后的预处理器将把这种v混用的程序翻译成带有的I呈序。实现从关系数据库到va的直接映射。v和其他公司已经宣布要实现这一技术。在这种“对象/关系”映射中,表的每一行都将变成这类的一个实例,每一列的值对应实例的一个属性。程序员可以直接操作va对象;而存取所需要的调用将在内部直接产生。还可以实现更加复杂的映射,比如多张表的行在一个va类中实现。随着大家对兴趣的不断浓厚
22、,越来越多的开发人员已经开始利用作为基础的工具进行开发。这使开发工作变得容易。和及其他的比较到目前为止,微软的可能是用得最广泛的访问关系数据库的。它提供了连接几乎任何一种平台、任何一种数据库的能力。那么,为什么不直接从va直接使用呢?因为可以从va吏用,但最好在的协助下,用一桥接器实现。那么,为什么需要呢?要回答这个问题,有这么几个方面:并不适合在va直接使用。是一个语言实现的,从v呈序调用本地的程序会带来一系列类似安全性、完整性、健壮性的缺点。其次,完全精确地实现从代码到V写的的翻译也并不令人满意。比如,va有指针,而中大量地使用了指针,包括极易出错的空指针“void*”。因此,对V程序员来
23、说,把设想成将转换成面向对象的是很自然的。并不容易学习,它将简单特性和复杂特性混杂在一起,甚至对非常简单的查询都有复杂的选项。而刚好相反,它保持了简单事物的简单性,但又允许复杂的特性。这样的v对于纯V方案来说是必须的。当使用时,人们必须在每一台客户机上安装驱动器和驱动管理器。如果驱动器是完全用语言实现的话,那么的代码就可以自动的下载和安装,并保证其安全性,而且,这将适应任何v平台,从网络计算机到大型主机i。总而言之,是能体现最基本抽象概念的、最直接的v接口。它建构在非常容易。保持了的调用级接口()。它们的非常容易。保持了的调用级接口()。它们的v勺风格和优点。和E这些事实的基本设计特征。实际上
24、,这两种接口都是基于X/O,最大的不同是是基于v勺风格和优点,并强化了最近,微软又推出了除了以外的新的,女口上在很多方面上同一样朝着相同的方向努力,也就是努力成为一个面向对象的,基于驱动器已经在市场完全的类接口。然而,这些接口目前并不能代替,尤其在驱动器已经在市场完全形成的时候,更重要的是它们只是的“漂亮的包装”。两层模型和三层模型支持两层模型如图,也支持三层模型访问数据库。图7-4两层结构的客户/服务方式如图所示,两层模型中,一个ava或者一个应用直接同数据库连接。这就需要能直接被访问的数据库进行连接的B驱动器。用户的S语句被传送给数据库,而这些语句执行的结果将被传回给用户。数据库可以在同一
25、机器上,也可以另一机器上通过网络进行连接。这被称为“Client/Server”结构,用户的计算机作为Client运行数据库的计算机作为Server。这个网络可是intranet,比如连接全体雇员的企业内部网,当然也可以是internet。图三层结构的客户/服务方式如图7-5所示,在三层模型中,命令将被发送到服务的“中间层”,而“中间层”将S语句发送到数据库。数据库处理S语句并将结果返回“中间层”,然后“中间层”将它们返回用户。管理员将发现三层模型很有吸引力,因为“中间层”可以进行对访问的控制并协同数据库的更新,另一个优势就是如果有一个“中间层”用户就可以使用一个易用的高层的,这个可以由“中间
26、层”进行转换,转换成底层的调用。而且,在许多情况下,三层模型可以提供更好的性能。到目前为止,“中间层”通常还是用C或C实现,以保证其高性能。但随着优化编译器的引入,将java的字节码转换成高效的机器码,用java来实现“中间层”将越来越实际。而是允许从一个java“中间层”访问数据库的关键。客户机服务器模式的数据库系统网络数据库系统是指在计算机网络环境下运行的数据库系统,它的数据库分散配置在网络节点上,能够对网络用户提供远程数据访问服务。有人把它也称为分布式数据库系统,但是它只能算是一种特定的分布式数据库系统,它驻留在各个网络节点上的数据库仍然是集中式的数据库,世2纪080年代以来微型计算机和
27、计算机随络飞速发展。由于日益发展的分布式的信息处理要求,计算机网络包括局城网、广城网、因特网nterne和)企业网ntrane都得到了广泛的应用。传统的大型主机和哑终端系统受到了以微机为主体的微机网络的挑战,规模向下优化ni和规模适化iti已是大势所趋,客户棚服务器Client/Server,C/S计算模式应运而生。进入世纪年代后,由于信息技术的发展和信息量的急剧膨胀,信息的全球化打破了地域的界限,ntee技术以惊人的速度发展,促使客户棚服务器计算模式向广域的范围延伸,向ntee迁移,产生了浏览器服务器r/Server,/S工作模式。客户机服务器模式简称是以网络环境为基础、将计算应用有机地分布
28、在串台寸算机中的结构,如图所示,其中的一个或多个计算机规划服务,称为服务器其他的计算机则接受服务,称为客户机。模式把系统的任务进行了划分,它把用户界面和数据处理操作分开在前端(客户端以和后端(服务器端以,服务器负责数据的存储、检索与维护;而客户机负责提供接口,承担诸如处理与显示检索所得的数据、解释和发送用户的要求等任务。客户机提出数据服务请求,由服务器把按照请求处理后的数据传送给客户。因此在网络中传输的数据仅仅是客户需要的那部分数据,而不是全部。这个特点使得客户枷服务器的工作速度主要取决于进行大量数据操作的服务器,而不是前端的硬件设备;同时大大降低了对网络传输速度的要求,使系统性能有了较大的提
29、高。客户机服务器方式增加了数据库系统数据共享能力,服务器上存放着大量的数据,用户只需在客户机上用标准的语言访问数据库中的数据,便可方便地得到所需的各种数据及信息。从用户的角度看,客户机服务器系统基本由五个部分组成:客户机、服务器、客户和服务器之间的连接。客户机客户机是指面向最终用户的接口或应用程序,它通过向服务器请求数据服务+然盾做必要的处理;、将结果显示给用户。客户机耙大部分数据处理工作留给服务器,让服务器的高档硬件和软件充分施展它们的特长,并且减少了网络上的信息传输量。服务器服务器的主要功能是建立进程和网络服务地址,监听用户的调用,处理客户的请求,将结果返回给客户和释放与客户的连接。服务器
30、可以是大型机、中小型机密微机工作站,服务器要求配有高性能处理器。大内存、稳定快速的总线和网络传输,以及完整的安全措施。服务器为客户的请求提供所要求的服务,包括数据存取、数据加工和处理等。连接件客户机与服务器之间的连接是通过网络连接实现的,对应用系统来说这种连接更多的是一种软件通信工程。(如网络协议等以。现在有多种连接客户和月瞄器的标准接口和软件,如开放数据库互连就是一种基于访问组织规范的数据库连接的应用程序接口,该接口可以在应用程序与一个或多个数据库之间进行通信。客户应用只须和标准的函数打交道,采用标准的语言编程,而不必关心服务器软件的要求及完成方式。客户机服务器/结构既可指硬件的结构也可指软
31、件的结构。硬件的客户机/服务器结构是指某项任务在两台或多台计算机之间进行分配。客户机在完成某项任务时,通常要利用服务器上的共享资源和服务器提供的服务:在一个客户机/服务器体系结构中可以有多台客户机和多台服务器。软件的客户机/服务器结构是把一个软件系统或应用系统按逻辑功能划分为若干个组成部分,如用户界面、表示逻辑、事务逻辑;数据访问等。这些软件成分按照其相对角色的不同,区分为客户端软件和服务器端软件。客户软件能够请求月务器软件的服务,例如,客户软件负责数据的表示和应用,请求服务器软件为其提供数据的存储和检刻艮务。客户软件和服务器软件可以分布在网络的不同计算机节点上,也可以放置在同一台计算机上。客
32、户端软件和服务器端软件的功能划分可以有多种不同的方案。客户机/服务器结构是一个开放式的体系结构,使得数据库不仅要支持开放性,而且还要开放系统本身,这种开放性包括用户界面、软硬件平台和网络协议。利用开放性在客户机侧犀供应用程序接口及网络接口,使得用户仍可按照他们所熟悉的、流行的方式开发客户机应用。在服务器一侧,通过对核心关系数据管理系统的功能调用,使网络接口满足了数据完整性、安全性及故障恢复等要求。有了开放性,数据库服务器就能支持多种网络协议,运行不同厂家的开发工具,而对某个应用程序开发工具也可以在不同的数据库服务器上运行并存取不同数据源中的数据,从而给应用系统的开发提供了极大的灵活性。逻辑等重
33、头戏均在客户机端,所有客户都必须安装应用软件和工具,因而使客户机变得很“肥”(即肥客户机)。服务器则成为数据剧艮务器,仅负责全局数据的存取、处理和维护,响应用户请求,因而侧服务器相对较;瘦”即(瘦服务器)。这使得应用系统的性能、可伸缩性和可扩展性较差。三层/结构如图所示,它将应用功能分成表示层、功能层和数据层三部分,分别由客户机应用服务器和数据库服务器实现。其解决方案是:对这三层进行明确分割,并在逻辑上使其相互独立。1.表示层表示层由客户机实现。表示层是应用的用户接口部分;它担负着用户与应用间的对话功能。它接受用户的输入请求,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口
34、,一操作简单、易学易用。与两层/结构的客户机部分相比,三层/结构的客户功能更加简洁清晰,大部分的应用逻辑被移植到应用服务器上,但简单的应用逻辑处理和数据库访问仍然可以在客户机上实现,以获得较高的效率。2.功能层功能层由应用服务器实现。功能层相当于应用的本体,它是应用逻辑处理的核心,是具体业务的实现。例如,在制作商品订购合同时要计算合同金额,按照预定的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交互要尽可能简洁。例如用户检索数据时,要设法将有关检索要求的信息一次传送给功能层,而由功能层处理过的检索结果数据也一次传送给表示层。通常,在功能层申包含有
35、:确认用户对应用和数据库存取权限的功能,以及记录系统处理日志的功能。应用服务器一般和数据库服务器有密切的数据交往,。应剧艮务器向数据库服务器发送请求,数据库服务器将数据访问结果返回给应用服务器。此外,应用服务器也可能和数据库服务器间没有数据交换,而作为客户机的独立服务器使用。当应用逻辑变得复杂或增加新的应用服务器时,新增的应用服务器可与原应用服务器驻留于同一主机或是不同的主机上。3.数据层数据层就是,驻留在数据服务器上;负责管理对数据库数据的存取操作。它接受应用服务器提出的请求,完成数据的存储、访问和完整性约束检查等。必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统B因此,一
36、般从功能层传送到数据层的要求大都使用语言。与二层/结构相比,三层/结构有明显的优点:伸缩性好,具有灵活的硬件系统构成;提高了程序的可维护性,各层相对独立,可以并行开发;有利于严密的安全管理。当然,由于三层/中的应用被划分在多层服务器和局部网络上,系统的设计、配置、测试都较困难。浏览器服务器模式的数据库系统数据库的体系结构浏览器/服务器模式的数据库体系是利用服务器和(简称)作为数据库操作的中间层,将客户机/服务器模式的数据库结构与密切结合,从而形成具有三层或多层结构的浏览器/服务器模式的数据库体系(见图)。前端采用基于瘦客户机的浏览器技术(或),通过服务器(的或a及中间件访问数据库。中间件驻留在
37、服务器上,负责管理服务器和数据库服务器之间的通信并提供应用程序服务。数据库服务器管理数据库中的数据,客户发出分,这就是所谓的“胖服务器/瘦客户端”模式,此模式的好处在于能同时接受多种请求,降低了实现信息系统的费用,充分利用了现有的系统资源。并且可以综合多个系统,使资源更加丰富,可以适应技术变化,人机接口简单、直观。使系统开放性好,客户可以通过或进行访问。在服务器端可以进行安全性设置,限制了访问人员的级别与类型,加强了数据安全性。技2术实现首先在服务器上应安装(或更高版本)。为了让能正确地访问数据源,微软为配置添加了一个新的选项,用它运行“”。这些特殊的数据源为我们提供了设置全局(公用)数据源的
38、一种途径。由于登录进入的用户可能设置了对系统和资源的不同访问方式,所以需要用保证它们访问的都是正确数据库,在配置中必须添加数据库驱动程序。为了能对数据库实现安全管理,必须对相应的用户指定相应的权限:如,只读,可读/写等,所以在编程中应对某一用户名进行权限设置。AS是一个服务器的脚本环境,在这里可以生成和运行动态的、交互的、高性能的el服务器应用程序。AS能够把MLript、Active组件等有机结合在一起,形成一个能够在服务器上运行的应用程序,并把按用户要求专门制当用户请求一个*.asp主页时,eb服务器响应请求ActiveScriptin兼容的脚本(如BScript和avaScript时,A
39、S引擎调用相应的脚本引擎进行处理。若脚本中含有访问数据库的请求,就通过ODBC或OLDB与后台数据库相连,由数据库访问组件ADO(ActiveDateObjectS执行访库操作。AS脚本在服务器端解释执行,它依据访问数据库的结果集自动生成符合语言的主页,去响应用户的请求。而用户并看不到AS的程序源代码,增强了保密性。AS页面的结构包括下面四个部分:普通的HTML文件标记;VBScript、JavaScript或Perl脚本语言;ASP语法:位于%标签内的程序代码;ServerSideInclude语句:用#Include语句嵌入其他Web页面。AS文件是以*.asp为扩展名的,代替先前的*.h
40、tml或*.htm,AS文件应用程序不仅仅只有一个*.asp文件,它还包括lobal.asa文件、*.inc文件以及其它一些资源文件。AS除了可使用BScriptavaScript等脚本语言外,它还提供了六个内建对象:equest、esponseObjectContetServer、Session、Application,它们组成了AS的基本框架。ADO(ActiveDataObject)是AS内置组件,ADO存取数据源通常所必须进行的工作如图所示。每个步骤并不都是绝对必要的,视情况自行增减。图ADO序开发模式下面是一个AS开发程序的实例:HTMLHEAD信息查询L/HEADBODY%Sect
41、ionl=request.form(“session”)取查询参数contentl二requestform(“content”)%setconn=Server.creadObject(“ADODB.Connection”)conn.open“db”,”sa”,”SQL=“Select*formdbwhere”&Sectionl&”二”&content&”执行查询查询时间:填%写表头/填写数据随着的日益普及,利用进行数据库的编程和应用已经成为一种趋势。用技术实现将数据库中的信息在上发布的方法有其独特的优点,国内已有许多站点采用了该项技术。本程序中所操作的数据是用数据库管理系统组织的,也可用任何一
42、种具有驱动程序的数据库管理系统来实现,如、等。7.4JAVA访问数据库的技术技术使用技术进行数据库访问。是公司针对语言提出的与数据库连接的标准与类似,是特殊类型的,这些支持对数据库的连接和基本的功能,包括建立数据库连接、执行语句、处理返回结果等。与不同的是,为单一的语言的数据库接口。的结构同样有一个驱动程序管理器作为应用程序与数据库的中介,它把对数据库的访问请求转换和传送给下层的驱动程序,或者转换为对数据库的固有调用。更多的实现方式是通过桥接驱动程序,转化为一个调用进行对数据库的操作。基于/的调用级接口,这是的基础可以保证在其他通用级包括之上实现。这意味着所有支持的数据库不加任何修改就能够与协
43、同合作。程序可以通过来访问中的数据源,其结构如图所示,其中的在和之间建立起一个桥梁的体系结构由两层组成:和驱动程序,前者应用到管理器的连接,后者支持管理器到数据库驱动程序的连接,浏览骼,从艮务器上下载含有接口的,由浏览器直接与服务器连接,自行进行数据交换。定义了中的类,用来表示数据库连接、指令、结果集合、数据库图元数据等。它允许程序员发送指令并处理结果。通过驱动程序管理器,可以利用不同的驱动程序连接不同的数据库系统。驱动程序既可全部采用编程,作为的一部分下载;也可利用桥接方式连接到已存在的数据库存取数据。主要有两种接口,分别是面向程序开发人员的和面向底层的。是一系列抽象的接口,包括了、sat和
44、吐1他们使得应用程序员能够进行数据库连接、执行查询,并且得到返回结果。是面向驱动程序开发商的编程接口。对于大多数数据库驱动程序而言,仅实现提供的抽象类就可以了。管理器负责管理连接到不同数据库的多个驱动程序。支持数据库访问有两种方式:两层模式和三层模式。在两层模式下,或应用程序可直接与数据库交换信息,但需要一个能直接与所访问的数据库系统通信的驱动程序。用户的语句直接传送到数据库中,查询结果直接返回给用户。用户可通过或网络访问服务器上的数据库。在三层模式下,或应用在中间一层完成对应用程序服务器的调用。该层可以是一个事务处理监视控制器、对象请求代理或服务器、或者。通过这种中间层服务,再调用数据库服务
45、器。的,数据库访问技术是由公司倡导、许多公司参与建立的一种动态网页技木际准。在传统的网页文件,*中加入程序片段和标记a就构成了网页*。服务器在遇到访问网页的请求时,首先执行其中的程序片段,然后将执行结果以格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求很低,可以无,无,无,甚至无。可以轻松地与多种数据库相连,通过网页可以添加、删除、修改和浏览数据库中的数据。连接数据库可以通过两种方法,一种是通过;另一种是通过桥。下面以一个名为的的数据库,来说明与数据库相连的整个过
46、程。与数据库连接的过程也必须先加载驱动程序,然后再建立连接。在这里的是.由,连接的是位于机器上的数据库。逻辑上分离的技术,而且两者都能够替代使网站的建设与发展变得较为简单快捷。但在和之间其实有着很大的区别。最本质上的区别在于两者是来源于不同的技术规范组织,其实现的基础,以及对服务器平台的要求不相同。技术基于平台和服务器的互相独立,支持来自不同厂商的各种工具包,服务器的组件由数据库产品开发商所提供。相比之下,技术则主要依赖微软的技术支持。在对数据库访问方面,使用通过连接数据库,而通过技术连接数据库。目标数据库采用一个驱动程序,使得可以用标准的方式访问数据库。不使用服务器端的数据源。只要有驱动程序
47、,就可以访问数据库了。如果一个特定的数据库没有驱动程序,而只有驱动程序,也提供桥来将调用转化为调用。所有的编译器都带有一个免费的桥。理论上,桥可以访问任何常见的数据库产品。7.5数据库系统的多层体系结构在构建多层应用软件体系时应当考虑到以下问题。开发平台的选择。由于是各种软件都可共用的平台,可在开发网络环境下的分布式多层结构应用软件时比其他技术具有优势。因此把开发平台定位在上是最佳选择中间件的选择。在多层应用软件中,负责业务逻辑处理的中间层是重要的一层。对于大型的实用系统来说,所有的软件都自行开发并不是最好的选择,大量通用的模块可以由专业的公司开发的中间件来实现。面向对象技术的使用。由于实际应用的纷繁复杂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动合同格式模板
- 合同保管协议书样本
- 2024简易保姆用工合同样本
- 2024合同审查法律意见书格式
- 2024常用运输合同范本
- 商品房合同内容补充协议
- 深圳市劳动合同样本2024年
- 2024前期物业服务合同范本
- 2024年购销牛羊的合同
- 建筑项目合同编写要点
- 检测公司检验检测工作控制程序
- 社工机构项目管理制度
- 充电桩整体解决方案PPT幻灯片(PPT 27页)
- 物业服务集团全员品质督导策划方案
- 建筑设计基础(ppt)课件
- 半导体芯片项目商业计划书范文参考
- 邯郸市政府采购办事指南
- 城市初期雨水污染治理
- 在护林员培训班上的讲话护林员会议讲话稿.doc
- 材料科学基础-第7章-三元相图
- (完整word版)高频变压器的设计
评论
0/150
提交评论