我們知道程式界有一個著名公式是:程式=資料+演算法。這充分說明了資料在程式設計中的重要地位。而當資料規模達到一定程度的時候,為了達到資料的快速儲存和快速存取,就必須使用資料庫(Database)來進行資料的儲存。因為資料庫是按照資料結構來組織、儲存和管理資料的倉庫,利用資料庫進行儲存具有儲存訪問快速、管理方便、合理組織、減少資料的冗餘度等優勢。
資料庫有很多種類型,從最簡單的儲存有各種資料的表格到能夠進行海量資料存放區的大型資料庫系統都在各個方面得到了廣泛的應用。資料庫模型有階層模型、網狀結構模型、關係結構模型,本篇章主要介紹應用範圍最廣泛的關係型資料庫的訪問技術。
Visual C++資料庫開發的特點
一、
豐富的資料庫訪問技術可供選擇
Visual C++6.0提供了多種多樣的資料庫訪問技術—ODBC API、MFC ODBC、DAO、OLE DB、ADO等。這些技術各有特點,使用者可按自己的技術熟練程度及項目特點選擇適合自己的開發技術。
二、
VC提供的可視化嚮導功能簡化開發過程
利用VC提供的AppWizard和ClassWizard,使用者可以方便地開發出效能優良的基於MFC的資料庫應用程式。你甚至不需要編寫一句代碼,直接通過滑鼠點選就能產生一個完整的簡單資料庫應用程式。
三、
強大的IDE編譯器大大提高了開發的效率。
VC的IDE是目前世界上功能最強大的編譯器之一。利用該IDE所提供的各種協助工具輔助可方便快速的進行程式編寫、編譯、連結、偵錯工具,相比一般的編譯器在效率上有明顯提高。
四、
開發方式靈活,開發難度適中
Visual C++進行資料庫開發,可選擇的開發方式多種多樣。既可進行面向過程的開發,也可按物件導向的方式進行開發。既可直接調用彙編的代碼,也可以通過DLL動態庫的方式與其它程式語言進行混合編程。豐富的類庫及COM庫為開發提供了強大的支援。
五、
良好的架構使其具有較好的可擴充性
Visual C++具有物件導向編程的特性。通過抽象性、繼承、重載、多態等特性,面向介面編程,可使整個資料庫系統具有良好的架構,支援良好的擴充性。利用面向介面編程及COM組件編程技術,各個組件可進行無縫替換,極大的提高了程式的可擴充性及健壯性。
六、
程式執行效率高,運行速度快
我們知道,C++語言在進階語言裡是屬於與機器語言比較接近的語言,所以它的執行效率一般來說僅次於組合語言。而且在執行效率要求比較高的地方,可以直接內嵌彙編,這大大提高了程式的執行效率。而且Visual C++更通過代碼最佳化技術,可讓程式的執行效率提高百分之十幾。這是其它進階語言所無法比擬的。
Visual C++資料庫開發技術
如前所述,Visual C++為資料庫開發提供了多種多樣的支援人員。使用者可供選擇的資料庫訪問技術包括ODBC(Open DataBase
Connectivity)、MFC ODBC(Microsoft
Foundation Classes ODBC)、DAO (Data Access Object)、OLE DB(Object Link
and Embedding DataBase)、ADO(ActiveX Data Object)。這些技術都有各自的特點,適用範圍也不盡相同,所以使用者一般需要根據技術的特點和項目的特徵進行恰當的選擇。
1、ODBC
優點:ODBC是客戶應用程式訪問關聯式資料庫時提供的一個統一的介面,ODBC提供了一套統一的API應對不同的資料庫訪問,這樣使應用程式可以只針對ODBC的API來進行程式編寫,就可訪問任何提供了ODBC驅動程式的資料庫。此外,ODBC還是一種業界標準,幾乎所有的關聯式資料庫都提供了相應的ODBC驅動程式,所以具有廣泛的應用。
缺點:不過由於ODBC只能用於關係型資料庫,使得ODBC很難訪問對象資料庫及其它非關係型資料庫。而且由於ODBC是一個介面層,需要為各種不同的資料庫提供適應性,必然會使效率有所降低。此外,在使用ODBC時需要向系統註冊一個資料來源,這增加一定的配置難度。還需要通過大量的ODBC統一介面API來對資料庫訪問,也提高了一定的開發難度。
2、MFC ODBC
優缺點:因為MFC ODBC只是通過MFC類庫MFC ODBC對ODBC的API進行了一層簡單封裝,使API更容易被使用,所以它的優缺點就跟ODBC一樣,只是降低了一定的開發難度。
3、DAO
優點:DAO(Data Access Objects)是一種API(API),它是微軟提供的用於訪問Microsoft Jet資料庫檔案(*.mdb)的強有力的資料庫開發工具。DAO是微軟的第一個物件導向的資料庫介面,各個DAO對象協同工作。通過Jet函數,它還可以訪問其他的結構化查詢語言 (SQL)(SQL)資料庫。因為DAO直接內嵌在ACCESS運行環境中,DAO是訪問mdb檔案有最高效率的資料庫引擎。MFC也提供了一組DAO類,封裝了底層的API,而且VC嚮導也提供了對DAO的支援,從而大大簡化了程式的開發。此外不必在ODBC管理器中註冊DSN。
缺點:DAO是基於Microsoft Jet引擎的,只能訪問Jet引擎支援的案頭資料庫。所以要訪問Sql
Server必須通過ODBC來進行訪問。
4、OLE DB
優點:OLE DB是Visual
C++開發資料庫應用中提供的新技術。OLE DB對所有的檔案系統包括關聯式資料庫和非關聯式資料庫都提供了統一的介面。所以使用OLE DB可以對大部分資料庫進行廣泛的支援。同時它是低級應用程式介面,所以在效率上比ODBC高。
缺點:直接使用OLE DB來設計資料庫應用程式需要大量的代碼。即便可以通過ATL模板來減少一定的工作量,其開發難度也是相對較大的。可以說,他是所有資料庫編程介面中難度最大的。
5、ADO
優點:ADO是一種物件導向的編程介面,它向我們提供了一個熟悉的,高層的對OLE DB的Automation封裝介面。它繼承了OLE
DB技術的優點,具有便於使用、訪問效率高、功能強大的特點。因為是物件導向的,內部通過各個對象相互作用實現。既可訪問關係型資料庫,也可訪問非關係型資料庫。
缺點:唯一缺點應該是基於COM技術,所以不能跨平台使用,只能用在支援COM介面的機器上,也就是微軟的視窗系統了。對於使用VC++來進行開發的話,也不能算是一個缺點了。
VC++資料庫技術系列(二)