Web数据库访问技术的分析与比较
2024-04-07
来源:步旅网
维普资讯 http://www.cqvip.com 第5卷第4期 实验科学与技术 ・37・ Web数据库访问技术的分析与比较’ 汪瑾”,胡晓丽 541004) (桂林电子科技大学教学实践部,广西桂林摘要:对Windows平台上流行的数据库访问技术ODBC、DAO、RDO、OLE DB、ADO、ADO.NET等分别进行了介绍,探 讨了其发展演变的原因,分析、比较了其适用的环境。 关键词:Web数据库;开放数据库互联;通用数据访问技术;ADO.NET访问技术 中图分类号:TP311.13 文献标识码:B 文章编号:1672—4550(2007)04—0037—04 Analyzing and Comparing the Access Techniques of Web Database WANG Jin,HU Xiao—li (Practice and Experiment station,Guilin University of Electronic Technology,Guilin 541004,China) Abstract:This article introduces several database 8ccess techniques that are popular on the windows platform such as ODBC,DAO, RDO、OLE DB,ADO and ADO.NET,explores into the reason of their development and evolution,analy zes and compares their ap— propriate environments. Key words:Web Database;ODBC;UDA;ADO.NET 1 引 言 随着Internet技术的兴起与蓬勃发展,静态 Web站点由于缺乏交互性,缺少人性化及个性化 等特点,其开发与维护已变得越来越困难。为了向 器都支持它。开发人员还可以使用任何一种、 服务器内置语言编写CGI,其中包括流行的C、 C++、VB和Delphi等。它是外部应用程序与 Web服务器交互的一个标准接口。 调用CGI程序可以实现Web服务器和Web浏 览器的交互。同时,它还充当了Web服务器与数 据库服务器之间的网关,将通过web发来的操作 转化为对数据库的操作,然后再将结果以Web浏 览器可以识别的形式返回。 网络用户提供大量有用的、动态的和可交互的信 息,出现了基于Web数据库的动态网页设计。 Web数据库是指:以后台数据库为基础,加 上一定的前台程序,通过浏览器完成数据存储、查 询等操作的系统。Web数据库采用三层客户端/服 务器的体系结构,即客户端浏览器/Web服务器/ 数据库服务器(Browser/Web Server/DataBase Serv— er,B/W/D)体系结构。 随着数据库产品和技术的快速发展,Web与 数据库互联的应用程序实现方式的多样化,数据访 问技术也在不断改进。本文针对常用的Web数据 访问技术进行分析和比较。 CGI的优点是跨平台性能好,几乎可在任何操 作系统(如DOS、Windows、Unix、0S/2等)上实 现。缺点是CGI程序作为一个独立的外部应用程 序来运行,与Web服务器上的其他进程竞争处理 器资源,且一个CGI程序只能处理一个请求。由 于对每个请求,CGI都会产生一个新的进程,因此 同一时刻发出的请求越多,服务器产生的进程就越 多,耗费的系统资源也越多。另外,CGI的功能有 2 Web访问数据库接口技术 2.1基于通用网关接口CGI 限,开发较为复杂,并且还不具备事务处理功能。 2.2基于服务器扩展的API应用程序接口 为了克服CGI的局限性,出现了基于服务器扩 展的API(Application Program Interface)结构。服务 CGI(Common Gateway Interface)是最早普遍使 用的Web数据库访问技术,几乎所有的Web服务 器API以动态链接库DLL的形式提供,是驻留在 ・收稿日期:2007—03.29 ・・作者简介:汪瑾1968一),女,实验师,主要从事计算机教学实践工作。 维普资讯 http://www.cqvip.com ・38・ 实验科学与技术 2007年8月 Web服务器上的本机代码。它能够实现CGI程序所 能提供的全部功能,且进一步解决了基于不同www 应用程序的特殊请求。用API开发的程序比用CGI 开发的程序在性能上提高了很多。它们的工作原理 手段,如Foxpm、paradox、Microsoft Access、Excel Worksheets等;另一种是通过ODBC接口来进行存 取。ODBC数据库能够被直接存取或与一个本地引 擎数据库联系起来,DAO数据库引擎可以访问任 大体相同,但两者的实现机制却大相径庭。其最大 何提供标准ODBC驱动的客户 服务器数据库。e、Sybase和SQL Server。 区别在于:服务器API创建的程序以动态链接库的 这些数据库包括Oracl形式存在,而CGI程序一般是可执行程序。在服务 般来说DAO是本机Access数据库和ISAM类 器API的调用方式中,被用户请求激活的DLL和 型数据源首选的访问接口。但在通过ODBC接口访 一Web服务器处于同一进程中,在处理完某个用户请 问ODBC数据源时,所有请求和数据处理都必须经 求后并不会马上消失,而是和Web服务器一起继续 驻留于内存中,等待处理其他用户的H1fI'P请求。 基于服务器API的所有进程均可获得服务器上的任 何资源,因此运行效率明显高于CGI。 但API也存在一些明显的缺陷,比如:各种 API之间兼容性很差,缺乏统一的标准来管理这些 接口;开发API应用程序仍旧十分困难。 2.3 ODBC、DAO、RDO 由于API方法开发数据库访问程序的复杂性, 出现了基于底层API的高层数据库编程接口,即 Micorsoft公司推出的一个开放式数据库接口标准 ODBC(Open DataBase Connectivity开放数据库互 联)。它是一种使用SQL的应用程序接口。 ODBC为应用程序和驱动模块提供了一个定义 良好的、不依赖于数据库的应用程序接口(API), 并且保持了与SQL标准的一致性。使用API时, ODBC通过一个驱动管理器来判定应用程序要连接 的数据库的类型,并载人(或卸载)适当的ODBC 驱动,这样就实现了应用程序和数据库之间的相互 独立性,简化了从操作系统到数据库的访问。 ODBC使用低层接口,因此C和C++程序员 是真正从ODBC技术受益最多的人,为了更简单地 访问ODBC接口,出现了另一种较高级别的数据访 问模式DAO(Data Access Object)。 DAO是一种面向对象的界面接口,特色是它 不是可视化的,而是全部要靠编码来完成。DAO 模型是设计关系型数据库系统结构的对象类的集 合。它提供了完成管理这样一个系统所需的全部操 作的属性和方法,包括创建数据库,定义表、字段 和索引,建立表间的关系,定位和查询数据库等。 DAO是建立在Microsoft Jet基础之上的,是组 成数据引擎内核的一组动态链接库。它支持两种不 同的数据库环境:一种是利用微软Jet数据库引 擎,使DAO成为存取本地ISAM(Index Sequential Access Me ̄od顺序索引查找方法)数据库的最佳 过Jet引擎,这在很大程度上降低了对ODBC数据源 的存取速度。与ODBC相比,DAO API不能提供~ ODBC API所提供的底层控制,属于高层AH。 针对DAO访问ODBC数据源性能不佳的缺陷, Microsoft推出了远程数据对象RDO(Remote Data Objects)。它是专门为ODBC的接口单独设计,可 视为ODBC API的抽象。 RDO提供了一个连接到ODBC的抽象定向对 象接口。这些接口能够实现所有ODBC API拥有的 底层功能和灵活性。RDO可以在更底层与服务器 的数据库相连,与DAO通过Jet引擎访问数据库不 同,RDO直接与ODBC相连,因此对于访问ODBC 数据源具有很好的性能。 因为没有Jet引擎层,RDO也存在明显的局限 性,即不能访问Jet和ISAM数据库文件,只能通 过ODBC驱动程序访问关系数据库。但RDO提供 了更为先进的数据库功能,通过提供对象、方法、 属性,可以访问非常复杂的存储过程和记录集。 2.4通用数据访问技术UDA ODBC已成为访问客户机/服务器数据库的标 准,并提供了基于标准的接口。接口要求具有SQL 处理功能。然而,如果要访问不使用SQL的非关 系数据源中的数据,怎么办呢?微软提出了UDA (Universal Data Access)。UDA为关系型或非关系 型数据源访问提供了统一、独立于开发工具和开发 语言的访问接口,为企业级Intranet应用多层软件 结构提供了数据接口标准,是继ODBC之后的又一 数据访问技术的飞跃。 UDA模型是一个具有两层标准 、 的新 的数据访问模型,它以COM(Component Object Model组件对象模型)技术为基础。其接口分别为 OLE DB(Object Linking and Embedding Database对 象链接和嵌人式数据库)和ADO(Active Daat Ob- ject),分别对应于不同层次的开发。 OLE DB是UDA的底层软件接口,是UDA技 维普资讯 http://www.cqvip.com 第5卷第4期 Experiment Science&Technology 应用系统 ・39・ 术的核心,是系统级访问接口。它继承了ODBC实 现开放式数据连接功能,但又有所扩展,由一组 COM对象组成。它能够通过单一的编程接口来实 现对各种类型的数据的访问,包括关系型、非关系 型和层次结构型数据。 善 I OLEDB ADO 毒 . l{ 游标引擎、分布式查询等’一 OLE DB的设计采用多层次模型,定义封装了 各种数据库管理系统服务的COM接口集合。它分 为两部分:一部分由数据提供者实现,包括一些基 } OLEDB , 本功能,如获取数据、修改数据、添加数据项等; 另一部分由系统提供,包括一些高级服务,如游标 功能、分布式查询等。这样的层次结构既为应用程 序提供了多种选择方案,又为数据提供者简化了服 务功能的实现手段。 与ODBC相比,OLE DB内置了SQL处理程 序,不用额外建立SQL驱动引擎;它支持一些不 规则的数据系统,而ODBC只支持关系数据库。因 此,OLE DB是一种更先进、更灵活的方法。但也 有编程代码量大、对底层的操作比较复杂的缺陷。 能够继承其功能,并对其进行封装、简化的接 口就是ADO。ADO是UDA高层应用级接口,可在 各种脚本语言或一些宏语言中直接使用。它以 OLE DB为基础,通过OLE DB提供的COM接口访 问数据。ADO适合于各种客户 服务器应用系统 和基于Web的应用,尤其在一些脚本语言中访问 数据库操作是ADO的主要优势。 ADO是DAO/RDO的后继产物,是一个比 RDO和DAO更加简单、更加灵活的对象模型。在 功能上非常类似于RDO,易于使用、速度快、内 存支出少和使用较少的网络流量是它的主要优点。 应用程序既可以通过ADO访问数据,也可以 直接通过OLE DB访问数据,而ADO则必须通过 OLE DB访问底层数据。利用ASP语言结合ADO 组件可以产生和运行动态的、交互的、高性能的 Web服务应用程序。图1为UDA的层次结构图。 2.5 ADO.NET时代 Microsoft公司的.NET体系结构是Windows分 布式网络应用程序体系结构的演进。在数据库访问 技术方面,Microsoft根据其成功的ADO对象模型 经验设计了ADO.NET,它是一种基于XML的全新 的数据访问技术。它提供与OLE DB兼容的数据源 的数据存取接口。允许以数据为中心的应用程序连 接到不同的数据源,包括各种数据库、XML,Ex- cel等,以获取、操纵和更新数据。其执行效率比 传统的ADO传输快很多。 { 电子表格、ODBC SQL、 雉 ISA 、目录服务、文件系统I 图1 UDA的层次结构图 ADO.NET使用断开的结构体系访问和操作数 据。传统的ADO技术,其数据存取是基于连接的, 当多个应用程序访问数据库时,服务器端的数据库 连接池中的连接就将大量增加,增大了服务器的资 源开销。而ADO.NET作为Microsoft.NET中包含 的新一代数据存取技术,它采用三层以上的数据处 理结构,具有对断开连接的数据的内部支持及其与 整个.NET框架的无缝整合,从而使之成为Web 数据库开发的领先关键技术之一。 为了将数据访问和数据操纵分离,ADO.NET 使用了如下两个核心组件:ADO.NET DataSet(数 据集)和ADO.NET Data Provider(数据提供者),分 别介绍如下: (1)DataSet对象是一个存在于内存中的数据 库,是ADO.NET断开式结构的核心组件。其设计 目的是实现任何独立于数据源的访问。因此,它可 用于多种不同的数据源,用于XML数据,或用于 管理应用程序本地数据。DataSet包含一个或多个 DataTable对象的集合,这些对象由数据行和数据 列以及主键、外键、约束和有关DataTable对象中 数据的关系信息组成。 (2)Data Provider负责与物理数据源连接、执 行命令和获取结果。在ADO.NET中包含了两种数 据提供者。一个是SQL Server.NET Data Provider, 它使用特殊的通信协议与SQL Sevrer进行直接通 信,具有较好性能。但只能应用于Microsoft SQL Server 7.0及其更高的版本。另一种是OLE DB. NET Data Provider,通过OLE DB与数据源进行通 信。它既支持手动事务,也支持自动事务。但效率 要低于SQL Sevrer.NET,因为在通信时需要通过 OLE DB层进行呼叫。 (下转第74页) 维普资讯 http://www.cqvip.com ・74・ 实验科学与技术 2007年8月 并实行严格的申报、验收、监管程序,并鼓励学生 参与教师的科研项目,这样有利于学生进行前瞻性 3.5 实验教学改革产生了较好的社会效益 研究、创新型研究。成绩优异的,给予适当奖励; 不能取得预期效果的,写明原因,并不给予处罚, 创造“实验室开放”的宽松环境。 同时,对于实验工作人员承担的开放实验任 务,视作正常的教学任务安排,计人各实验工作人 员的年终考核工作量。这样,也调动了实验工作人 员的积极性和责任感。 3.4重视实验师资队伍建设 近年来,实验中心充分利用我院在民族医药、 野生稻、微生物资源方面独特的人才及技术优势, 积极开展民族医药现代化的研究与人才的培养,先 后与西双版纳傣族自治州人民政府、黑龙江塔河县 人民政府、湖北香连药业等就傣族、土家族、侗 族、苗族、鄂伦春族等民族药物的物质基础、作用 机理、质量标准以及新剂型进行研究。同时我们在 本科实验教学中相应开设了傣药药材质量标准研 究、民族药物新剂型研究、民族药用植物形态鉴 定、分类及资源保藏、野生稻原位杂交和微生物基 因工程等设计l生实验课程,在民族药物方面已鉴定 出常熟、桔梗、鱼腥草、百合等100多种中药材, 实验教学改革有力地促进了科研发展。 参考文献 [1]杨朝晖,张薇,曾光明,等.改革高校实验教学,培 养高素质人才[J].高等理科教育,2005(4):106— 108. 高效的运作模式需要高素质的管理队伍。实验 中心采取公开招聘、竞争上岗等形式,将教学科研 经验丰富、管理能力强的教师充实到实验师资队 伍,现已引进博士3人到实验中心工作。同时,加 强现有实验人员的培训工作,选派实验技术人员到 实验雄厚的高校甚至国外高校学习交流;组织实验 技术人员参与高校的科研课题,开阔了实验人员视 野,增强了对科研前沿动态的了解,提高了实验教 学质量。各学科带头人、骨干教师参与对实验的技 术指导、实验课程设置设计和组织,并轮岗担任实 验教学任务,提高了实验师资队伍的整体水平。另 [2] 马纲,张敏.试论高校实验室开放的形式与管理 [J].实验科学与技术,2006,4(2):103—104. [3]董贾寿.高校实验教学改革与实验室建设的理念与 模式[J].实验科学与技术,2006,4(4):1—3. 外,对实验技术人员在晋职晋升方面给予了适当政 策倾斜,提高了实验人员队伍的积极性。 (上接第39页) ADO.NET可以实现对关系数据库、XML和应用程 序数据的访问,属于应用程序级接口,是目前性能 较好的一种数据访问模式。 ADO.NET访问数据库过程如图2所示:首先 利用Connection对象与数据库建立连接,Data— Adpter对象是DataSet对象和数据源连接的桥梁。 通过使用Command对象在数据源中执行SQL命令, 随着网络技术和数据库技术的飞速发展,数据访 问技术也在不断地变化。不同的数据访问模式,有着 将数据加载到DataSet中,并使得对DataSet中的数 据更改与数据源保持一致。 与之相适应的应用环境,而数据访问技术提供的性能 优劣会直接影响到应用软件的性能。希望本文有助于 Web应用程序的开发人员为当前工作选择合适的技 术,并有助于在系统需要变化时做出明智的选择。 参考文献 [1]逯燕玲.网络数据库技术[M].北京:电子工业出版 图2 ADO.NET访问数据库的过程 社,2004:15—17. [2]王承君.Web数据库技术应用教程[M].北京:中国 3结束语 通过上述分析和比较可以概括出,ODBC和 水利水电出版社,2005:2—6. [3]夏小彬、严小卫.微软数据访问技术综述[J].计算 级应用研究,2001(1):130—133. OLE DB都是底层API,属于系统级调用,拥有性 能和灵活性上的优势,但编程困难,难以使用。 DAO、RDO和ADO是高层API,是应用级调用, 它们都提供了数据库编程的对象模型,编程简便、 高效,但性能和底层控制功能有所损失。而 [4]李琪.网络数据库[M].重庆:重庆大学出版社, 2004:190—253. [5]Clifton Nock.数据访问模式:面向对象应用中的数据 库交互[M].邬爱兰,王安鹏,译.北京:中国电力 出版社,2004.