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 驅動程序,再由驅動程序将結果傳給應用程序。

上一篇:雲同步

下一篇:微領地

相關詞條

相關搜索

其它詞條