99精品久久这里只有精品,三上悠亚免费一区二区在线,91精品福利一区二区,爱a久久片,无国产精品白浆免费视,中文字幕欧美一区,爽妇网国产精品,国产一级做a爱免费观看,午夜一级在线,国产精品偷伦视频免费手机播放

    <del id="eyo20"><dfn id="eyo20"></dfn></del>
  • <small id="eyo20"><abbr id="eyo20"></abbr></small>
      <strike id="eyo20"><samp id="eyo20"></samp></strike>
    • 首頁 > 文章中心 > 正文

      ODBC技術(shù)發(fā)展探析

      前言:本站為你精心整理了ODBC技術(shù)發(fā)展探析范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      目前,眾多的廠商推出了行行色色的數(shù)據(jù)庫系統(tǒng),它們在性能、價格和應用范圍上各有千秋。一個綜合信息系統(tǒng)的各部門由于需求差異等原因,往往會存在多種數(shù)據(jù)庫,它們之間的互連訪問成為一個棘手的問題,特別是當用戶需要從客戶機端訪問不同的服務器時。

      微軟提出的開放式數(shù)據(jù)庫互連(Open-DataBase-Connectivity,即odbc)成為目前一個強有力解決方案,并逐步成為Windows和Macintosh平臺上的標準接口,并推動了這方面的開放性和標準化。

      一、ODBC的產(chǎn)生和發(fā)展

      關系型數(shù)據(jù)庫產(chǎn)生后很快就成為數(shù)據(jù)庫系統(tǒng)的主流產(chǎn)品,由于每個DBMS廠商都有自己的一套標準,人們很早就產(chǎn)生了標準化的想法,于是產(chǎn)生了SQL,由于其語法規(guī)范逐漸為人所接受,成為RDBMS上的主導語言。最初,各數(shù)據(jù)庫廠商為了解決互連的問題,往往提供嵌入式SQLAPI,用戶在客戶機端要操作系統(tǒng)中的RDBMS時,往往要在程序中嵌入SQL語句進行預編譯。由于不同廠商在數(shù)據(jù)格式、數(shù)據(jù)操作、具體實現(xiàn)甚至語法方面都具有不同程度的差異,所以彼此不能兼容。

      長期以來,這種API的非規(guī)范情況令用戶和RDBMS廠商都不能滿意。在80年代后期,一些著名的廠商包括Oracle、Sybase、Lotus、Ingres、Informix、HP、DEC等結(jié)成了SQLAccessGroup(簡稱SAG),提出了SQLAPI的規(guī)范核心:調(diào)用級接口(CallLevelInterface),簡稱CLI。

      1991年11月,微軟宣布了ODBC,次年推出可用版本。1992年2月,推出了ODBCSDK2.0版。ODBC基于SAG的SQLCAE草案所規(guī)定的語法,共分為Core、Level1、Level2三種定義,分別規(guī)范了22、16、13共51條命令,其中29條命令甚至超越了SAGCLI中原有的定義,功能強大而靈活。它還包括標準的錯誤代碼集、標準的連接和登錄DBMS方法、標準的數(shù)據(jù)類型表示等。

      由于ODBC思想上的先進性,且沒有同類的標準或產(chǎn)品與之競爭,它一枝獨秀,推出后僅僅兩三年就受到了眾多廠家與用戶的青睞,成為一種廣為接受的標準。目前,已經(jīng)有130多家獨立廠商宣布了對ODBC的支持,常見的DBMS都提供了ODBC的驅(qū)動接口,這些廠商包括Oracle、Sybase、Informix、Ingres、IBM(DB/2)、DEC(RDB)、HP(ALLBASE/SQL)、Gupta、Borland(Paradox)等。目前,ODBC已經(jīng)成為客戶機/服務器系統(tǒng)中的一個重要支持技術(shù)。

      二、ODBC的基本思想與特點

      ODBC的基本思想是為用戶提供簡單、標準、透明的數(shù)據(jù)庫連接的公共編程接口,開發(fā)廠商根據(jù)ODBC的標準去實現(xiàn)底層的驅(qū)動程序,這個驅(qū)動對用戶是透明的,并允許根據(jù)不同的DBMS采用不同的技術(shù)加以優(yōu)化實現(xiàn),這就利于不斷吸收新的技術(shù)而趨完善。

      這同時也就是數(shù)據(jù)庫驅(qū)動的思想,它很類似于Windows中打印驅(qū)動的思想。在Windows中,用戶安裝不同的打印驅(qū)動程序,使用同樣一條打印語句或操作,就可很容易地實現(xiàn)在不同打印機上打印輸出,而不需要了解內(nèi)部的具體原理。ODBC出現(xiàn)以后,用戶安裝不同的DBMS驅(qū)動就可用同樣的SQL語句實現(xiàn)在不同DBMS上進行同樣的操作,而且無需預編譯。ODBC帶來了數(shù)據(jù)庫連接方式的變革,如圖1所示。在傳統(tǒng)方式中,開發(fā)人員要熟悉多個DBMS及其API,一旦DBMS端出現(xiàn)變動,則往往導致用戶端系統(tǒng)重新編建或者源代碼的修改,這給開發(fā)和維護工作帶來了很大困難。在ODBC方式中,不管底層網(wǎng)絡環(huán)境如何,也無論采用何種DBMS,用戶在程序中都使用同一套標準代碼,無需逐個了解各DBMS及其API的特點,源程序不因底層的變化而重新編建或修改,從而減輕了開發(fā)維護的工作量,縮短了開發(fā)周期。

      @@12W03500.GIF;圖1數(shù)據(jù)庫連接方式的轉(zhuǎn)變@@

      概括起來,ODBC具有以下靈活的特點:

      1.使用戶程序有很高的互操作性,相同的目標代碼適用于不同的DBMS;

      2.由于ODBC的開放性,它為程序集成提供了便利,為客戶機/服務器結(jié)構(gòu)提供了技術(shù)支持;

      3.由于應用與底層網(wǎng)絡環(huán)境和DBMS分開,簡化了開發(fā)維護上的困難。

      三、ODBC的體系結(jié)構(gòu)和實現(xiàn)

      ODBC是依靠分層結(jié)構(gòu)來實現(xiàn)的,如此可保證其標準性和開放性。圖2所示為ODBC的體系結(jié)構(gòu),它共分為四層:應用程序、驅(qū)動程序管理器、驅(qū)動程序和數(shù)據(jù)源。微軟公司對ODBC規(guī)程進行了規(guī)范,它為應用層的開發(fā)者和用戶提供標準的函數(shù)、語法和錯誤代碼等,微軟還提供了驅(qū)動程序管理器,它在Windows中是一個動態(tài)鏈接庫即ODBC.DLL。驅(qū)動程序?qū)佑晌④?、DBMS廠商或第三開發(fā)商提供,它必須符合ODBC的規(guī)程,對于Oracle,它是ORA6WIN.DLL,對于SQLServer,它是SQLSRVR.DLL。

      @@12W03501.GIF;圖2ODBC體系結(jié)構(gòu)@@

      下面我們詳細介紹各層的功能。

      1.應用程序?qū)?Application)

      使用ODBC接口的應用程序可執(zhí)行以下任務:

      ①請求與數(shù)據(jù)源的連接和會話(SQLConnect);

      ②向數(shù)據(jù)源發(fā)送SQL請求(SQLExecDirct或SQLExecute);

      ③對SQL請求的結(jié)果定義存儲區(qū)和數(shù)據(jù)格式;

      ④請求結(jié)果;

      ⑤處理錯誤;

      ⑥如果需要,把結(jié)果返回給用戶;

      ⑦對事務進行控制,請求執(zhí)行或回退操作(SQLTransact);

      ⑧終止對數(shù)據(jù)源的連接(SQLDisconnect)。

      2.驅(qū)動程序管理器(DriverManager)

      由微軟提供的驅(qū)動程序管理器是帶有輸入庫的動態(tài)連接庫ODBC.DLL,其主要目的是裝入驅(qū)動程序,此外還執(zhí)行以下工作:

      ①處理幾個ODBC初始化調(diào)用;

      ②為每一個驅(qū)動程序提供ODBC函數(shù)入口點;

      ③為ODBC調(diào)用提供參數(shù)和次序驗證。

      3.驅(qū)動程序(Driver)

      驅(qū)動程序是實現(xiàn)ODBC函數(shù)和數(shù)據(jù)源交互的DLL,當應用程序調(diào)用SQLConnect或者SQLDriverConnect函數(shù)時,驅(qū)動程序管理器裝入相應的驅(qū)動程序,它對來自應用程序的ODBC函數(shù)調(diào)用進行應答,按照其要求執(zhí)行以下任務:

      ①建立與數(shù)據(jù)源的連接;

      ②向數(shù)據(jù)源提交請求;

      ③在應用程序需求時,轉(zhuǎn)換數(shù)據(jù)格式;

      ④返回結(jié)果給應用程序;

      ⑤將運行錯誤格式化為標準代碼返回;

      ⑥在需要時說明和處理光標。

      以上這些功能都是對應用程序?qū)庸δ艿木唧w實現(xiàn)。驅(qū)動程序的配置方式可以劃分為以下兩種。

      (1)單層次(single-tier)這種方式下,驅(qū)動程序要處理ODBC調(diào)用SQL語句,并直接操縱數(shù)據(jù)庫,因此具有數(shù)據(jù)存取功能。這種配置最常見的是同一臺微機之上異種數(shù)據(jù)庫通過ODBC存取,如在Powerbuilder中存取XBase、Excel、Paradox等數(shù)據(jù)文件,如圖3所示。@@12W03502.GIF;圖3一層配置示意圖@@

      (2)多層次(multiple-tier)這種配置中驅(qū)動程序僅僅處理ODBC調(diào)用,而將SQL語句交給服務器執(zhí)行,然后返回結(jié)果。這種情況往往是應用程序、驅(qū)動程序管理器、驅(qū)動程序駐留在客戶機端,而數(shù)據(jù)源和數(shù)據(jù)存取功能放在服務器端。譬如用Foxpro或Excel存取SQLServer或Oracle上的數(shù)據(jù),如圖4所示。

      @@12W03503.GIF;圖4二層配置示意圖@@

      有時在以上兩者之間加上網(wǎng)關以解決通信協(xié)議的轉(zhuǎn)換等問題,這時驅(qū)動程序要將請求先傳送給網(wǎng)關,如訪問DECRDB和IBMAS/400時的配置,如圖5所示。

      @@12W03504.GIF;圖5三層配置示意圖@@

      4.數(shù)據(jù)源

      數(shù)據(jù)源由用戶想要存取的數(shù)據(jù)和它相關的操作系統(tǒng)、DBMS及網(wǎng)絡環(huán)境組成。

      四、一致性級別

      從應用程序觀點來看,最理想的情況是每個數(shù)據(jù)源和驅(qū)動程序都支持同一套ODBC函數(shù)調(diào)用和SQL語句。但是由于形形色色的DBMS在實現(xiàn)上有很大的差異,它們所依賴的系統(tǒng)和環(huán)境也各不相同,在對ODBC支持的程度上就不一致。一致性級別(ConformanceLevels)建立了對眾多功能的標準劃分,為應用程序和驅(qū)動程序提供幫助和選擇的依據(jù)。它劃定了驅(qū)動程序所支持的ODBC函數(shù)和SQL語句的范圍,我們可以用SQLGetInfo、SQLGetFunctions、SQLTypeInfo三個函數(shù)獲知驅(qū)動程序所支持的功能集。ODBC從API和SQL語法兩方面劃分級別。

      1.API的一致性

      ODBC將函數(shù)調(diào)用劃分為三級。

      (1)核心API它包括了與SAG的CLI相匹配的基本功能,包括:分配與釋放環(huán)境、連接及語句句柄;連接到數(shù)據(jù)源;準備并執(zhí)行SQL語句或立即執(zhí)行SQL語句;為SQL語句和結(jié)果列中的參數(shù)分配存儲器;從結(jié)果中檢索數(shù)據(jù),檢索結(jié)果的信息;提交和撤消事務處理;檢索錯誤信息。

      (2)一級API它包括了核心API的全部功能,比如用特定驅(qū)動程序的對話框連接到數(shù)據(jù)源;設置和查詢語句值和連接選項;送部分或全部參數(shù)值;檢索部分和全部結(jié)果;檢索目錄信息;檢索關于驅(qū)動程序和數(shù)據(jù)源的信息。

      (3)二級API其功能包括核心和一級API的全部功能;瀏覽可獲得的連接和可獲得的數(shù)據(jù)源列表;發(fā)送參數(shù)值數(shù)組,檢索結(jié)果數(shù)組;檢索參數(shù)個數(shù)及參數(shù)描述;應用可卷動的光標;檢索SQL語句和本機表格;檢索各種目錄信息;調(diào)用轉(zhuǎn)換DLL。

      2.SQL語法的一致性級別

      從SQL方面可劃分為最小的SQL語法、核心SQL語法和擴展SQL語法三個等級。

      五、ODBC的應用與前景

      ODBC的出現(xiàn)給用戶描繪了一個誘人的前景,即網(wǎng)絡中的Windows用戶可以方便地訪問各種數(shù)據(jù)庫。現(xiàn)在,在微軟推出的許多產(chǎn)品中都提供了ODBC支持,如VisalBasic3.0、VisalC1.5、Excel5.0、Word6.0、FoxPro、Access等。同時其他一些應用軟件和開發(fā)工具也提供了對ODBC的支持。因此用戶只要安裝不同的ODBC驅(qū)動程序,就可存取相應的數(shù)據(jù)庫產(chǎn)品,而不管用戶使用何種前臺應用軟件,也不管后臺是何種數(shù)據(jù)庫,這個存取的過程是一致的。

      但是由于ODBC產(chǎn)生的時間還不長,其應用也同時存在著一些問題。首先,它的層次比較多,表現(xiàn)在性能上比專有的API要慢,這是其標準化和開發(fā)性所帶來的必要的代價;其次,由于ODBC規(guī)定了三個層次的一致性級別,應用程序與驅(qū)動程序之間的匹配就會出現(xiàn)一些問題和矛盾,比如某些驅(qū)動程序支持的級別比較低,而應用程序要求的比較高;再者,由于不同的驅(qū)動程序為不同的開發(fā)商所開發(fā),測試工作不能統(tǒng)一,而現(xiàn)有的開發(fā)和測試工具并不很完善;同時,在非SQL的數(shù)據(jù)庫系統(tǒng)上的應用也存在一些問題。

      微軟公司將ODBC作為一項很重要的技術(shù),它已承諾進一步改進ODBC技術(shù),為驅(qū)動程序開發(fā)者提供更先進的開發(fā)和測試工具,還將交付系統(tǒng)管理和監(jiān)控工具,它還將與DBMS廠商和第三方廠商建立更密切的合作,以期使驅(qū)動程序支持更高級別的一致性,并在規(guī)范化方面有所完善。目前,ODBC已為數(shù)據(jù)庫供應商組織內(nèi)部所認可,同時為眾多應用軟件廠商和第三方開發(fā)商所使用,相信隨著SQL的推廣和規(guī)范,用戶和開發(fā)商會更加依賴于這一技術(shù)。

      文檔上傳者
      日韩欧美在线播放视频| 无码人妻一区二区三区免费视频| 久久久无码人妻精品一区| 欧美va免费精品高清在线| 日韩女优一区二区视频| 日本免费观看视频一区二区| 黑人巨茎大战俄罗斯美女| 国产一区二区不卡老阿姨| 亚洲综合一| 一本色道88久久加勒比精品| 国内精品久久久久久99| 老湿机香蕉久久久久久| 西西大胆午夜人体视频| 久久久久99精品成人片试看| 亚洲情精品中文字幕有码在线 | 蜜桃a人妻精品一区二区三区| 正在播放国产多p交换视频| 亚洲欧美成人a∨| 91久久精品一区二区喷水喷白浆| 亚洲精品一品区二品区三区| 人妻激情另类乱人伦人妻| 亚洲A∨无码国产精品久久网| 国产av天堂亚洲国产av麻豆| 99久久婷婷国产精品综合| 乱色精品无码一区二区国产盗| 五十路熟妇亲子交尾| 亚洲一区二区三区在线观看| 国产亚洲精品av久久| 国产成年无码v片在线| 欧美乱人伦中文字幕在线不卡| 国产亚洲一区二区精品| 午夜亚洲av日韩av无码大全| 国产精品亚洲五月天高清| av免费网站在线免费观看| 精品人妖一区二区三区四区| 婷婷久久久亚洲欧洲日产国码av| 精品乱码一区二区三区四区| 日本一区二区三区资源视频| 久久精品色福利熟妇丰满人妻91| 精品水蜜桃久久久久久久 | 久久精品成人免费观看97|