数据访问技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据访问技术浅析
[摘要] 随着计算机技术的飞速发展,各种应用程序对数据库的需求也随之提升,本文对一些常用的数据库技术做了简要的介绍与分析。
[关键词] odbcsql
在数据库出现的早期,开发人员只需要了解正在使用的数据库产品的详尽知识。但数据库产品和技术发展很快。从关系数据库到非关系数据存储区(如电子邮件和文件系统),数据访问技术必须始终追随技术的飞速变化。并且,随着客户端/服务器及多层应用程序结构的出现,现在开发人员必须了解多种数据访问技术。大多数开发人员花了数年时间学会了许多缩写词所对应的技术,例如,odbc、dao、rdo、ole db、ado 和 rds。现在 microsoft 已经推出 .net 框架,并且,随之还有另外一项新的数据访问技术:。
当我们沉浸于每一项新的技术进步时,常常会忽略数据访问技术是如何演进的,以及每项技术应运而生的理由。了解这些技术的进展,从 odbc 到 ,有助于为自己的机构选择合适的技术并对其进行优化。
1. odbc
在最基本的数据库设计类型中,应用程序仅依赖一个数据库。在这样简单的设置中,应用程序开发人员可以直接针对数据库系统的接口进行编程。此方法虽然提供了一种快速而有效的数据访问方
式,但当企业发展、开发人员需要扩展应用程序时,它却常常成了阻碍发展的一个大问题。单数据库的方法还意味着,每个现有的应用程序都必须有不同的版本以支持各个数据库。随着业务的变化、发展和合并,应用程序必须访问运行于不同平台的多种数据库。odbc 技术为访问异类的 sql 数据库提供了一个共同的接口。odbc 使用 sql 作为访问数据的标准。显示了标准 odbc 结构的关系图。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的 sql 数据库管理系统 (dbms)。因此,开发人员可以构建并分布客户端/服务器应用程序,而无需针对特定的 dbms。
开发人员可以添加数据库驱动程序,将应用程序与用户所选的dbms 联系起来。如图 1 所示,驱动程序管理器提供应用程序与数据库之间的中间链接。odbc 接口包含一系列功能,由每个 dbms 的驱动程序实现。当应用程序改变它的 dbms 时,开发人员只使用新的 dbms 驱动程序替代旧的驱动程序,并且应用程序可以照常运行无需修改代码。
2. dao 和 rdo
odbc 使用低层接口,因此 c 和 c++ 程序员是真正从 odbc 技术受益最多的人。visual basic (vb) 程序员没有一种简单的方法来访问 odbc 接口。在 vb 6.0 之前,开发人员不得不依赖一种较高级别的数据访问模式。显示了 vb 程序员如何用数据访问对象(dao) 访问数据库。
dao 是建立在 microsoft jet(microsoft access 的数据库引擎)基础之上的。jet 是第一个连接到 access 的面向对象的接口。使用 access 的应用程序可以用 dao 直接访问数据库。由于 dao 是严格按照 access 建模的,因此,使用 dao 是连接 access 数据库最快速、最有效的方法。dao 也可以连接到非 access 数据库,例如,sql server 和 oracle。dao 使用 odbc,但是由于 dao 是专门设计用来与 jet 引擎对话的,jet 将解释 dao 和 odbc 之间的调用。使用除 access 之外的数据库时,这种额外的解释步骤导致较慢的连接速度。
要克服这样的限制,microsoft 创建了 rdo。不久之后,microsoft 推出了 odbcdirect,它是 dao 的扩展,在后台使用rdo。
3. ole db
ole db(oledb)是微软的战略性的通向不同的数据源的低级应用程序接口。ole db不仅包括微软资助的标准数据接口开放数据库连通性(odbc)的结构化查询语言(sql)能力,还具有面向其他非sql数据类型的通路。作为微软的组件对象模型(com)的一种设计,ole db是一组读写数据的方法(在过去可能被称为渠道)。old db中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。使用ole db的应用程序会用到如下的请求序列:初始化ole 连接到数据源、发出命令、处理结果、释放数据源对象并停止初始化ole 。
object linking and embedding,对象连接与嵌入,简称ole技术。ole不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型。
ole 是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(com)。
db(英文全称data base,数据库)是依照某种数据模型组织起来并存放二级存储器中的数据集合。
ole db 标准中定义的新概念
ole db 将传统的数据库系统划分为多个逻辑组件,这些组件之间相对独立又相互通信。这种组件模型中的各个部分被冠以不同的名称:
数据提供者(data provider)。提供数据存储的软件组件,小到普通的文本文件、大到主机上的复杂数据库,或者电子邮件存储,都是数据提供者的例子。有的文档把这些软件组件的开发商也称为数据提供者。
数据服务提供者(data service provider)。位于数据提供者之上、从过去的数据库管理系统中分离出来、独立运行的功能组件,例如查询处理器和游标引擎(cursor engine),这些组件使得数据提供者提供的数据以表状数据(tabular data)的形式向外表示(不管真实的物理数据是如何组织和存储的),并实现数据的查询和修改功能。sql server 7.0 的查询处理程序就是这种组件的典型例
子。
业务组件(business component)。利用数据服务提供者、专门完成某种特定业务信息处理、可以重用的功能组件。分布式数据库应用系统中的中间层(middle-tier)就是这种组件的典型例子。数据消费者(data consumer)。任何需要访问数据的系统程序或应用程序,除了典型的数据库应用程序之外,还包括需要访问各种数据源的开发工具或语言。
多年以来,odbc 已成为访问客户端/服务器数据库的标准。odbc 提供了基于标准的接口,接口要求 sql 处理功能,并被优化用于基于 sql 的方法。然而,如果要访问不使用 sql 的非关系数据源(例如,不按照关系存储数据的 microsoft exchange server)中的数据,情况会如何呢?
进入 ole db。ole db 建立于 odbc 之上,并将此技术扩展为提供更高级数据访问接口的组件结构。此结构对企业中及 internet 上的 sql、非 sql 和非结构化数据源提供一致的访问。(实际上,在访问基于 sql 的数据时,ole db 仍使用 odbc,因为对于 sql 它是最优结构。),ole db 由三个组件构成:数据使用者(例如,一个应用程序);包含并公开数据的数据提供程序以及处理并传输数据的服务组件(例如,查询处理器、游标引擎)。ole db 是一个针对 sql 数据源和非 sql 数据源(例如,邮件和目录)进行操作的api。