天天看點

資料庫通路方式(ODBC OLEDB ADO ADO.NET)ODBC(Open Database Connectivity,開放資料庫互連)DAO(Data Access Object,資料通路對象)ADO(ActiveX Data Object,活動資料對象)ODBC 、DAO 、ADO 、OLEDB 資料庫連接配接方式差別及聯系

ODBC(Open Database Connectivity,開放資料庫互連)

1992年,微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關資料庫的一個組成部分,它建立了一組規範,并提供了一組對資料庫通路的标準API(應用程式程式設計接口)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支援,使用者可以直接将SQL語句送給ODBC。---出現的最早,但不總是萬能。

      ODBC(Open DataBase Connectivity)是微軟倡導的、目前被業界廣泛接受的、用于資料庫通路的應用程式程式設計接口(API),它以X/Open和 ISO/IEC的調用級接口(CLI)規範為基礎,并使用結構化查詢語言(SQL)作為其資料庫通路語言。 ODBC總體結構有四個元件:

    A. 應用程式:執行處理并調用ODBC API函數,以送出 SQL語句并檢索結果。

    B. 驅動程式管理器(Driver Manager):根據應用程式需要加載/解除安裝驅動程式,處理ODBC函數調用,或把它們傳送到驅動程式。

    C. 驅動程式:處理ODBC函數調用,送出SQL請求到一個指定的資料源,并把結果傳回到應用程式。如果有必要,驅動程式修

                       改一應程式請求,以使請求與相關的DBMS支援的文法一緻。

    D. 資料源:包括使用者要通路的資料及其相關的作業系統、DBMS及用于通路DBMS的網絡平台。

DAO(Data Access Object,資料通路對象)

1993年,微軟公司用來顯露了Microsoft Jet資料庫引擎(最早是給Microsoft Access 所使用,現在已經支援其它資料庫),并允許開發者通過ODBC直接連接配接到其他資料庫一樣,直接連接配接到 Access 表。DAO 最适用于單系統應用程式或在小範圍本地分布使用。其内部已經對Jet資料庫的通路進行了加速優化,而且其使用起來也是很友善的。是以如果資料庫是Access資料庫且是本地使用的話,建議使用這種通路方式---應用的專一性

RDO(Remote Data Objects,遠端資料對象)

1995年,RDO是一個到ODBC的、面向對象的資料通路接口,它同易于使用的DAO style組合在一起,提供了一個接口,形式上展示出所有ODBC的底層功能和靈活性。盡管RDO在很好地通路Jet或ISAM資料庫方面受到限制,而且它隻能通過現存的ODBC驅動程式來通路關系資料庫。但是,RDO已被證明是許多SQL Server、Oracle 以及其他大型關系資料庫開發者經常選用的最佳接口。RDO提供了用來通路存儲過程和複雜結果集的更多和更複雜的對象、屬性,以及方法。---無疑是在odbc基礎上的

OLE DB(Object Linking and Embedding, Database,對象連接配接嵌入資料庫)

1997年, Microsoft 的一個戰略性系統級程式設計接口,用于管理整個組織内的資料。OLE DB 是建立在 ODBC 功能之上的一個開放規範。ODBC 是為通路關系型資料庫而專門開發的,OLE DB 則用于通路關系型和非關系型資訊源,例如主機 ISAM/VSAM 和層次資料庫,電子郵件和檔案系統存儲,文本、圖形和地理資料以及自定義業務對象。

OLE DB 定義了一組 COM 接口,對各種資料庫管理系統服務進行封裝,并允許建立軟體元件,實作這些服務。OLE DB 元件包括資料提供程式(包含和表現資料)、資料使用者(使用資料)和服務元件(處理和傳送資料,例如,查詢處理器和遊标引擎)。 

OLE DB 接口有助于平滑地內建元件,這樣,OLE DB 元件廠商就可以快速地向市場提供高品質 OLE DB 元件。此外,OLE DB 包含了一個連接配接 ODBC 的“橋梁”,對現用的各種 ODBC 關系型資料庫驅動程式提供一貫的支援。---号稱取代odbc,但也相容odbc 

ADO(ActiveX Data Object,活動資料對象)

