- 相關推薦
全面領會 ODBC技巧
在我們平凡無奇的學生時代,很多人都經常追著老師們要知識點吧,知識點也可以理解為考試時會涉及到的知識,也就是大綱的分支。哪些知識點能夠真正幫助到我們呢?下面是小編整理的全面領會 ODBC技巧,僅供參考,大家一起來看看吧。
目前,眾多的廠商推出了行行色色的數據庫系統 ,它們在性能、價格 和利用領域上各有千秋。一個綜合信息系統 的各部門由于需求區別等原因,往往會存在多種數據庫,它們之間的互連造訪成為一個棘手 的問題,特別 是當用戶需要 從客戶機端造訪不同的服務器時。
微軟提出的開放式數據庫互連(Open-DataBase-Connectivity,即ODBC)成為目前一個強有力解決方案 ,并逐步成為Windows和Macintosh平臺上的標準 接口,并推動 了這方面的開放性和標準 化。
一、ODBC的產生 和發展
關系型數據庫產生 后很快就成為數據庫系統 的主流產品,由于每個DBMS廠商都有自己的一套標準 ,人們很早就產生 了標準 化的想法,于是產生 了SQL,由于其語法規范逐漸為人所接管,成為RDBMS上的主導語言。最初,各數據庫廠商為領會 決互連的問題,往往供給嵌入式SQL API,用戶在客戶機端要操作系統 中的RDBMS時,往往要在程序中嵌入SQL語句進行預編譯。由于不同廠商在數據款式、數據操作、具體實現甚至語法方面都具有不同程度 的區別,所以彼此不能兼容。
長期以來,這種API的非規范情況 令用戶和RDBMS廠商都不能滿意。在80年代后期,一些知名的廠商包孕Oracle、Sybase、Lotus、Ingres、Informix、HP、DEC等結成了SQL Access Group(簡稱SAG),提出了SQL API的規范核心:調用級接口(Call Level Interface),簡稱CLI。
1991年11月,微軟發布了ODBC,次年推出可用版本。1992年2月,推出了ODBC SDK 2.0版。ODBC基于SAG的SQL CAE草案所規定的語法,共分為Core、Level 1、 Level 2三種定義,分辨 規范了22、16、13共51條命令,其中29條命令甚至越過了SAG CLI中原有的定義,功效強大而機動。它還包孕標準 的差錯代碼集、標準 的連接 和登錄DBMS法子 、標準 的數據類型表現等。
由于ODBC思想上的先進性,且沒有同類的標準 或產品與之競爭,它一枝獨秀,推出后僅僅兩三年就受到了眾多廠家與用戶的青睞,成為一種廣為接管的標準 。目前,已經有130多家獨立廠商發布了對ODBC的支撐,常見的DBMS都供給了ODBC的驅動接口,這些廠商包孕Oracle、Sybase、Informix、Ingres、IBM(DB/2)、DEC(RDB)、HP(ALLBASE/SQL)、Gupta、Borland(Paradox)等。目前,ODBC已經成為客戶機/服務器系統 中的一個首要支撐技巧。
二、ODBC的根基思想與特性
ODBC的根基思想是為用戶供給簡略、標準 、透明的數據庫連接 的公共編程接口,開發廠商根據 ODBC的標準 去實現底層的驅動程序,這個驅動對用戶是透明的,并容許根據 不同的DBMS采納不同的技巧加以優化實現,這就利于不斷吸收 新的技巧而趨完善 。
這同時也就是數據庫驅動的思想,它很類似 于Windows中打印驅動的思想。在Windows中,用戶安裝不同的打印驅動程序,應用同樣一條打印語句或操作,就可很容易地實現在不同打印機上打印輸出,而不需要 領會 內部的具體原理。ODBC出現以后,用戶安裝不同的DBMS驅動就可用同樣的SQL語句實現在不同DBMS上進行同樣的操作,而且無需預編譯。ODBC帶來了數據庫連接 法子 的變化,如圖1所示。在傳統法子 中,開發人員要熟識多個DBMS及其API,一旦DBMS端出現變動,則往往導致用戶端系統 重新編建或者源代碼的修正,這給開發和掩護工作帶來了很大艱苦。在ODBC法子 中,不管底層網絡環境如何,也無論采納何種DBMS,用戶在程序中都應用同一套標準 代碼,無需逐個領會 各DBMS及其API的特性,源程序不因底層的變更而重新編建或修正,從而減輕了開發掩護的工作量,縮短了開發周期。
@@12W03500.GIF;圖1 數據庫連接 法子 的轉變 @@
概括起來,ODBC具有以下機動的特性:
1. 應用戶程序有很高的互操作性,雷同的目標 代碼實用于不同的DBMS;
2. 由于ODBC的開放性,它為程序集成供給了方便,為客戶機/服務器結構 供給了技巧支撐;
3. 由于利用與底層網絡環境和DBMS離開,簡化了開發掩護上的艱苦。
三、ODBC的系統結構 和實現
ODBC是依賴分層結構 來實現的,如此可保證其標準 性和開放性。圖2所示為ODBC的系統結構 ,它共分為四層:利用程序、驅動程序管理器、驅動程序和數據源。微軟公司對ODBC規程進行了規范,它為利用層的開發者和用戶供給標準 的函數、語法和差錯代碼等,微軟還供給了驅動程序管理器,它在Windows中是一個動態鏈接庫即ODBC.DLL。驅動程序層由微軟、DBMS廠商或第三開發商供給,它必須 符合ODBC的規程,對于Oracle,它是ORA6WIN.DLL,對于SQL Server,它是SQLSRVR.DLL。
@@12W03501.GIF;圖2 ODBC系統結構 @@
下面我們詳細介紹各層的功效。
1. 利用程序層(Application)
應用 ODBC接口的利用程序可履行以下任務 :
①懇求與數據源的連接 和會話(SQLConnect);
②向數據源發送SQL懇求 (SQLExecDirct或SQLExecute);
③對SQL懇求的效果定義存儲區和數據款式;
④懇求效果;
、萏幚 差錯;
、奕绻枰 ,把效果返回給用戶;
、邔κ聞者M行把持,懇求履行或回退操作(SQLTransact);
⑧終止對數據源的連接 (SQLDisconnect)。
2. 驅動程序管理器(Driver Manager)
由微軟供給的驅動程序管理器是帶有輸入庫的動態連接 庫ODBC.DLL,其首要目標是裝入驅動程序,此外還履行以下工作:
、偬幚 幾個ODBC初始化調用;
、跒槊恳粋驅動程序供給 ODBC函數入口點;
、蹫镺DBC調用供給參數和次序 驗證。
3. 驅動程序(Driver)
驅動程序是實現ODBC函數和數據源交互的DLL,當利用程序調用SQL Connect或者SQLDriver Connect函數時,驅動程序管理器裝入相應的驅動程序,它對來自利用程序的ODBC函數調用進行應答,遵守其請求履行以下任務 :
、俳 與數據源的連接 ;
、谙驍祿刺峤粦┣螅
、墼诶贸绦蛐枨髸r,轉換數據款式;
、芊祷匦Чo利用程序;
⑤將運行差錯款式化為標準 代碼返回;
、拊谛枰 時闡明和處理 光標。
以上這些功效都是對利用程序層功效的具體實現。驅動程序的配置法子 可以劃分為以下兩種。
(1)單層次(single-tier) 這種法子 下,驅動程序要處理 ODBC調用SQL語句,并直接節制數據庫,因此具有數據存取功效。這種配置最常見的是同一臺微機之上異種數據庫通過ODBC存取,如在Powerbuilder中存取XBase、Excel、Paradox等數據文件,如圖3所示。@@12W03502.GIF;圖3 一層配置示意圖@@
(2)多層次(multiple-tier) 這種配置中驅動程序僅僅處理 ODBC調用,而將SQL語句交給服務器履行,然后返回效果。這種情況 往往是利用程序、驅動程序管理器、驅動程序駐留在客戶機端,而數據源和數據存取功效放在服務器端。譬如用Foxpro或Excel存取SQL Server或Oracle上的數據,如圖4所示。
@@12W03503.GIF;圖4 二層配置示意圖@@
有時在以上兩者之間加上網關以解決通信 協議 的轉換等問題,這時驅動程序要將懇求先傳送給網關,如造訪 DEC RDB和IBM AS/400時的配置,如圖5所示。
@@12W03504.GIF;圖5 三層配置示意圖@@
4. 數據源
數據源由用戶想要存取的數據和它相干的操作系統 、DBMS及網絡環境組成。
四、一致性級別
從利用程序觀點來看,最理想 的情況 是每個數據源和驅動程序都支撐同一套ODBC函數調用和SQL語句。但是由于形形色色的DBMS在實現上有很大的區別,它們所依附的系統 和環境也各不雷同,在對ODBC支撐的程度 上就不一致。一致性級別(Conformance Levels)建立 了對眾多功效的標準 劃分,為利用程序和驅動程序供給贊助 和選擇的根據。它劃定了驅動程序所支撐的ODBC函數和SQL語句的領域,我們可以用SQLGetInfo、SQLGetFunctions、SQLTypeInfo三個函數獲知驅動程序所支撐的功效集。ODBC從API和SQL語法兩方面劃分級別。
1. API的一致性
ODBC將函數調用劃分為三級。
(1)核心API 它包孕了與SAG的CLI相匹配的根基功效,包孕:分配與釋放環境、連接 及語句句柄;連接 到數據源;籌辦并履行 SQL語句或立即履行 SQL語句;為SQL語句和效果列中的參數分配存儲器;從效果中檢索數據,檢索效果的信息;提交和取締事務處理 ;檢索差錯信息。
(2)一級API 它包孕了核心API的整個功效,比如用特定驅動程序的對話框連接 到數據源;設置和查詢語句值和連接 選項;送部分或整個參數值;檢索部分和整個效果;檢索目錄信息;檢索關于驅動程序和數據源的信息。
(3)二級API 其功效包孕核心和一級API的整個功效;涉獵可獲得的連接 和可獲得的數據源列表;發送參數值數組,檢索效果數組;檢索參數個數及參數描繪;利用可卷動的光標;檢索SQL語句和本機表格;檢索各種目錄信息;調用轉換DLL。
2. SQL語法的一致性級別
從SQL方面可劃分為最小的SQL語法、核心SQL語法和擴張SQL語法三個等級。
五、ODBC的利用與遠景
ODBC的出現給用戶刻畫了一個誘人的遠景,即網絡中的Windows用戶可以方便 地造訪各種數據庫。現在,在微軟推出的許多產品中都供給了ODBC支撐,如Visal Basic 3.0、Visal C1.5、Excel 5.0、Word 6.0、FoxPro、Access等。同時其他一些利用軟件和開發工具也供給了對ODBC的支撐。因此用戶只要安裝不同的ODBC驅動程序,就可存取相應的數據庫產品,而不管用戶應用何種前臺利用軟件,也不管后臺是何種數據庫,這個存取的歷程是一致的。
但是由于ODBC產生 的光陰還不長,其利用也同時存在著一些問題。首先,它的層次對比多,表現 在性能上比專有的API要慢,這是其標準 化和開發性所帶來的必要的代價;其次,由于ODBC規定了三個層次的一致性級別,利用程序與驅動程序之間的匹配就會出現一些問題和抵觸,比如某些驅動程序支撐的級別對比低,而利用程序請求的對比高;再者,由于不同的驅動程序為不同的開發商所開發,測試工作不能統一,而現有的開發和測試工具并不很完善 ;同時,在非SQL的數據庫系統 上的利用也存在一些問題。
微軟公司將ODBC作為一項很首要的技巧,它已允諾進一步改善ODBC技巧,為驅動程序開發者供給更先進的開發和測試工具,還將交付系統 管理和監控工具,它還將與DBMS廠商和第三方廠商建立 更密切 的合作,以期使驅動程序支撐更高檔別的一致性,并在規范化方面有所完善 。目前,ODBC已為數據庫提供商組織內部所認可,同時為眾多利用軟件廠商和第三方開發商所應用,信任隨著SQL的推廣和規范,用戶和開發商會更加依附于這一技巧。
數據庫集群的概念
微軟用集群這個詞和行業內其他的公司的用法和意義是不一樣的。微軟用集群這個詞指的是故障轉移群體。
業界其他一些公司定義集群,比如說Oracle是叫做可擴展性的升級群體(Cluster)。擴展性和可用性是兩個很接近的概念,在很多的時候,他們兩者會互相的影響,如果可用性不存在,擴展性也無從談起。我現在要介紹的是關于SQL Server 2005在這方面的特性,是非常有利的一個特性。微軟有一個叫做SSD(可擴展性共享數據庫技術)。
我們應該盡量謹慎使用SSD這一縮寫,因為SSD在業界有其他的一些表示,我們在微軟內部用SSD來談可拓展性的需求。相對于Oracle,IC是一個比較類似的技術。這種SSD技術有一個局限性,要求數據庫是只讀的,但是同時又能夠被多個SQL Server Instense進行并發的訪問,從這個上面來說,和Lise提供的功能是一致的,但是具有一定的局限性。我們在美國有一個最大的零售商就是使用這種技術來構建它的數據倉庫。這個零售商每周要更新一次數據庫系統,同時又有多個SQL Server要同時訪問這個數據庫。正是基于這種并發訪問技術,同時提高了很高的可用性,如果一個服務器宕掉了,其他的服務器還可以同時對外提供服務。像這個典型的案例,在我們在線的幫助和相應的白皮書中都有詳細的描述。
同時,我們也在使用相對于業界其他公司不同設計架構的一種方式來真正實現沒有局限性,既有高擴展性又有高可用性的解決方案。還有很多用戶在使用一種叫做數據路由的數據庫。一個典型的案例是美國的MySpace公司,是美國最大的個人空間服務提供商,它就使用了數據路由數據庫的技術來實現他對外用100個SQL Server的服務來集中對外提供服務。DID技術就能很好的平衡高可用性、擴展性這種綜合的要求。而且從微軟自身MSN.com網站也是使用同樣的DID技術來提供高可用性、高拓展性的要求。
【全面領會 ODBC技巧】相關文章:
談新會計準則的領會與實施05-29
談開拓藝術思維提高全面素質論文08-23
淺談全面質量管理在企業中的應用論文04-20
論文寫作語言技巧09-09
實用的開題答辯技巧04-13
論文寫作技巧01-09
如何全面提升基層專賣管理工作執行力06-06
全面推進我國企業會計改革04-29