ODBC

ODBC

开放数据库连接
ODBC(Open Data base Connectivity,开放数据库互连)是微软公司开放服(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。[1]
    中文名:开放数据库互连 外文名: 所属学科: 英文名:Open Database Connectivity,ODBC 架构:应用程序 管理方法:单束式驱动程序 提出者:Microsoft

架构

应用程序

应用程序对外提供使用者交谈界面,同时对内执行资料之准备工作数据库系统所传回来的结果在显示给使用者看。简单来说,应用程序即ODBC 界面执行下列主要工作:

1. Request a connection(i.e.session)with a data source. 

2. Send SQL requests to the data source.

3. Define storage areas and data formats for the result of SQL requests. 

4. Request results. 

5. Process errors. 

6. Request a commit or rollback of operations for transcation control. 

7. Terminate a connection a data source.

驱动管理器

驱动管理器本身是MS Windows中一个动态连接链接库文件(ODBC.DLL)。应用程序透过驱动管理器去加载并连接数据源的驱动程序(driver)并连接数据源。驱动管理器主要工作如下:

1. Uses ODBC INI file to map a data source name to a specific driver DLL.

2. Processes server ODBC initialization calls.

3. Provides entry points to ODBC functions for each driver.

4. Provides parameter validation and sequence validation for ODBC calls.

驱动程序

驱动程序也是一个动态连接链接库文件,当应用程序呼叫ODBC函数,SQLConnect 或SQLDriverConnect时,驱动管理器就会加载相对的驱动程序与应用程序呼应。驱动程序主要是执行ODBC之相对函数,并与对应的数据源(Data Source)做沟通。驱动程序之工作如下:

1. Establishes a connect to a data source.

2. Submits requests to a data sources.

3. Translates data to or from other formats,if requested by the application.

4. Return results to the application.

5. Formats errors into standard error codes and returns them to the application.

6. Declares and manipulates cursors if necessary (invisible to the application).

7. Initiates transactions if the data source requires explicit transaction initiation(invisible to the app).

数据源

数据源唯一数据库系统(DBMS)或是数据库操作系统的一个组合。举例来说,应用库系统可以同时与下列两个或其中一个数据源连接。

1. A DBMaker DBMS running on a Microsoft Windows NT accessed by NTaccessed by TCP/IP.

2. A Tandem NonStop SQL DBMS running on the Guardian 90 accessed via a gateway.

应用系统程序通过标准API来连接数据源,因此开发过程中不需指定特定的数据库系统,所以数据库系统的开放性从此被建立。

更新

ODBC现在看来是一个比较古老的东西,在1996年左右就比较定型了,其最新的版本是3.8(Win7自带;Win8上有更新但仍叫 3.8),MICROSOFT也不打算对它做什么大的更新,更多的目光应该被放到OLEDB、.NET DATA PROVIDER身上了。然而,正因为它是一个比较成熟和古老的规范,ODBC在大多数DBMS上都可以使用,可以说一个像样的DBMS都应该支持ODBC 3.0或以上的版本。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。

种类

从结构上分,ODBC 分为单束式和多束式两类。ODBC 使用层次的方法来管理数据库,在数据库通信结构的每一层,对可能出现依赖数据库产品自身特性的地方,ODBC 都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库系统应用程序的相对独立性,这也是ODBC 一经推出就获得巨大成功的重要原因之一。

单束式驱动程序

单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统一的数据访问方式。当用户进行数据库操作时,应用程序传递一个ODBC 函数调用给ODBC 驱动程序管理器,由ODBC API 判断该调用是由它直接处理并将结果返回还是送交驱动程序执行并将结果返回。由上可见,单束式驱动程序本身是一个数据库引擎,由它直接可完成对数据库的操作,尽管该数据库可能位于网络的任何地方

多束式驱动程序

多束式驱动程序负责在数据库引擎和客户应用程序之间传送命令和数据,它本身并不执行数据处理操作而用于远程操作的网络通信协议的一个界面。

前端应用程序提出对数据库处理的请求,该请求转给ODBC 驱动程序管理器,驱动程序管理器依据请求的情况,就地完成或传给多束驱动程序,多束式驱动程序将请求翻译为特定厂家的数据库通信接口(如Oracle 的SQLNet)所能理解的形式并交于接口去处理,接口把请求经网络传送给服务器上的数据引擎,服务器处理完后把结果发回给数据库通信接口,数据库接口将结果传给多束式ODBC 驱动程序,再由驱动程序将结果传给应用程序。

相关词条

相关搜索

其它词条