1996年,ADO是DAO/RDO的後繼産物。ADO 2.0在功能上與RDO更相似,而且一般來說,在這兩種模型之間有一種相似的映射關系。ADO"擴充"了DAO和 RDO 所使用的對象模型,這意味着它包含較少的對象、更多的屬性、方法(和參數),以及事件。 作為最新的資料庫通路模式,ADO的使用也是簡單易用,是以微軟已經明确表示今後把重點放在ADO上,對DAO/RDO不再作更新,是以ADO已經成為了目前資料庫開發的主流。 ADO涉及的資料存儲有DSN(資料源名稱)、ODBC(開放式資料連接配接)以及OLE DB三種方式。後面的例程将詳細講解這三種方式的具體通路實作。---可以說是對odbc,oledb這些系統級的程式設計接口的彙接,并對DAO,RDO這些應用級的程式設計接口的更新吧。

 ADO.NET

是一種基于标準的程式設計模型,可以用來建立分布式應用以實作資料共享。在ADO.NET中,DataSet占據重要地位,它是資料庫裡部分資料在記憶體中的拷貝。與ADO中的RecordSet不同,DataSet可以包括任意個資料表,每個資料表都可以用于表示自某個資料庫表或視圖的資料。DataSet駐留在記憶體中,且不與原資料庫相連,即無需與原資料庫保持連接配接。完成工作的底層技術是XML,它是DataSet所采用的存儲和傳輸格式。在運作期間,元件 (如某個業務邏輯對象或asp.net web表單)之間需要交換DataSet中的資料。資料以XML檔案的形式從一個元件傳輸給另一個元件,由接收元件将檔案還原為DataSet形式。DataSet的有關方法與關系資料模型完全一樣, 因為各個資料源的協定各不相同,我們需要通過正确的協定來通路資料源。有些比較老的資料源用ODBC協定,其後的一些資料源用OleDb協定,現在,仍然還有許多新的資料源在不斷出現,ADO.NET提供了通路資料源的公共方法,對于不同的資料源,它采用不同的類庫。這些類庫稱為Data Providers,并且通常是以資料源的類型以及協定來命名的

ODBC 、DAO 、ADO 、OLEDB 資料庫連接配接方式差別及聯系

ODBC 是一種底層的通路技術,是以,ODBC API 可以是客戶應用程式能從底層設定和控制資料庫,完成一些進階資料庫技術無法完成的功能;但不足之處由于ODBC隻能用于關系型資料庫,使得利用ODBC很難通路對象資料庫及其他非關系資料庫。

DAO 提供了一種通過程式代碼建立和操縱資料庫的機制。最大特點是對MICROSOFT JET資料庫的操作很友善,而且是操作JET資料庫時性能最好的技術接口之一。并且它并不隻能用于通路這種資料庫,事實上,通過DAO技術可以通路從文本檔案到大型背景資料庫等多種資料格式。

ADO 是基于OLE DB的通路接口,它是面向對象的OLE DB技術,繼承了OLE DB的優點。屬于資料庫通路的高層接口。

資料庫通路方式(ODBC OLEDB ADO ADO.NET)ODBC(Open Database Connectivity,開放資料庫互連)DAO(Data Access Object,資料通路對象)ADO(ActiveX Data Object,活動資料對象)ODBC 、DAO 、ADO 、OLEDB 資料庫連接配接方式差別及聯系

ADO和OLEDB之間的關系

OLEDB是一種底層資料通路界面接口。是用于第三方驅動程式商家開發輸出資料源到ADO-技術的應用程式或用于C++的開發者開發定制的資料庫元件。

OLE DB 是用于通路資料的重要的系統級程式設計接口,它是 ADO 的基礎技術,同時還是 ADO.NET 的資料源。

ADO 是基于OLE DB的通路接口,它是面向對象的OLE DB技術,繼承了OLE DB的優點。屬于資料庫通路的高層接口。

可以這麼說,ADO為OLEDB提供高層應用API函數。

資料庫通路方式(ODBC OLEDB ADO ADO.NET)ODBC(Open Database Connectivity,開放資料庫互連)DAO(Data Access Object,資料通路對象)ADO(ActiveX Data Object,活動資料對象)ODBC 、DAO 、ADO 、OLEDB 資料庫連接配接方式差別及聯系

小結:看了一遍并沒有太深入的了解,是以總結下來,以後讓自己随時可以看看,深入了解一下