摘要:論述了使用各種底層接口訪問數據庫的方法。并對三種方法進行比較,分析各自的特點和適用場合。
關鍵詞:開放式數據庫互連 數據庫訪問 接口
中圖分類號:TP311.13 文獻標識碼:A 文章編號:1002-2422(2008)03-0022-01
1 ODBC的訪問方式
開放數據庫互連(ODBC)是微軟公司開放服務結構中有關數據庫的一個組成部分,建立了一組規范,并提供了一組對數據庫訪問的標準API(應用程序編程接口)。應用程序可以使用這些API訪問任何提供ODBC驅動程序的數據庫。這些API利用SQL來完成其大部分任務。ODBC的應用非常廣泛,基本上可用于所有的關系數據庫。但是ODBC訪問數據庫的速度相對其他一些訪問方式較慢,這就限制了其應用范圍。另外ODBC只能用于關系數據庫,對于非關系數據庫,ODBC就無能為力了。一個完整的ODBC由下列幾個部件組成:應用程序、ODBC管理器、驅動程序管理器、ODBC驅動程序、數據源。
2 DAO的訪問方式
DAO使用Microsoft Jet數據庫引擎來訪問數據庫。Microsoft Jet為Access和VB這樣的產品提供數據引擎。提供了通過程序代碼創建和操縱數據庫的機制。與ODBC一樣,DAO提供了一組API供編程使用。MFC DAO是微軟提供的用于訪問Microsoft Jet數據庫文件強有力的數據庫開發工具。通過對DAO的封裝,向程序員提供了DAO豐富的操作數據庫手段。DAO從VC4.0版開始引入。DAO類提供了比ODBC類更廣泛的支持:一方面,只要有ODBC驅動程序,使用Microsoft Jet的DAO就可以訪問ODBC數據源;另一方面,由于DAO是基于Microsoft Jet引擎的,因此在訪問Access數據庫時具有很好的性能。DAO可以通過ODBC驅動程序訪問ODBC數據源,但DAO是基于Microsoft Jet引擎的,通過該引擎,DAO可以直接訪問Access、FoxPro、dBASE、Paradox、Excel和Lotus WK等數據庫。
3 OLEDB/ADO的訪問方式
OLEDB是基于COM接口的訪問數據庫的新技術。OLEDB提供了對包括關系數據庫和非關系數據庫在內的所有文件系統的統一接口。與ODBC技術類似,OLEDB屬于數據庫訪問技術中的底層接口,封裝了ODBC的功能,并以統一的方式訪問存儲在不同信息源中的數據。這些特性使得OLEDB技術比傳統的數據庫訪問技術更加優越,速度更快。OLEDB為任何數據源提供了高性能的訪問,這些數據源包括關系和非關系數據庫、電子郵件和文件系統、文本和圖形、自定義業務對象等,并不局限于ISAM、Jet甚至關系數據源,能夠處理任何類型的數據,而不考慮數據的格式和存儲方法。但是,OLEDB應用程序編程接口的目的是為各種應用程序提供最佳的功能,并不符合簡單化的要求。最理想的API應該是一座連接應用程序和OLEDB的橋梁,ADO技術是基于OLEDB的訪問接口。對OLEDB的接口做了封裝,定義了ADO對象,屬于數據庫訪問的高層接口。由于掌握和使用更為方便,因此在基于COM技術的數據庫訪問中,通常使用ADO技術而不是OLEDB。ADO使用戶能夠編寫應用程序以通過OLEDB提供者訪問和操作數據庫服務器中的數據。ADO最主要的優點是易于使用、速度快、內存支出少和磁盤遺跡小。ADO在關鍵的應用方案中使用最少的網絡流量,并且在前端和數據源之間使用最少的層數,所有這些都是為了提供輕量、高性能的接口。
4 結束語
綜上所述,ODBC的應用程序對數據庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數據庫操作由對應的DBMS的ODBC驅動程序完成。不論是FoxPro、Ac-CeSS還是Oracle數據庫,均可用ODBC API進行訪問。可見,ODBC的最大優點是能以統一的方式處理所有的關系型數據庫。由于DAO可以訪問ODBC數據源,在某些情況下可以獲得更好的性能,特別是在訪問Microsoft Jet數據庫時,因此DAO可以替代ODBC,與ODBC相比,DAO還允許數據有效檢查,允許用戶說明表與表之間的關系。