版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库运用方式与存取技术主要内容 数据库运用方式的进化 单层方式 两层方式 多层方式 常用开发技术 常用接口技术 未来开展方向数据库运用模型的进化数据库运用模型的进化 单层方式 一种基于主机终端方式的计算模型,即H/THost/Terminal方式 在20世纪80年代以前比较流行, 几乎一切的计算和处置都由主机来完成,终端只是作为一种显示、输入和输出设备。其构造如以以下图所示。TerminalPrinterTerminalTerminal主机 HostTerminal 这种方式构造简单、管理方便、平安性好,但是这种系统的缺陷也是明显的。主要表如今:1由于用户界面都是字符型终端设备,以完全的“黑
2、白脸面目呈现给运用者,所以用户难以接受;2可用的开发工具少,普通只能运用字符化开发工具,没有集成化的开发环境;3主机负担重;4程序移植性、扩展性差等。 两层方式 20世纪80年代后期,针对H/T体系构造存在的问题,人们提出了客户效能器Client/Server构造,这种模型也是目前基于局域网运用开发中运用较多的设计方法。 这种C/S方式是一种二层构造,即系统分成客户端和效能器端两部分,其逻辑构造如以以下图所示。SQL客户数据库服务器API两层C/S结构逻辑图 这种方式可由两种方法实现: 1一种是“客户中心论,由客户来完成表示逻辑和业务逻辑部分,由效能器完成数据效能部分。这时,表示逻辑和业务逻辑
3、部分合二为一,一切的与数据库效能器的接口API都在客户端定义,数据库效能器只是处置来自客户的SQL语句,这时的客户就是我们所说的“胖客户。这种情况适用于客户较少100、运用相对简单、数据访问量不大的情况。随着系统越来越复杂,客户端运用程序变得越来越庞大,对客户机的处置才干要求越来越高,“胖客户必定越来越胖。 2为了降低客户的肥胖度,就必需转移客户的逻辑实现,于是人们提出了另一种处置方案。在此种方案中,把一些重要的业务逻辑部分地放到效能器上,为客户“减肥,也称为客户“瘦化。采取的方法是编写一些在数据库效能器端执行的 “存储过程或函数以及触发器程序可以简化客户端的某些部分数据逻辑检查等,存储过程使
4、得用户可以一次执行存储在远端数据库效能器中的一组SQL语句。客户端的运用程序可以直接调用这些存储过程,将参数传送给它,然后由数据库效能器解释并前往执行结果,客户机再对结果进展处置。存储过程大大降低了网络通讯的开销,提高了平安性和系统代码的可重用性。较之完全把表示层与业务逻辑层组合在一同的两层模型,这种方式提高了系统的性能,但并未从根本上处置问题。 经过对两层C/S方式的特点进展分析,我们可以发现它有以下不可抑制的缺陷: 1平安性差,由于客户机直接与数据库效能器交互,一切的衔接实现包括数据库效能器地址、用户名、口令等对客户来说是非透明的,这不可防止地呵斥平安隐患。 2对客户端机器性能要求高,客户
5、机不但实现表示逻辑,而且实现业务逻辑。 3客户端维护代价大,代码重用性差。由于没有采用面向对象的设计方法,使得对于当今多变的运用需求来说,每次的需求变化或数据库逻辑构造的更改,客户端都必需更新其实现 4几乎一切的数据库产品都需求购买运用答应,每添加一个客户访问,都需求购买运用权,从而呵斥资金浪费。 三层方式 三层C/S构造将数据库运用的三部分:表示逻辑、业务逻辑、数据访问逻辑明晰的映射为实现上的三层,分别称之为客户表示层、运用效能器业务逻辑层、数据库效能器数据效能层。与二层C/S构造相比,其最大的区别是将业务逻辑部分明确地划分出来。 逻辑构造图如下SQL数据服务层业务逻辑层表示层客户应用服务器
6、数据库服务器API三层C/S结构逻辑图 1客户客户 客户是运用的用户接口部分,通常以图形客户是运用的用户接口部分,通常以图形用户界面用户界面GUI展现给用户,它担任用户展现给用户,它担任用户与运用程序的交互,接受用户的输入、恳与运用程序的交互,接受用户的输入、恳求,并把恳求经过客户端组件传送给运用求,并把恳求经过客户端组件传送给运用逻辑层,同时接纳运用层前往的数据包并逻辑层,同时接纳运用层前往的数据包并以用户期望的方式显示在客户终端上。以用户期望的方式显示在客户终端上。 2运用效能器运用效能器 运用层的组件执行详细的业务逻辑,并经运用层的组件执行详细的业务逻辑,并经过过SQL、API等方式向数
7、据效能层提出数据等方式向数据效能层提出数据或其他资源恳求,然后接纳数据效能层的或其他资源恳求,然后接纳数据效能层的前往结果,打包后前往给表示层。运用效前往结果,打包后前往给表示层。运用效能器是运用逻辑处置的中心,担任详细业能器是运用逻辑处置的中心,担任详细业务逻辑的实现。务逻辑的实现。 运用效能器的主要功能有: 接纳来自客户的恳求信息包; 将SQL信息恳求发送给数据库效能器; 接纳数据库效能器前往数据和结果; 将结果数据包前往给客户。 运用效能器普通和数据库效能器有密集数据交往,运用效能器向数据库效能器发送SQL恳求,数据库效能器将数据访问结果前往给运用效能器。运用逻辑变得复杂或添加新的运用时
8、,可添加新的运用效能器,它可与原运用效能器驻留于同一主机或是不同主机上。 3数据库效能器数据库效能器 数据库效能器以传统的基于数据库效能器以传统的基于SQL的的RDBMS实现,完成数据的存储、数据的完好性约实现,完成数据的存储、数据的完好性约束,并处置运用层的数据恳求和访问,将束,并处置运用层的数据恳求和访问,将前往结果包传给运用效能器。前往结果包传给运用效能器。 与两层与两层C/S构造相比三层方式有以下优点:构造相比三层方式有以下优点: 加强了系统的平安性。平安性运用逻辑和最终访问数据库加强了系统的平安性。平安性运用逻辑和最终访问数据库大多由运用效能器实现,对用户来说是透明的,客户端不大多由
9、运用效能器实现,对用户来说是透明的,客户端不存在与数据效能层的逻辑关联。这样就保证了系统的平安存在与数据效能层的逻辑关联。这样就保证了系统的平安性,并且减少了网络上的数据流量。性,并且减少了网络上的数据流量。 客户成为真正的客户成为真正的“瘦客户。客户仅仅实现表示层逻辑,瘦客户。客户仅仅实现表示层逻辑,大大降低了对客户机的性能要求。大大降低了对客户机的性能要求。 降低系统的维护代价,实现真正的层次化设计。与两层构降低系统的维护代价,实现真正的层次化设计。与两层构造相比,此时假设发生数据库逻辑构造的改动,我们只需造相比,此时假设发生数据库逻辑构造的改动,我们只需在运用端进展相应处置即可,而对于客
10、户端的实现可以不在运用端进展相应处置即可,而对于客户端的实现可以不做任何改动。在添加新的运用逻辑时,可以追加新的运用做任何改动。在添加新的运用逻辑时,可以追加新的运用效能器。系统规模越大时,这种方式的优点越显著。效能器。系统规模越大时,这种方式的优点越显著。 运用程序组件可以共享与数据库的衔接,降低答应费用。此时只需运用效能器与数据库效能器打交道,数据库效能器不再是为每个活动的用户坚持一个衔接,客户可以共享数据库衔接,从而降低了数据库效能器的负担,降低购买答应的数量。 在运用逻辑层,开发人员可以利用Vc+等常用的开发工具开发可重用的二进制组件,而不是编写存储过程。而且这些组件可以镜像到多台机器
11、上同时运转,从而分担多用户的负载。 目前,三层方式主要运用于Internet上,其中占优势的三层客户/效能器模型是经过通用网关接口CGI/Cookie 、SAPI 、ASP以及PHP等技术实现的。 通用网关接口CGI/Cookie CGICommon Gateway Interface规定了阅读器、Web效能器和外部运用程序之间数据交换的规范接口。经过这个接口,客户端利用HTTP的GET或POST方法向Web效能器提出恳求,Web效能器运转对应的CGI程序,CGI程序向数据库效能器提出恳求及完成相应处置后,前往结果给阅读器。CGI运用程序可以实时产生动态的HTML文件,能根据用户的需求输出动态
12、信息,将数据库效能器中的信息作为数据源对外提供效能,从而将Web效能和数据库效能结合起来。其构造如以下图。CGI浏览器数据库服务器三层CGI结构逻辑图浏览器浏览器进程1进程2进程3 CGI运用程序可由任何一种程序文语编写,比如C/C+、Perl、VB等。目前,几乎一切的Web 效能器软件均支持CGI 。 但是,CGI的运用程序不能由多个客户的恳求共享,这样每一个客户恳求就会添加一个CGI进程见图,当客户恳求数量相当多时会大量挤占系统资源,影响资源的运用效率,导致性能的降低和等待时间的添加。 在CGI方式中,Web效能器经过CGI接口创建网关进程,并将用户的恳求传送给网关;接着运用网关处置CGI
13、恳求,并经过运用接口访问详细运用,然后将结果转换为HTML格式并回送给效能器。但是CGI的根底HTTP是一个低速、脆弱和无外形的协议,所以在利用CGI进展运用集成时存在一些问题。当一个HTML文件中包含了大量的数据库访问恳求,这种基于CGI的Web网关的性能将非常低下,且效能器很快会到达饱和外形,难以支持更多的用户恳求。同时Cookie技术不断就是一个具有广泛争议的技术,它的潜在的平安破绽早就遭到人们的质疑。 另外,CGI也无法顺应于广泛流行且迅速开展着的Java等新兴技术,无法利用这些技术所带来的宏大优越性。 效能器端运用编程接口SAPI 针对CGI的局限,Web效能器厂商开发出Web效能器
14、与外部扩展程序交互的SAPI(Server Application Programming Interface)。这是在20世纪90年代流行的一种技术。SAPI随Web效能器的不同而不同,最流行的两种SAPI是Netscape的NSAPI (Netscape Server API) 和Microsoft的ISAPI (Internet Server API)。SAPI与CGI最大的区别在于:前者是以动态链接库的方式存在,而后者普通都是可执行程序。一个SAPI运用程序是一个DLL,在被用户恳求激活后并不生成进程,而是在效能器的进程空间中运转,当其他客户机恳求到达时,可以共享同一个DLL,从而减少
15、了内存开销和启动时间。 ISAPI有两个主要的部件:Internet数据库衔接器IDC和OLE ISAPI。IDC可以在HTML页和注册的ODBC数据源之间建立通讯,其通讯机制如图。 基于IDC的ISAPI模型通信机制WebIISIDCODBCHTX数据库IDC OLE ISAPI是DLL文件,通常存在于IIS脚本文件中,可运用户访问Web页上的软件部件,其义务流程如图 Web浏览器OLE ISAPIActiveX DLL数据库Web ServerOLE ISAPI模型 但是,SAPI运用程序开发难度较高,由于SAPI运用程序与Web效能器结合得太严密,SAPI运用程序实际上成了Web效能器内
16、核的一部分。另外,SAPI运用程序移植性差,开发出的运用程序往往只能在相应的Web 效能器上运转。 ASP、PHP、JSP技术比较 一、ASP技术 鉴于SAPI的这种弊端,Microsoft公司于1997年10月推出了一种Web运用程序开发技术Active 效能器页ASPActive Server Page。ASP是效能器端的脚本文件,它可以是HTML,也可以是VBScript或JavaScript,ASP的目的是提供可编程HTML页来呼应Web页,满足用户的要求。ASP文件只能运转在效能器上,不能在阅读器上运转。像OLE ISAPI一样,ASP页面也可以运用效能器端的ActiveX部件,这些
17、部件通常是EXE部件,前往的信息在ASP得到解释。ASP数据流动如图 Web浏览器ASP数据库ASP模型ActiveXODBC 运用ASP时,运用程序是在server端运转而不是在Client端。当用户访问一个ASP页面时,首先,Web Server调用ASP文件,在读取ASP文件的全部内容后开场解释执行一切的Script命令,生成规范HTML页,再把这些HTML页传到用户端的阅读器上,并完成操作。这样,我们就不用担忧用户所运用的阅读器的类型了,Web Server端曾经处置了一切。ASP提供了一种阅读器中枢方案来完成运用程序的设计义务。由于用于生成动态内容的脚本可以在效能器上执行,所以开发者
18、不用担忧客户用什么阅读器来阅读网点,实现了阅读器的无关性。 ASP基于DCOM (Distributed Component Object Model,分布式组件对象模型) 构架,让程序构件可在本地或网络上以分布方式执行,使得基于客户机/效能器体系构造的运用程序更具效率。HTTP阅读器由于本身具有跨多种软硬件平台的优势,所以是一种极好的客户端操作平台。有了ASP, 程序与外观得到分别,经过运用脚本和组件,Active Server Pages允许用户将编程义务与一个网页的设计和其他义务别分开来。这就可以确保开发者可以将主要的精神用来思索编写程序的逻辑,而不用担忧外观是怎样的。同时,它也使那些从
19、事外观设计的人员可以利用一些工具如Frontpage,InterDev来对网页进展修正,而不用过于关怀编程问题。 在运用范围方面:ASP是Microsoft开发的动态网页言语,也承袭了微软产品的一向传统只能运转于微软的效能器产品IIS(Internet Information Server)(Windows NT)和PWS (PersonalWeb Server)(Windows 98)上。在 Unix下虽然有 Chili Soft的插件来支持ASP,但是ASP本身的功能有限,必需经过 ASP+COM的组合来扩展, Unix下的COM实现起来非常困难。 在数据库衔接方面,ASP可以接纳来自远程
20、客户的传入参数,实如今Internet运用中与ODBC数据库互连,也可以经过ADO、OLE DB Provider等方式访问数据库。 另外,运用ASP访问数据库比较清楚简明,简单的ASP脚本即可实现非常复杂的数据库的衔接、查询与修正。 ASP具有如下的优缺陷: 优点:由于简单易学,再加上微软公司的强有力支持,借助于该公司所提供的 Com+技术,几乎可以实如今 C/ S可以实现的一切功能,所以遭到广大 Web开发人员的喜欢。另外,ASP抑制了CGI脚本的某些缺陷,使得客户可以共享效能端进程,从而降低了系统开销。 缺陷:只能在 Windows平台下运用,虽然它可以经过添加控件而在Linux下运用,
21、但是其功能最强大的DCOM控件却不能运用,限制了系统的跨平台性能。 PHP技术 PHP全名 Hypertext Preprocessor,是一种跨平台的基于效能器端的嵌入式脚本言语。PHP是基于Unix/Linux平台的效能器端嵌入式脚本技术。它秉承了Linux的GNU风格,借助于源码公开,大量地借用C、Java和 Perl言语的语法,援用类的概念,使得代码的可反复性运用变的异常简单,它在普通的HTML页面中嵌入PHP脚本语句,并耦合PHP本人的特性,使Web开发者可以快速地写出动态生成页面。在页面执行过程中,PHP由效能器解释和翻译成普通的HTML文件,然后传送回客户端阅读器。同时,它内置了
22、对数据库的支持,使得与数据库的衔接变得容易。 优点:它支持目前绝大多数数据库;PHP是完全免费的,可以从PHP官方站点 (:/ / P)自在下载,而且可以不受限制地获得源码,甚至可以从中加进本人需求的特征。由于它与Linux、Apache和My Sql的配合很严密,从而使得关键性的运用也没有问题。PHP可以运转在Unix/Linux+Apache、Win9X+PWS、WinNT+IIS等平台上。 缺陷:PHP缺乏规模支持和多层构造支持;PHP提供的数据库接口支持不一致,这使得它不合顺运用于大型电子商务站点,而更适宜一些小型的商业站点。此外,由于没有一个非常有实力的公司专门给它做支持,因此相关的
23、学习资料比较少,目前在国内运用它的站点比较多,但是专门讲解它的站点就比较少,这给初学者带来了很多的费事。 另外,由于PHP是纯粹的解释性言语,所以运转性能比较低下;同时PHP缺乏对面向对象技术的广泛支持。 目前被广泛运用的页面开发技术JSP JSP全名Java Server Pages,是Sun公司推出的新一代站点开发言语,它完全处置了目前ASP和PHP的一个通病脚本级执行。特点:JSP是在ASP之后定义的,它借用了ASP的许多优点,如Session和 Application等对象;同时JSP运用灵敏而强大的Java言语,而不是低效的Script言语。 JSP的特点: (1) JSP的效率和平
24、安性更高。JSP在执行以前先被编译成字节码 (Byte code),字节码由Java虚拟机 (Java Virtual Machine)解释执行,比源码解释的效率高;效能器上还有字节码的 Cache机制,能提高字节码的访问效率。第一次调用 JSP网页可以稍慢,由于它被编译成Cache,以后就快得多了;同时,JSP源程序不大可以被下载,特别是Java Bean程序完全可以放到不对外的目录中。 (2) JSP的组件(Component)方式更方便。ASP经过COM来扩展复杂的功能,如文件上载、发送 以及将业务处置或者复杂计算分别出来成为独立可反复利用的模块。JSP经过Java Bean实现了同样的
25、功能扩展。在开发方面,COM的开发远比Java Bean复杂和繁琐,学会ASP不难,但学会开发COM那么比较困难;而Java Bean那么相对简单。在维护方面,COM必需在效能器上注册,假设修正了COM程序,就必需重新注册,甚至必需关机和重新启动。Java Bean那么不需求注册,放在CLASSPATH包含的目录中就行了。另外Java Bean是完全的 OOP,可以针对不同的业务处置功能方便地建立一整套可反复利用的对象库,例如用户权限控制、自动回复等。JSP 与ASP和PHP的比较 在国内 PHP与 ASP运用最为广泛;由于JSP是一种较新的技术,国内刚刚兴起,但在国外,JSP曾经是比较流行的
26、一种技术。它们之间既存在很多共同特点,也存在很多不同。JSP与ASP的比较 JSP也提供了在HTML代码中混合程序代码,由言语引擎进展解释执行的才干。不同的是,ASP用的是Vbscript、JScript等之类的脚本言语,而JSP运用的是成熟强大的Java代码。客户端恳求JSP编写的页面时,代码首先被转换成Java源文件,再编译成支持HTTP、FTP等网络协议的Class文件 (即Servlet),并由Java虚拟机执行。这种编译操作仅在对JSP页面的第一次恳求时发生,虽然初次调用需几秒的编译加载时间,但后续恳求只需调用效能器端缓存中的Servlets就可以了,比起每次恳求都要解释执行的ASP
27、代码要快。 综合来讲,JSP和ASP的主要区别或者说JSP的优势表如今以下几方面: (1) JSP技术是基于平台和效能器独立的。它广泛吸收和接纳了各种工具包、效能器组件和数据库开发商提供的产品。例如Sun公司授权MacroMedia为JSP的工具提供商,Apache、Netscape等公司为结盟公司,还得到Oracle、IBM、Inprise等大公司的支持。这也就使得JSP可以运转于IIS、Apache、Netscape等各种Web效能器,支持Solaris、Windows、Macos、Unix、Linux等绝大多数操作系统平台。 (2)JSP内置支持XML技术,使得开发者可以定制本人的标签,
28、因此大大减少了对脚本言语的依赖和编程义务量。而ASP尚不支持自定义标签。 (3)JSP突出的组件技术 (包括JavaBean、EJB、定制的JSP标签 )使JSP具有跨平台可重用性,大大加速了总体开发进程。JavaBean是一种可重用Java组件,即可以被JavaApplet/Servlet/JSP等Java程序调用,也可以被可视化Java开发工具运用,它是完全意义的OOP。企业JavaBean(EJB) 组件可以访问传统的数据库,并且能以分布式系统方式义务于UNIX和Windows平台下,实现组件和负载平衡。虽然ASP支持微软的组件对象模型COM,但现实上COM的开发远比JavaBean复杂
29、而繁琐,Unix环境下实现COM更是困难。而且COM必需在效能器上注册后才可援用,更改COM需求重新注册,而JavaBean无需注册,放在ClassPath包含的目录中就可以了。 (4)JSP对数据库的访问主要经过JDBC(JavaDatabase Connectivity)来实现的。对于只支持ODBC的数据库,可以经过JDBC-ODBC Bridge来实现访问。这也就意味着JSP可以比ASP访问更多类型的数据库。 (5)JSP比ASP平安性更高。ASP应该说只在效能器端运转,将执行结果以HTML方式前往客户端阅读器,由此屏蔽源码程序,但IIS存在的破绽呵斥许多网站的ASP源码被下载。 相比之
30、下,JSP的平安性要高得多,它在执行前要编译成字节码,再由Java虚拟机执行,源码相对不易被下载,尤其在用了JavaBean之后,平安性更高。 此外,Java言语还可以有效地防止系统解体,提供防止内存泄露的方法,JSP本身也有强大的不测事件处置机制。而ASP在这方面那么几乎是无能为力的。 (6)JSP的顺应平台更广。ASP目前仅适用于NT和IIS。虽然Unix下有Chili Soft的插件来支持ASP,但是ASP本身的功能必需经过ASP+COM的组合来扩展,Unix下的 COM实现起来非常有限困难。JSP那么不同,几乎一切平台都支持 Java,JSP+Java Bean可以在一切平台下通行无阻
31、。从一个平台移植到另外一个平台,JSP和Java Bean甚至不用重新编译,由于Java字节码都是规范的与平台无关的。JSP与PHP的比较 PHP可在 Windows、Unix、Linux的Web效能器上正常运转,还支持IIS和 Apache等通用的Web效能器;用户改换平台时,无需变换PHP3代码。 JSP同 PHP3类似,几乎可以运转于一切平台,如Windows NT、Linux 和 Unix。NT下IIS经过一个插件,例如JRUN或者Servlet Exec,就能支持JSP。著名的Web效能器 Apache曾经可以支持 JSP。由于Apache广泛运用在NT、 Unix和Linux上,因
32、此JSP有更广泛的运转平台。虽然如今NT操作系统占了很大的市场份额,但是在效能器方面 Unix的优势依然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台, JSP和Java Bean甚至不用重新编译,由于Java字节码都是规范的、与平台无关的。 PHP由于是自在软件,在许多方面还是存在着一定的缺陷,与JSP相比有一定的差距: 虽然PHP和JSP都具有平台和效能器的独立性,但严峻来说,JSP更胜一筹。JSP可以支持从Windows、NT、Linux、Unix到OS/ 390、FreeBSD几乎一切的平台,而PHP目前支持的平台那么相对有限。 PHP是解释型的言语,性能相对JS
33、P要差。JSP经JIT编译后,可以和C不相上下,而且支持多线程。 JSP有JavaBean和EJB这样强大的组件开发技术,支持LDAP等效能。经过Java2平台 (即J2EE)可以同企业运用系统 (如ERP、CISS等 )实现交互,还可支持Java IDL和RMI-IIOP两种CORBA规范。而PHP在这方面几乎是空白,加上对不同数据库的接口不一致,使得它在经过分布计算构建大型电子商务站点中无能为力。 综合比较,JSP较之ASP和PHP更具优势。三种开发技术在性能方面:有人做过实验,对这三种言语分别做循环性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了令人吃惊的四秒钟就终了
34、了 2 0 0 0 0 *2 0 0 0 0的循环。而ASP、PHP测试的是2 0 0 0 *2 0 0 0循环 (少一个数量级),却分别用了6 3秒和84秒。 数据库测试中,三者分别对Oracle 8进展1 0 0 0次Insert、Update、Select和 Delete:JSP需求1 3秒,PHP需求69秒,ASP那么需求73秒。数据库存取技术的开展 如何存取数据库是构造一个数据库运用必需处置的问题。从早期的单机方式到如今的多层次方式,数据库存取技术也从ODBC开展到ADO和JDBC。ODBC数据库API ODBC(Open Database Connectivity)是运转于Wind
35、ows平台的一种数据库API,它是由微软公司开发的一种编程接口规范。 与传统的数据库运用程序的实现方法相比,ODBC使一样的运用程序代码适用于不同的DBMS,实现运用程序和DBMS逻辑上的分别。典型的ODBC体系构造如图应用程序ODBC APIODBC 管理器Driver For OracleDriver For Sql ServerDriver For DB2数据源数据源数据源Oracle数据库DB2数据库SQL Server数据库ODBC体系结构 ODBC管理器安装在Windows的控制面板中,在ODBC运转机制中起配置环境、登记信息的作用。运用程序可以调用ODBC API函数,提交SQL
36、语句并前往结果数据集合,对数据集合进展处置。API是运用程序与ODBC的接口,定义了一个供应用程序调用的函数调用集。ODBC驱动程序管理器根据运用程序的要求,调用不同的ODBC驱动程序。ODBC驱动程序根据运用程序的ODBC函数调用,对指定的数据源执行相应的SQL语句,并把结果数据集前往给运用程序。数据源包括数据库文件和与之相关的DBMS、操作系统、网络平台等。 上述分析通知我们:ODBC离不开Windows平台的支持。用户要利用ODBC进展数据库存取,必需首先配置或在程序以代码方式生成数据源,然后才干进展其它操作。这种局限性使得运转程序不能脱离Windows平台,而且在部署添加配置的复杂性。
37、ADO数据库存取技术 DAO(Data Access Object)是Microsoft 最初提供应Visual Basic 程序员的数据访问方法,它利用Jet(Joint Engine Technology)接口,提供对ISAM数据库如FOXPRO,PARADOX以及ACCESS数据库的良好的支持。但经过DAO连结ODBC数据源时性能较差。为了提高访问远程数据源的性能,Microsoft推出了RDO(Remote Data Object),RDO代表了ODBC API上的一个对象层,实现了ODBC API 的性能优势。虽然RDO可以访问任何ODBC数据源,但它主要是为充分利用那些运用复杂查询
38、引擎的数据库如SQL SERVER, ORACLE SERVER而设计的。客户需求一种通用的并且是可扩展的数据访问方法,ADO正是在这样的背景下产生的。 ActiveX数据对象ActiveX Data Object代表了数据访问方法的未来,是一致数据访问(Universal Data Access)的一个根本组件。ADO并不是一个详细的数据访问接口,ADO是一个数据访问编程模型。ADO也不是专门为关系型数据库或ISAM数据库设计的,它是一个可与恣意数据源访问编程模型。ADO可以经过固有OLE DB 提供者访问数据,也可经过一个特殊的 OLE DB 提供者访问恣意ODBC数据源。ADO允许网络开
39、发者方便地将一个数据库与一个“激活的网页相衔接,以便存取和操作数据。这就使得开发者可以为网络开发出一个新型的、由数据库驱动的Web运用程序,并可以在一个系统上设置一个网络“前端处置器。一个运用ADO的ASP文件可以动态地从某个数据库中恳求信息。例如,在对一个数据库进展修正后图书馆购买了新书后,可以立刻给每个读者以相应的反响信息,而不用改动HTML代码。 ADO是用来访问OLE DB的数据访问技术。它是基于OLE DB的模型之上的,但是 ADO模型简化了对对象的操作,由于它并不依赖于对象之间的相互层次作用。 1ADO对象的构造对象的构造 ADO封装了封装了OLE DB所提供的接口参看所提供的接口
40、参看图。这些接口分别被图。这些接口分别被OLE DB数据提供程数据提供程序、序、OLE DB数据运用程序和数据运用程序和 OLE DB效能效能提供程序所运用。而提供程序所运用。而ADO中所提供的对象中所提供的对象只适用于数据提供程序。它运用了只适用于数据提供程序。它运用了OLE DB效能提供程序和效能提供程序和OLE DB数据提供程序所提数据提供程序所提供的接口和效能。供的接口和效能。应用程序ActiveXData ObjectOLE DB ProviderOracle数据库SQL Server数据库ADO数据库存取机制OLE DB 2ADO运用的构造运用的构造 大多数情况下,设计者只关怀所要
41、创建和运用的对象,而大多数情况下,设计者只关怀所要创建和运用的对象,而无须了解其父对象。例如,在无须了解其父对象。例如,在 OLE DB的操作上,必需先的操作上,必需先要建立数据源与数据运用程序之间的衔接,才干翻开一个要建立数据源与数据运用程序之间的衔接,才干翻开一个行集对象,而在行集对象,而在ADO中,可以直接翻开一个记录对象,中,可以直接翻开一个记录对象,而无须先建立与数据源的衔接。而无须先建立与数据源的衔接。 ADO对象的运用必需依对象的运用必需依赖于数据提供程序所支持的特性。赖于数据提供程序所支持的特性。ADO是经过是经过OLE DB对对数据源进展访问的,数据源进展访问的, ADO对数
42、据源进展访问时,调用了对数据源进展访问时,调用了 OLE DB数据提供程序和效能提供程序。所以,数据提供程序和效能提供程序。所以,ADO是是OLE DB的高层运用。同时,由于的高层运用。同时,由于ADO是用是用OLE DB运用运用程序对数据源进展访问的,所以,程序对数据源进展访问的,所以, ADO技术不仅可以运技术不仅可以运用于关系数据库用于关系数据库 (如如 SQL Server等等 ),也可以运用于非关,也可以运用于非关系数据源系数据源 (如如 E- mail文件系统、文件系统、html文件、文件、ISAM文件系文件系统、电子表格文件系统,甚至是用户本人创建的文件系统、电子表格文件系统,甚
43、至是用户本人创建的文件系统统 )。这种特征使此技术具有非常灵敏的访问特性,所以,。这种特征使此技术具有非常灵敏的访问特性,所以,可以用一致的方法对这些一切的不同文件系统进展访问。可以用一致的方法对这些一切的不同文件系统进展访问。这大大简化了程序编制,并添加了程序的灵敏性。这大大简化了程序编制,并添加了程序的灵敏性。 3ADO的对象的对象 ADO模型包含了以下的对象,衔接对象、命令对象、域模型包含了以下的对象,衔接对象、命令对象、域对象、参数对象、记录集对象、错误对象。这些对象的作对象、参数对象、记录集对象、错误对象。这些对象的作用为:用为: 衔接对象衔接对象 (Connetion)用于表示与数
44、据源的衔接,以及用于表示与数据源的衔接,以及处置一些命令和事务。处置一些命令和事务。 命令对象命令对象 (Command)用于处置传给数据源的命令。用于处置传给数据源的命令。 记录集对象记录集对象 (Record Set)用于处置数据的表格集,如获用于处置数据的表格集,如获取和修正数据。取和修正数据。 域对象域对象 (Field)用于表示记录集中的列信息,包括列值以用于表示记录集中的列信息,包括列值以及其它信息。及其它信息。 参数对象参数对象 (Parameter)用于对传送给数据源的命令赋参数用于对传送给数据源的命令赋参数值。值。 属性对象属性对象 (Property)用于操作在用于操作在
45、ADO中运用的其他对象中运用的其他对象的详细属性。的详细属性。 错误对象错误对象 (Error)用于获得所发生的错误的详细信息。用于获得所发生的错误的详细信息。 4ADO技术的特点技术的特点 ADO技术是访问数据库的新技术,具有易于运用、技术是访问数据库的新技术,具有易于运用、访问灵敏、运用范围广的特点。从以上所讨论的访问灵敏、运用范围广的特点。从以上所讨论的 ADO的构造和对象中,我们可以看出,用的构造和对象中,我们可以看出,用 ADO访问数据库的特点可以总结如下。访问数据库的特点可以总结如下。 易于运用易于运用 这是这是 ADO技术的最重要的一个特征。由于技术的最重要的一个特征。由于 AD
46、O是高层运用,所以相对于是高层运用,所以相对于 OLE DB或者或者 ODBC,它具有面向对象的特性。同时,在它具有面向对象的特性。同时,在 ADO的对象构的对象构造中,其对象之间的层次关系并不明显,相对于造中,其对象之间的层次关系并不明显,相对于 DAO等访问技术来讲,又不用关怀对象的构造顺等访问技术来讲,又不用关怀对象的构造顺序和构造层次。对于要用的对象,不用先建立衔序和构造层次。对于要用的对象,不用先建立衔接、会话对象,只需直接构造即可,方便了运用接、会话对象,只需直接构造即可,方便了运用程序的编制。程序的编制。 高速访问数据源 由于 ADO技术基于 OLE DB,所以它也承袭了 OLE
47、 DB访问数据库的高速性。 可以访问不同的数据源 ADO技术可以访问包括关系数据库和非关系数据库的一切的文件系统。 程序占用内存少 由于 ADO是基于组件对象模型 (COM)的访问技术,所以,用ADO产生的运用程序占用内存少。 所以对于构造基于Windows平台的数据库运用来说,ADO是目前进展数据库存取最有效的API之一。当然,这仅仅限于Windows平台而已。电子商务数据库技术的开展方向 虽然当前的两层和三层模型可以胜利的构建层次化的数据库运用,但是新一代开发技术的开展取代现有技术是必然趋势;同样,经过ODBC和ADO技术可以在Windows平台上顺利的访问数据库,但是在其它平台上却无能为力。因此对于构建跨平台、可移植的数据库运用来说,必需去探求新的设计方法。 分布式计算看数据库技术开展。 分布式计算(Distributed Computing)是近20年来影响计算机技术开展的最活泼要素之一,它的开展阅历了两种不同的技术道路。 第一种是理想的技术道路,试图在互连的计算机硬件上部署全新的分布式操作系统,全面管理系统中各自独立的计算机,呈现给用户单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业教育实训基地建设项目压覆重要矿产资源评估
- 2025内蒙古交通集团鄂尔多斯市道融建设发展有限责任公司竞争性比选中层管理岗位人员拟聘用人员笔试历年备考题库附带答案详解
- 2025兴业银行南充分行社会招聘(8月)笔试历年典型考题及考点剖析附带答案详解
- 2025下半年广西柳州市人民政府国有资产监督管理委员会所属事业单位招聘拟聘笔试历年备考题库附带答案详解
- 伤员救援处置预案
- 公司战略评审方案
- 公司课堂培训方案
- 公司规范化培训方案
- 抽水蓄能电站照明系统方案
- 2026年远程医疗服务平台合同协议
- 2026年高考(广东卷)语文试题及答案
- 教科版三年级科学下册第三单元第6课《一天中影子的变化》教学设计
- 新疆哈密十三师水务管理有限公司招聘笔试题库2026
- 2026年重庆八中初升高中考自主招生英语试卷真题
- 防治艾滋病宣传课件
- 《Linux操作系统基础》课件-LVM逻辑卷的创建
- 2025届哈尔滨市重点中学新初三摸底考试英语试题含答案
- 2026年品牌知识产权合同协议
- 昏迷治疗课件
- 2026年江苏高考物理解析含答案
- 招标代理机构选取服务方案投标文件(技术方案)
评论
0/150
提交评论