数据库访问技术简介

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库访问技术简介

数据库中的数据存放在数据库文件中,我们要从数据库文件中获取数据,先要连接并登陆到存放数据库的服务器。一般来说,访问数据库中的数据有两种方式:一是通过DBMS (Data Base Management System,数据库管理系统)提供的数据库操作工具来访问,如通过SQL Server 2000的查询设计器来提交查询,或者通过SQL Server 2000的企业管理工具来访问。这种方式比较适合DBA对数据库进行管理;二是通过API(Application Programming Interface, 应用编程接口)来访问数据库,这种方式适合在应用程序中访问数据库。

在数据库发展的初期,各个开发商为自己的数据库设计了各自不同的DBMS,因此不同类型的数据库之间数据交换非常困难。为了解决这个问题,Microsoft提出了ODBC(Open Data Base Connectivity,开放数据库互连)技术,试图建立一种统一的应用程序访问数据库接口,使开发人员无需了解程序内部结构就可以访问数据库。

1、Microsoft提出的系列数据库访问技术

1.1、ODBC

ODBC是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。应用程序可以使用所提供的API来访问任何提供了ODBC驱动程序的数据库。ODBC规范为应用程序提供了一套高层调用接口规范和基于动态链接的运行支持环境。ODBC已经成为一种标准,目前所有的关系数据库都提供了ODBC 驱动程序,使用ODBC开发的应用程序具有很好的适应性和可移植性,并且具有同时访问多种数据库系统的能力。这使得ODBC的应用非常广泛,基本可用于所有的关系数据库。

要使用ODBC,先要了解以下概念:ODBC驱动管理器、ODBC驱动程序、数据源。它们都是ODBC的组件。ODBC组件之间的关系如图1所示。

图1 ODBC 层次结构 (1)ODBC 驱动程序管理器 应用程序不是直接调用ODBC 驱动程序,而是先调用ODBC 驱动程序管理器提供的API 。而ODBC 驱动程序管理器再调用相应的ODBC 驱动程序,这种间接的调用使得不管是连接到什么数据库都可以按照一定的方式来调用。

ODBC 驱动程序管理器负责将适当的ODBC 驱动程序加载到内存中,并将应用程序的请求发给正确的ODBC 驱动程序。ODBC 驱动程序管理器代表应用程序加载ODBC 数据库驱动程序的动态链接库(ODBC32.dll )。该DLL (Dynamic Link Librarry )对应用程序是透明的。

(2)ODBC 驱动程序

ODBC 驱动程序处理从ODBC 驱动程序管理器发送过来的函数调用,它负责将SQL 请求发给相应的DBMS ,并将结果返回给ODBC 驱动程序管理器。每个遵循ODBC 的数据库应该提供自己的ODBC 驱动程序,不同数据源的ODBC 驱动程序不能混用。

(3)数据源

数据源是数据、访问该数据所需要的信息和该数据源位置的特定集合,其中的数据源位置可用数据源名称描述。例如,数据源可以是通过网络在Microsoft SQL Server 上运行的远程数据库,也可以是本地目录中的Microsoft Access 数据库。用户只需用定义好的数据源名称访问数据库,而无需知道其他细节。通过应用程序,可以访问任何具有ODBC 驱动程序的数据源。如SQL Server 、Oracle 、Access 等

1.2、OLE DB

随着数据源日益复杂化,应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数据源可能不是传统的关系数据应用程序 020*********第一季度第三季度东部西部北部ODBC 驱动程序管理器 020*********第一季度第三季度东部西部北部Oracle 驱动程序 02040

6080100第一季度第三季度

东部西部北部SQL 驱动程序 020*********第一季度第三季度东部西部北部DB2驱动程序 020

406080100第一季度第三季度东部西部北部Oracle 数据源 SQL 数据源 DB2数据源

库,而可能是Excel文件,Email,Internet/Intranet上的电子签名信息。需要一种新的架构来提供这种应用和数据源之间的无缝连接,OLE DB(Object Link and embed,对象链接和嵌入数据库)技术应运而生。

OLE DB是一种数据技术标准接口,目的是提供一种统一的数据访问接口,这里所说的数据,除了标准的关系型数据之外,还包括邮件数据、Web上的文本或图形、目录服务等非关系型数据。OLE DB标准的核心内容就是要求以上这些各种各样的数据存储都提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。

ODBC和OLE DB标准都是为了提供统一的访问数据接口,有人就产生疑问:OLE DB 是不是作为替代ODBE的新标准呢?答案是否定的。ODBC标准的对象是基于SQL的数据源,而OLE DB的对象则是范围更为广泛的任何数据存储。从这个意义上说,符合ODBC 标准的数据源是符合OLE DB标准的数据存储的子集。但是,符合ODBC标准的数据源要符合OLE DB标准,还必须提供相应的OLE DB服务程序(Service Provider),就像SQL Server 要符合ODBC 标准,必须提供SQL Server ODBC驱动程序一样。现在,微软已经为所有的ODBC数据源提供了一个统一的OLE DB 服务程序,叫做ODBC OLE DB Provider。

1.3、DAO

DAO(Database Access Object)使用Microsoft Jet数据库引擎(Jet数据库引擎是一种用来访问Microsoft Access和其它数据源的记录和字段的技术)来访问数据库,是一种面向对象的界面接口。Jet是第一个连接到Access 的面向对象的接口。使用Access 的应用程序可以用DAO 直接访问数据库。由于DAO 是严格按照Access 建模的,因此,使用DAO 是连接Access 数据库最快速、最有效的方法。DAO 也可以连接到非Access 数据库,例如,SQL Server 和Oracle,但是需要Jet 引擎解释DAO和ODBC之间的调用。

与ODBC一样,DAO也提供了一组API供编程使用。相比较而言,DAO类提供了比ODBC类更广泛的支持。一方面,只要有ODBC驱动程序,使用Microsoft Jet的DAO就可以访问ODBC数据源。另一方面,由于DAO是基于Microsoft Jet引擎的,因而在访问Access 数据库时具有很好的性能。

1.4、RDO

由于DAO是专门设计用来与Jet引擎对话的,因此需要Jet 引擎解释DAO和ODBC 之间的调用,这导致了较慢的连接速度和额外的开销。为了克服这样的限制,Microsoft创建了RDO(Remote Data Objects,远程数据对象)。

相关文档
最新文档