已阅读5页,还剩85页未读, 继续免费阅读
(计算机应用技术专业论文)基于net框架的web数据库访问技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着i n t e m e t 的飞速发展,万维网( w w w ,w o r l d w i d e w e b ) 得到了很大 的发展。w w w 系统和数据库是网络化信息服务的基础,w e b 技术和数据库 技术相结合成为当前研究的热点,其中关键就是w e b 数据库访问技术。传 统的数据库访问技术己渐渐不能满足高速存取、断开连接存取和内置的全面 的x m l 支持等的需要,研究i n t 锄e t 的数据库访问技术也就成为数据库研 究的主要方向之一。 目前基本的数据库访问技术主要有开放数据库连接( o d b c ,o p e n da _ 油a s ec o 尬e c t i v i t y ) 、基于o d b c 的数据访问对象( d a 0 ,d 8 t aa c c e s s 0 b j e c t ) 和远程数据对象( r d o ,r e m o t ed 砒ao b j e c t ) 、j a v a 数据库连接 ( j d b c ,j a v ad a t a b a s ec o n n e c t i v i t y ) 、对象链接和嵌入式数据库( o l ed b , 0 b i e c tl i n k i n g a n de m b e d d i n gd a t a b 勰e ) a c t i v e x 数据对象( a c t i v e x d a t ao b j e c t ,a d o ) ,他们都是在不同时期出现并被广泛使用的技术,很多 技术现在仍很流行。而常用的w e b 数据库访问实现技术主要包括通用网关 接口( c g i ,c o 咖o n g a t e w a y i n t e r f a c e ) 、服务器应用程序接口( s a p i ,s e e r a p p l i c a t i 锄p r 0 f 锄m i n gi n t e r f 孔e ) 、动态服务器端语言( a s p ,a c t i v es e r v e r p a g e ) 、超文本预处理器( p h p ,p r o f e s s i o n a lh y p e r t e x tp r e p r o c e s s o r ) 、j a v a 服务器端语言( j s p ,j a v as e r v e rp a g e s ) ,这些技术各有自己的优缺点和适宜 场合,仍被广泛采用来编写w e b 应用程序。随着微软n e t 的推出,a s p n e t 为编写大量的w e b 应用程序带来了巨大的变革。本文着重就n e t 框架的最 新数据库访问技术一一a d o n e t 的体系结构、对象模型、各个对象的重点 特性等进行了深入而详细的分析和研究,就a d o n e t 在w e b 应用中主要性 能优化包括四种n e t 数据提供程序性能优化、比较和选择,存储过程的优 化,安全性,数据一致性等作了深入的探究。提出了在n e t 环境下如何开 发高效的面向i n t e m e t 的数据库访问技术,这些探讨对于目前大量的w e b 数 据库应用程序的开发具有较大的实用和指导意义。 基于上述w 曲数据库访问技术研究,根据黄石市公路管理处的实际需 求,设计并实现了b s 模式的管理信息系统。该系统基于n e t 平台,采用 a d 0 - n e t 数据访问技术和相关性能优化技术,利用v b 语言设计实现。该 系统由表示层、业务层和数据层组成。表示层处在客户端,由一个通用的浏 武汉理工大学硕士学位论文 览器支持。事务、数据逻辑层,充当中间代理的角色,就是通常所说的业务 层。后台是s q ls e r v e r 数据库服务器。该管理信息系统的业务层使用a d o n e t 技术进行数据库访问,运行在w e b 服务器端,利用a d o n e t 的各项 技术( 如s q ls e e r n e t 数据提供程序、存储过程、安全性、数据一致性等1 , 大大提高应用程序的数据访问效率和性能。 关键词:数据库访问;a d o n e t ;w e b ;浏览器服务器;信息系统 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p i n gr a p i d l yo fh n e m c t ,w w w ( w o r l dw i d ew e b ) h a sg o t t h ev e r yb i gd e v e l o p m e n t w r wi st h em o s tp o p u l a r8 n dl e a d i n gi r l f o m a t i o n 8 e r v i c em e t h o d w w ws ) ,s t e m 髓dd a t a b a s ea r e 也ef o 蛐d a t i o n so fn 神o 呔 i n f o n n a t i o ns e r v i c e ,也et e c h l l i q u eo fw e bh a sb e c o m et h ec u r r e n tf o c u so f r e s e 盯c hw i t ht h e 出她由a s et e c h n i q u e ,t h ek e yi saw e b 出出l b a 8 ea c c e s st e c h n i q u e t h et 飚d i t i o n a ld a t a b 懿ea c c e s st e c h n j q u ec a n ts a t i s f y1 i t t l eb y1 i t t l e 吐l ed e m 锄d o fh i g hs p e e da c c e s s ,t h ed a t aa c c e s so nb r o k e nc o n n e c t i o na n dc o m p l e t e s u p p o r to fx m l ,e t c t h e 咖d yo fd a 乜i b a s e c e s st e c h n i q u eb 髓e do ni n t e m e t h a sb e c o m eo n eo f m a i nd i r e c t i o no fd a t a b a s er e s e a r c h c u r r e n tb 船i c 出l t a b 船ea c c e s st e c h 王l i q u ep r i m a r i l yc o m a i n0 p e nd a t a b 船e c o 衄e c t i v i t y ( 0 d b c ) ,d 砒aa c c e s so b j e c t ( d a o ) a n dr e m o t ed 砒ao b j e c t ( r d 0 ) b a s e do no d b c ,j a v ad a t a b a s ec o i l n e c t i v i t y ( j d b c ) ,o b j e c tl i n l 【i n g a n de m b e d d i n gd a t a b a s e ( o l ed b ) a c t i v e xd a t 8o b j e c t ( a d o ) ,t h e y 印p e a r s e p a r a t e l yo nd i f 艳r e n tp e r i o da n du s e db r o a d l y ,al o to ft e c h l l i q u e sa r es t i l lv e r y p o p u l a rn o w g e n e r a lw e bd a t a b a s ea c c e s si m p l e m e n t a t i o nt e c l l n i q u ei n c l u d e s 也ec o 衄o ng a t e w a yi n t e r f k e ( c g i ) , s e r v e ra p p l i c 撕o np r o g r a 删:n i n g i n t e r f h c e ( s a p i ) , a c t i v es e r v e r p a g e( a s p ) , p r o f e s s i o n a l h y p e r t e x t p r e p r o c e s s o r ( p h p ) ,j a v as c r v e rp a g e s ( j s p ) p r i m a r i l y ,也e s et e c h n i q u e se a c h h a v et h e i ra d v 跹t a g e s ,s h o r t c o n l i n g s 孤dt h ep r o p e rs i t l l a t i o n s ,s t i l la r ee x t e n s i v e a d o p t e dt ow r i t et h ew e ba p p l i c a t i o np r o g r a m a 1 0 n gw i t h 也em i c r o s o f t n e t r e l e a s 协g ,t l l ea s p n e tb n n g se n o n n o u sv 撕e t i e sf o rw r i t i n gan o o do fw e b a p p i i c a t i o np r o g r 锄 t h i s p a p e ri l e s 吐g a t e st h o r o u g h l yt h ep e r f 0 n a n c e o p t i m i z eo fa d o n e to nw e b 印p l i c a t i o n ,w h i c hi n c l u d e sc o m p 枷s o n ,c h o i c e a 1 1 dp e r f o 皿缸c eo p t i m i z eo ff o l l rk i n d so f n e td a t ap r o v i d e r s ,a p p l i c a b l e o c c a s i o na n do p t i m i z eo fs t o r e dp r o c e d u r e ,s e c w i t y ,d a t ac o n s i s t e n c ye t c 1 1 1 a d m t i o n ,“p u t sf o r w a r d 也a th o wt od e v e l o pe f f i c i e n t i yd a t a b a s e a c c e s s a p p l i c a t i o no ff 孔i n gt o 也ei n t e m e to n n e te n v i r o n m e n t t h e s es t l l d i e sp r o v i d e b i g g e rp r a c t i c a lv a l u e s 姐dg u i d i n gm e a n i n gf o ra 静e a td e a lo ft h ec u r r e n t i i i 武汉理工大学硕士学位论文 d e v e l o p m e n to f 血t a b a s ea p p l l c a t l o no nw e b b a s e do nt h ea b o v es t i l d i e so fw e b 蝴a s ea c c e s st e c h n i q u e ,a c c o r d i n gt o a c t u a ln e e d0 fh u a n g s h ir 0 a da d i n i i l i s 订a t i v eo f e c e ,a1 1 1 f o n n a t i o ns y 8 t e mo f b sm o d eh a sb e e nd e s i g n e da n dr e a l i z e d t h a ts y s t e mo n n e tp l a t f o mi st h e i m p l e m e n t a t i o nw i t hv bl 匝g u a g eb ya d o p t i o na d o n e td a t aa c c e s st e c h n j q u e a i l dr e l a t e dp e r f o m a n c eo p t i m i z et e c h n i q u e t h i ss y s t e mc o n s i s t so fb r o w s e r , w e bs e n ,e r 艄dd a t a b a s es e n ,e r t h eb r o w s e ri s p l a c e di n c l i e n t a n y w h e r e s u p p o r t e db yg e n e r a lb r o w s e r b u s i i l e s sd a t al o g i ca sc e n t e ra g e n ti su s u a l l y n 眦e dw e bs e r v e r t h eb a c k s t a g ei sas q ls e r v e rd a t a b a s es e r v e r t h ew e b s e e ro ft h es y s t e mu s e sa d o n e tt e c h n i q u e ( s u c ha ss q ls e r v e r n e td a t a p r o v i d e r s , s t o r e d p r o c e d u r e s , s e c u r i t y , d a t a c o n s i s t e n c y )c o n n e c t i g a n d a c c e s s i n gd a t a b 船e s u c ht h i n g se n h 明c ec o n s u m e d l yd a 诅a c c e s se f f i c i e n c ya n d p e r f o m 趾c eo f 印p l i c a t i o np r o g r 啦 k e y w o r d s :d 蛐鹊ea c c e s s ;a d o n e t ;w e b ;b s ;i n f o r m a t i o ns y s t e m 武汉理工大学硕士学位论文 第1 章绪论 数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。数据库 访问是数据库广泛应用不可缺少的技术。伴随着数据库的发展,数据库访问 技术在不到半个世纪的时间里,已经形成了坚实的理论基础、成熟的商业产 品和广泛的应用领域,成为数据库技术中热点问题。随着数据库应用的扩展 和深入,其数量和规模越来越大,因此对数据库访问技术的要求也就越来越 高,人们清醒到认识到数据库访问技术的重要性,因此出现了众多的数据库 访问技术,然而研究如何高效的访问数据库仍然是当前的一个热点问题。 1 1 数据库访问技术 随着信息时代的到来,各种信息爆炸式发展并积累着,这涉及到人们日 常生活、企事业单位的管理、各种科研活动以至国家的宏观经济调控等各个 方面。采用计算机对各种信息进行管理成为高效科学的手段,这也促进了计 算机数据库的发展。 计算机数据库的发展经历了网状数据库、层次数据库和关系数据库几个 发展阶段,目前关系数据库得到最广泛应用,从个人计算机上使用的桌面型 数据库a c c e s s 、f o x p r o ,到各种大型数据库如s q ls e r v e r 、s y b a s e 、o r a c l e 等都是关系型数据库。各种不同的数据库系统提供了各种在数据库中读取、 存储数据的方法,即数据库访问技术。 数据库访问技术从各种数据厂商独立的访问技术发展到通用标准的访 问技术,采用标准访问接口和通用协议,形成了几种访问技术,而且在不断 发展。基本的数据库访问技术有开放数据库连接( o d b c ,o d e nd a t a b a s e c o n n e c t i v i t y ) 、基于0 d b c 的数据访问对象( d a o ,d a t aa c c e s so b j e c t ) 和远程数据对象( r d o ,r e m o t ed a t ao b j e c t ) 、j a v a 数据库连接( j d b c , j a v ad a t a b 髓ec o n n e c t i v i t y ) 、对象链接和嵌入式数据库( o l ed b ,0 b i e c t l i n 虹n ga n de m b e d d i n gd a t 曲a s e ) a c t i v e x 数据对象( a d o ,a c t i v e xd a t a o b j e c t ) 。 武汉理工大学硕士学位论文 1 2w e b 与数据库技术的结合 随着i i l t e m e t 的飞速发展,人们已不再满足通过w e b 来浏览和静态发布 信息,而是需要进一步浏览w e b 上的动态内容,实时地在w e b 上发布信息 和更新信息。另外,过去在客户服务器( c s ,c l i e n “s e r v e r ) 模式下开发的大 量应用,现在人们希望将这些应用系统建立在w w w 上,或在已有的客户 服务器应用系统中加入h 址e m e t 的功能。对于过去的众多基于共享式的数据 库应用系统,用户也希望能将其移植到w w w 上。要实现上述这一切,都 需要w e b 技术与数据库技术相结合,通过w e b 对数据库的访问来解决实际 应用中的各种需求。各数据库厂家和w e b 公司也纷纷推出各自的产品和中 间件来支持w 曲技术和数据库管理系统( d b m s ,d a t a b a s em 姐a g e m e n t s y s t e m ) 的融合,将两者取长补短,发挥各自的优势,使用户可以在w e b 浏览器上方便的检索数据库的内容。 , 所谓w 曲数据库管理系统是指基于、b 模式的d b m s 信息服务,充分 发挥d b m s 高效的数据存储和管理能力,以w e b 这种浏览器服务器( b s , b r o w s e r ,s c r v e r ) 模式为平台,将客户端融入统一的、e b 浏览器,为i n t e m e t 用户提供使用简便、内容丰富的服务【1 1 。w e b 数据库管理系统实现了数据库 和w 曲的有机组合。必将成为i n t e m e t 提供的核心服务,从而为用户在i m e m e t 上进行信息管理乃至开展电子商务应用提供技术支持。通过w e b 页面访问 数据库如图1 1 : 图1 1 通过w e b 页面访问数据库 w e b 客户机是只需要安装w 曲浏览器的客户端,w e b 服务器是任何基 于超文本标记语言( h t m l ,h ”e r t e x tm a r k u pl a i l g l l a g e ) 的服务器软件。数据 应用程序驻留在w e b 服务器上,最终用户通过w e b 浏览器生成大量的数据 库应用程序。浏览器借助超文本传输协议( h t tp ,h y p e r t e x tt r 蛆s f e rp r o t o c 0 1 ) 协议,通过i n t e m e t 与、e b 服务器通信。 武汉理工大学硕士学位论文 中间件( m i d d l ew 盯e ) 负责管理w 曲服务器和数据库之间的通信并提 供应用程序服务,它能直接调用外部程序或脚本代码来访问数据库,提供与 数据库招结合的动态h t m l 页面,然后通过w e b 服务器返回给用户浏览器。 数据库服务器负责管理驻留在数据库服务器中的数据。 与传统方式相比,通过w e b 访问数据库的优点在于: 1 借用现成的浏览器软件,无需开发数据库前端,数据库应用可以通 过浏览器来使用,界面统一,使用户可以方便的访问数据库。 2 标准统一,开发过程简单。h t m l 是w e b 信息的组织方式,是一种 国际标准,使用的、e b 服务器与浏览器均遵循这个标准。使用h t m l 标准, 开发者甚至只需学习h t m l 一种语言。 3 交叉平台支持。几乎在各种操作系统上都有现成的浏览器可供使用, 一个w e b 服务器书写的h t m l 文档,可以被所有平台的浏览器所浏览,实 现了跨平台操作。 常用的w e b 数据库访问的实现技术有:通用网关接口( c g i ,c o m m o n g a t c w a yi n t e r f 如e ) 、服务器应用程序接口( s a p i ,s e r v e ra p p l i c a t i o n p r o g r a m m i n gi n t e r f k e ) 、动态服务器端语言( a s p ,a c t i v es e r v e rp a g e ) 、 超 文本预处理器( p h p ,p r o f e s s i o n a lh y p e r l k x tp r e p r o c e s s o r ) 、j a v a 服务器端 语言( j s p ,j a v as e r v e rp a g e s ) 、a s p n e t 。 1 3 研究的背景与意义 自从有了数据库,人们就开始研究如何在程序中访问数据库。先是访问 本机的数据库,然后是采用c s 方式访问服务器的数据库,发展到现在是通 过i n t e m e t 访问服务器上的数据库。 数据库访问技术在过去的几年发展得非常快,从o d b c ,j d b c ,o l ed b 到a d o 。随着w e b 交互性的日益提高和应用的日益广泛,对于中间层的需 求也越来越突出。中间层是一个逻辑层,数据访问组件通常就在这一层上, 而数据访问组件是惟一有必要了解数据库细节的代码。对于实现这些要求, a d o 技术是一个理想的选择。 随着应用程序开发的发展,基于w e b 应用程序模型越来越松散地藕合; 采用可扩展标记语言( x m l ,e x t e n s i b l em 酬k u pl a n g u a g e ) ,将数据编码并在网 络连接间传递:数据库连接通常都是断开的:w e b 应用程序将h t t p 用作在 武汉理工大学硕士学位论文 层间进行通信的结构,必须显式的处理请求之间的状态维护等。这些特点使 得基于组件对象模型( c 0 m ,c o m p o n e n to b j e c tm o d e l ) 的a d o 很难在一个分 布式、异种平台构成的环境中使用记录集,对i n t e m e t 上的高度分布式环境 来说它更显得有些烦琐或不合适。丽微软的n e t 架构下的a d o n e t 技术 正好满足这一切。 本论文以黄石市公路管理处的信息系统为背景,就n e t 框架下的数据 库访问技术一一a d 0 n e t 做了深入的研究和探讨,就其中的相关性能的优 化等做了详尽的比较、讨论分析,并与具体项目相结合,大大提高了数据库 访阀的效率和性能。这对于目前大量类似的w e b 应用程序的开发具有重要 的现实意义和实用价值。 1 4 论文的研究内容和组织结构 本文主要针对以下内容进行了研究: 1 研究了常用的数据库访问及实现技术,给出了这些技术的优缺点及 适用范围,并对这些技术进行了比较研究。 2 深入讨论了a d o n e t 技术,包括a d 0 n e t 的设计目标、数据访问 特点、体系结构、安全性以及数据一致性。 3 w e b 数据库访问技术在n e t 框架中的实际运用。将a d 0 n e t 的各 项技术应用到具体的项目一一黄石市公路管理处信息系统中,提高了数据库 访问效率。 本文的组织结构安排如下: 第l 章绪论。阐述了数据库访问技术、w 曲与数据库技术的结合、 文章的课题由来、研究的意义以及论文的研究内容和组织结构。 第2 章基本数据库访问技术。研究了几种常用的数据库访问技术, 包括开放数据库连接( o d b c ) 、数据访问对象( d a o ) 、远程数据对象( r d o ,) 、 j a v a 数据连接( j d b c ) 、一致数据访问技术( o l ed b a d o ) ,并对这些技术进 行了比较。 第3 章w 曲数据库访问的实现技术。研究了几种常见的、b 数据库 访问的实现技术,包括通用网关接口( c g i ) 、服务器应用程序接口( s a p i ) 、超 文本预处理器( p h p ) 技术、动态服务器端语言( a s p ) 技术、j a v 8 服务器端 语言( j s p ) 技术、a sp n e t 技术,并比较了这几种常用技术的优缺点。 4 武汉理工大学硕士学位论文 第4 章基于n e t 框架的w e b 数据库访闯技术研究。深入讨论了n e t 框架下的w e b 数据库访问技术一一a d o n e t ,详细阐述了其数据访问特点、 体系结构、数据一致性以及安全性。 第5 章基于n e t 框架的w e b 数据库访问技术的实现。结合黄石市公路 管理处信息系统,通过使用a d o n e t 中的各种技术,详细介绍了如何实现 一种高效、安全的数据库访问技术。 第6 章结束语。对论文的研究工作进行小结,并对今后技术扩展做了 一些展望。 武汉理工大学硕士学位论文 第2 章基本数据库访问技术 数据库及其编程来源于不同的背景,每种数据库管理系统都有一套自己 的编程应用程序接口( a p i ,a p p l i c a t i o np r o 铲a m m i n gi n t e r f k e ) ,这就为数据 库编程带来极大的局限性,结构化查询语言( s q l ,s t n l c t u r e dq u e r yl g u a g e ) 是标准化数据库编程接口的i s o 标准。然而各种数据库所支撑的s q l 又有 所差异,为了得到一个统一的数据库编程接口,人们进行了很多努力,为此 产生了数据库的客户访问技术,它通过提供访问接口,简化了客户访问数据 库的过程。 当前供应商提供的数据库访问接口分为专用和通用两种。专用数据库访 问接口局限性较大,没有统一的调用界面;而通用接口提供了统一接口,可 以和不同类型、异构的数据库系统进行通信,利用这种接口编写的客户代码, 可以实现对多种不同类型的数据库的复杂操作,因而得到广泛的应用【2 】。其 基本原理及体系结构如图2 1 所示: 图2 1 通用数据库接口 w i n d o w s 系统上的数据库连接主要有: o d b c ( 开放数据库互连) d a o ( 数据访问对象) - r d o ( 远程数据对象) j d b c ( j a v a 数据库连接) 0 l ed b ( 对象链接嵌入数据库) :常用于a s p 编程 a d o ( a c t i v e x 数据对象) :a s p 中内嵌a d o 武汉理工大学硕士学位论文 在这些数据库访问技术中,从o d b c 到a d o 并非人们所想像的,编程 越来越困难。当它们内部实现机制变得越复杂的同时,它给程序员带来的编 程方法却越来越简单。 2 1 开放数据库连接( 0 d b c ) o d b c 是8 0 年代末9 0 年代初出现的技术,它是微软公司开发的一套开 放数据库系统应用程序的公共接口。它为编写关系数据库的客户软件提供了 统一的接口。 2 1 10 d b c 概述 o d b c ( o p e nd a 诅b a s ec o 皿e c t i v i t y ) 称为开放式数据库系统互连,是由微 软公司开发和定义的一套数据库访问的统一界面标准,是一种重要的数据库 访问a p i 。它独立于数据库,建立在结构化查询语言调用层接口基础上,即 基于s q l 并使用s q l ,可大大简化其a p i 。通过o d b c ,用户能够使、e b 服务器和各种数据库服务器相连,它为异构数据库的访问提供了一个统一的 接口,使得应用程序能够按照相同的方式访问各种不同结构的数据库 2 。 2 1 2o d b c 特点 o d b c 的主要特点是,提供统一的a p i ,可用于处理不同数据库的客户 应用程序。使用o d b ca p i 的应用程序可以与任何具有o d b c 驱动程序的 关系数据库进行通信。0 d b c 接受客户端指令,调用相应的o d b c 驱动程序 向一个或者多个数据库传送消息,并接受来自数据库的数据,然后,客户程 序需要取回这些数据。 与其它数据库接口相比,o d b c a p i 是比较低层的数据库接口,它在相 对较低的层次上使客户应用程序可以配置并操作数据库,完成一些其他高层 数据库无法完成的底层功能。 由于o d b c 为关系数据库提供了统一的接口,现在己经被广泛应用, 并逐渐成为关系数据库接口的标准。但o d b c 仅限于关系数据库,由于 o d b c 的关系型特性,很难使用o d b c 与非关系数据库像网络目录服务、电 子邮件系统之间进行通信,而且o d b c a p i 函数众多,使用复杂,需要增加 大量的编码【3 】。 武汉理工大学硕士学位论文 o d b c 提供了o d b c 驱动程序管理器( o d b c 3 2 d l l ) 、一个输入库 ( o d b c 3 2 l i b ) 和o d b ca p i 函数说明的头文件。客户应用程序与输入库连 接,以使用o d b c 驱动程序管理器提供的函数。在运行时,o d b c 驱动程序 管理器调用o d b c 驱动程序中的函数,实现对数据库的操作【2 1 。 2 1 3o d b c 体系结构 o d b c 的体系结构如图2 2 所示。0 d b c 应用程序不能直接存取数据库, 其各种操作请求要通过o d b c 的驱动程序管理器提交给数据库0 d b c 驱动 程序,通过驱动程序实现对数据源的各种操作。数据库的操作结果也是通过 驱动程序返回给应用程序的。 数据源( d s n ,d a t as o u r c en 锄e ) 是数据库驱动程序与数据库系统连接 的桥梁。数据源不是数据库系统,而是用于表达一个o d b c 驱动程序和 d b m s 特殊连接的命名。在连接中,用数据源名来代表用户名、服务器名、 所连接的数据库名等,可以将数据源名看成与一个具体数据库建立的连接 【3 。 - 蠹g 谶据霉瘦瓣鞫敷: = : 川| : il :; _ j 瓤基霸i 爨l 臻_ | ! l 受j 璧i0 薯 l:l:l | _ ;s | s _ 酾畦i i曩i 艇曲j :e k 零趣f oie - 一? i 暾l ;目蠹e ? _l ;| :躐鼬期豫: e “g 瞬耀黔j卜j 瓣缀壁摩i l簿瓣蘸疆璧簿j 。l譬! :瓣懒麴黢q慝灞稳邂臻】; : 瞄s 氍灞卿晖1ij 。蠹础j i | 1 墨嘲取o ij 卜t j 鬟擞嘲ilij 豫自阚避 e 虢“骞涨i _ | _ | fs 舞嘲擎鞭i 一卜羲自誉瓣i :if i 藏德骤i l 黪、鬟褥漂i 图2 2o d b c 的体系结构 2 1 40 d b c 的m f c 类接口访问技术 武汉理工大学硕士学位论文 虽然o d b c 为关系数据库提供了统一的接口,但0 d b c a p i 十分庞大, 编程负担比较重,因而对o d b c 接口进行了封装,以简化对o d b ca p i 的 调用,m f co d b c ( m i c r o s o f cf l l n d 撕o nc l a g s e so d b c ) 类在使用上比o d b c a p i 容易,它的层次比较高,不仅使编程的复杂性大大降低,而且为0 d b c 编程提供了一个面向对象的方法。 m f c 对o d b c 的封装主要是开发了c d a t 曲a s e 类和c r e c o r d s e t 类,它 们继承自己m f c 总根类c o b j e c t 。c d a t a b a s e 用于连接和打开数据库, c r e c o r d s e t 用于处理结果集【3 。 m f co d b c 类与o d b ca p i 编程相比,m f c 编程更适用于界面数据库 应用开发,但它所提供的函数数量与o d b c a p l 相差无几,但又比o d b c a p i 缺少了对底层的灵活性,然而它的界面特点,o d b c a p i 是无法与之相比的。 2 2 数据访问对象( d a o ) d a o ( d a t aa c c e s so b j e c t ) 是一组m i c r o s o f ca c c e s s j e t 数据库引擎的 c o m 自动化接口。d a o 直接与a c c e s s j e t 数据库通信,通过j e t 数据库引 擎,d a o 也可以同o d b c 和其它数据源进行通信。其体系结构如图2 3 。 图2 3 d a 0 体系结构 d a o 的基于c o m 的自动化接口提供了比基于函数的a p i 更多的功能, d a o 提供了一种数据库编程的对象模型。d a o 的对象模型比一般的a p i 更 适合于面向对象的程序开发,若要将一组不关联的a p i 函数集成到一个面向 对象的应用程序里,般要求开发人员必须编写自己的一组类来封裴这些 a p i 函数【4 j 。除了提供一组函数外,d a o 还提供了连接数据库并对数据库进 行操作的对象,这些d a o 对象很容易集成到面向对象应用程序的源代码里。 武汉理工大学硕士学位论文 此外d a 0 还封装了a c c e s s 数据库的结构单元,例如表、查询、索引等,这 样,通过d a o 可以直接修改a c c e s s 数据库的结构,而不必使用s q l 的数 据定义语言( d d l ,d a t ad e f i n i t i o nl 锄g l l a g e ) 的语句。 d a o 支持四种不同类型的数据库环境【5 : 1 打开访问数据库( m d b 文件) 。m d b 文件是一个自包含的数据库,它 包括查询定义、安全信息、索引、关系,当然还有实际的数据表。用户只需 指定m d b 文件的路径名。 2 外部数据库。这类数据库指的是采用索引顺序访问方法( i s a m , s e q u e n t i a la c c e s sm e t h e d ) 建立的数据库文件。即使已经设置了o d b c 数据 源,要用j e t 引擎来访问这些文件类型中的一种,也必须以i s a m 型数据源 的方式来打开文件,而不是以o d b c 数据源的方式。 3 o d b c 数据库。这类数据库符合o d b c 标准的客户服务器数据库, 如s 0 ls e r v e r 、o r a c l e 等。但是有一个很重要的限制,即不能打开以j e t 引 擎作为驱动程序的o d b c 数据源,只可以使用具有自己的o d b c 驱动程序 d l l 的数据源。 4 绘a c c e s s 数据库附加外部表。这实际上是用d a o 访问o d b c 数据 源的首选方法,首先使用a c c e s s 把o d b c 表添加到一个m d b 文件上,然 后用d a o 打开这个m d b 文件就可以了。 d a o 提供了一种非常有用的数据库编程的对象模型,但是,从其体系 结构图可以看出操作涉及到了许多层的软件,当利用d a o 访问这些数据库 时,对数据库的所有调用以及输出的数据都必须经过a c c e s s j e t 数据库引擎, 这对于使用数据库服务器的应用程序来说无疑是个严重的瓶颈。 d a 0 同o d b c 相比更容易使用,但不能提供o d b ca p i 所提供的低层 控制,因此d a o 也属于高层的数据库接口。 2 3 远程数据对象( r d 0 ) r d o ( r e m o t ed a t ao b j e c t ) 是m i c r o s o f t 针对d a oa p i 访问o d b c 数据源 性能不佳而推出的,是一组与实现远程数据访问有关的对象。它是专门为 o d b c 的接口单独设计,可视为o d b ca p i 的抽象。它通过o d b c 提供了 一个简单且高效的连接驱动程序的用户界面,r d o 创立了一个以前只能由 系统级编程语言才能使用的低级编程界面的快速界面。 武汉理工大学硕士学位论文 r d o 是在o d b ca p i 和驱动程序管理器之上的一个代码层,用来建立 连接、产生结果集和游标。由于具各了基本的o d b c 处理方法,r d o 可以 直接执行大多数的0 d b ca p i 函数,是s o ls e r v e r 、o r a c l e 等大型关系数据 库开发者经常选用的最佳数据库接口,同时它还提供了用来访问存储过程和 复杂结果集的更多、更复杂的对象、属性和方法【6 】。 r d o 提供了使用代码创建并控制远程o d b c 数据库系统部件的框架。 其对象模型如图2 4 。它的属性描述了数据库部件的特征,也描述了用来操 作它们的方法。在这个框架中,用户可以在对象和集合之间建立联系来表示 数据库系统的逻辑结构。 图2 4 r d o 对象模型 r d 0 由多个对象组成。除了r d oe n g i n e 对象外,其它对象都保存在一 个相关的集合中。当用户第一次访问并初始化远程数据对象时,远程数据对 象将自动创建一个r d 0e n g i e 对象和一个缺省的r d 0e n v i r o 姗e n t 对象的 实例。 r d o 是由d a o 派生出来的,但两者在数据模式上有很大的不同,d a o 是针对记录和字段的,而r d o 是作为行和列来处理。也就是说,d a o 是i s a m 武汉理工大学硕士学位论文 模式,r d o 是关系模式。此外d a o 是访问a c c e s s 的j e t 引擎的接口,而 r d o 则是访问o d b c 的接口,r d 0 是o d b c a p i 之间的一个对象模型的薄 层,它依赖于o d b ca p i 选定的o d b c 驱动程序以及后端数据库引擎实现 大部分的功能。通过使用r d 0 ,可以提供查询,建立结果集和使用与数据 库无关的面向对象的代码处理查询的结果8 1 。 i o 为数据库访问提供基于对象的易于编程的接口。r d o 提供了紧凑、 轻量级的到o d b c 的基于对象的接口,这些接口提供所有o d b ca p i 拥有 的低层功能和灵活性,并去掉了d a o 中的j e t 引擎层,不像d a o 那样通过 j e t 引擎调用o d b ca p i 【8 】。r d o 是直接调用o d b ca p i ,因此对于访问o d b c 数据源具有很好的性能。由于去掉了j e t 引擎层存在明显的局限性,即它不 能访问j e t 和i s a m 数据库文件,而只能通过o d b c 驱动程序访问关系数据 库。但r d o 提供了更为先进的数据库功能,通过提供对象、方法、属性, r d o 可以访问非常复杂的存储过程和记录集。 r d 0 的对象模型比d a o 要简单,d a o 许多功能是由数据库引擎自己 解决处理的,例如安全以及数据不规则的修改等,而在r d o 中这些功能由 服务器完成,如不能用r d o 直接创建数据库对象( 如表、视图、存储过程) , 但可用r d o 直接向服务器传递过程化的s q l 命令来实现这些功能。 2 4j a v a 数据库连接( j d b c ) j d b c 是j a v a 数据库的接口规范,j d b c 定义了一个支持标准s 0 l 功能 的通用低层的a p i ,它由j a v 精言编写的类和接口组成,旨在让各数据库开 发商为j a v a 程序员提供标准的数据库a p i 【9 1 。j d b c a p i 定义了若干j a v a 中 的类,表示数据库连接、s o l 指令、结果集、数据库元数据等。它允许j a v a 程序员发送s q l 指令并处理结果。通过驱动程序管理器,j d b ca p i 可利用 不同的驱动程序连接不同的数据库系统。 到目前为止,j a v a 应用程序通过j d b c 接口访问数据库有4 种驱动模式 1 0 】。 1 j d b c o d b c 桥。它提供了经由一种或多种o d b c 驱动进行访问的 j d b c 接口。这种情况下,客户端必须安装0 d b c 驱动。s u n 的j d b c o d b c 桥驱动程序的j a v a s q l d r i v e r 接口实现封装在8 u l l j d b c o d b c j d b c o d b c d r i v e r 类中。 武汉理工大学硕士学位论文 2 部分用j a v a 来编写的本地a p i 驱动程序。类似于j d b c o d b c 桥接 器,需要加载到客户机,却是一个部分用j a v a 实现的驱动接口。它将j d b c 调用转换为对数据库o r a c l e 、s y b a s e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国三相交流净化稳压电源市场现状数据分析及前景预测报告
- 2026年种子检验员职业技能认定试题(附答案)
- 2026年一级建造师《机电工程实务》真题汇编及答案
- 2026年黑龙江鹤岗事业单位招聘笔试试题及答案
- 2026年南昌市西湖区疾病预防控制中心招聘工作人员1人模拟试卷(含答案)
- 2026年人工智能算法工程师资格考试模拟题及答案详解
- 2026年工厂热工仪表模拟试题(含答案)
- 2026年工业技术改造重点项目可行性研究报告成功案例国家发改委
- 南宁市新鸿能源科技有限公司介绍企业发展分析报告模板
- 植物标本采集制作工岗前进度管理考核试卷含答案
- GB/Z 270-2026安全与韧性业务连续性管理体系业务连续性策略指南
- 2026年医疗废物分类及处理培训考试试题(附答案)
- GB/T 48315-2026鲁班工坊运行质量评估指南
- 2025年荆州市文旅集团公开招聘10名工作人员笔试参考题库附带答案详解
- 2026年初中物理教师能力测试卷
- 女性权益保障课件
- 2025国家药品监督管理局药品审评中心招聘笔试历年题及答案
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件
- 追寻合唱简谱国家大剧院
- 坡度变化条件下的车辆质量与道路参数联合估计算法
- 装饰工程计算培训
评论
0/150
提交评论