資料庫介面的發展歷史

2021-05-28 16:02:17 字數 2308 閱讀 5398

為了能用同樣的方法訪問不同的資料庫,一些軟體廠商提出通用的資料庫介面標準,如微軟的odbc、dao、rdo、oledb和ado介面,還有borland公司的bde介面等,這些介面對各類資料庫的驅動程式進行了封裝,應用程式只需通過標準的語法訪順介面程式,介面程式會根據情況呼叫不同的驅動程式來訪問相關的資料庫。這樣從應用程式的角度來看,訪問各種資料庫(包括符合規範的末知資料庫)的方法是一樣的。

當市場上出現眾多的資料庫產品之後,borland和微軟都製字了資料庫訪問的規範,其中微軟推出了odbc(open database connectivity)規範,而borland公司推出了bde(borlanddatabase engine)規範。在推出的初期,bde的效能比odbc要好,但隨著微軟對odbc的改進,以及對作業系統的壟斷,odbc標準最終佔據了多數市場。到現在,bde只是borland產品線上的資料庫訪部標準,只有c++builder和delphi等開發工具在一直使用bde介面。

微軟的odbc介面是作為一組api函式提供的,應用程式通過api訪問odbc介面,odbc介面再通過相關資料庫的驅動程式訪問資料庫。當需要訪問一種新的資料庫時,只需要使用新的資料庫驅動程式替代舊的驅動程式,應用程式即可照常執行,而無須修改**。

由於odbc使用比較底層的api介面,凡是可以呼叫api的語言都可以使用odbc介面,這樣,c、vc++、和win32彙編等語言都能方便的使用odbc介面,但是在vb、asp中的vbscript等比較高階的語言中使用api卻是非常麻煩的事情,所以微軟體設計了dao介面來供這些語言訪問資料庫。

由於dao(dataaccess objects)是物件導向的介面,所以它可以很方便地在vb中使用,但,ado在內部通過jet引擎來訪問資料庫,jet引擎本來是專門access資料庫設計的。雖然用它訪問access資料庫時很快也很有效,但訪問非access資料庫時(如sql server和oracle),jet引擎將通過odbc訪問資料庫(如下圖所示)。所以,訪問除了access之外的資料庫時,dao的速度比較慢。

為了克服這種缺陷,微軟新設計了rdo(remote data objects)介面,與dao類似,rdo也是乙個物件導向的介面,它都直接和odbc介面對話,相當於在上圖上去掉了jet引擎這一層,從而使效能得到了提高。

odbc、dao、rdo介面只能用來訪問關係型資料庫,但是應用程式也經常需要訪問非關係型的資料來源,如microsoft exchange server中的郵件、文字和圖形、目錄服務資料,甚至自定義的資料物件等。為此,微軟設計了oledb(object linking andembedding, database)介面。

oledb介面也建立於odbc之上,這個介面對關係型的資料庫和非關係型的資料來源提供了一致的訪問。當訪問關係型的資料庫時,它仍然呼叫odbc介面,對於非關係型的資料來源,它使用與資料來源相對應的驅動程式。這些驅動程式被稱為oledb provider。

與odbc、dao和rdo介面相比,oledb解決了非關係型資料的訪問方式,使訪問的資料類一型得到了很大的擴充套件,但從程式設計的角度看,oledb使用的是com介面而不是api介面,com介面是一種二進位制介面,呼叫的過程中大量的地使用了指標變數,這對c和vc++並不成問題,但由於vb和vbscript等高階語言不提供指標資料型別,所以無法直接呼叫oledb。

所以,在此基礎上微軟又推出了另乙個資料訪問物件模型:ado(activex data objects),由於ado介面也是物件導向的,所以可以被vb使用。如下圖,ado介面是以oledb為基礎而封裝的,它為vb等高階語言提供了oledb的所有功能。ado介面和oledb介面的關係就類似於rdo介面和odbc介面的關係。

這些介面的差別在於層次、功能和介面封裝方式的不同。具體使用哪種介面要看需要訪問的資料型別,以及使用的語言能支援哪種介面封裝方式,如vb程式訪問關係型資料庫時,可以使用ado、dao或者rdo介面,但是要訪問非關係型的資料庫時,就只能使用ado介面了。而vc++程式既可以使用ado介面,也可以使用oledb或都最底層的odbc介面。

現在再來詳細看看odbc介面的組成。odbc介面的架構如下圖所示。當應用程式訪問某種型別的資料庫時,首先將相關的資訊告訴odbc管理器,這些資訊包括使用的驅動程式名稱,需要訪問的資料庫名稱,使用者名稱和密碼等。odbc管理器根據這些資訊選擇合適的驅動程式連線到指定的資料庫後,就可以使用sql語句進行資料庫的操作了。

一些簡寫:

odbc: open database connectivity

bde: borland database engine

dao: data access objects

rdo: remote data objects

oledb: object linking and embedding, database

ado: activex data objects

資料庫的發展歷史以及oracle資料庫的使用

目前資料庫可分為三大類分別是小型資料庫 access foxbase 中型資料庫 sql server my sql infomix 大型資料 oracle db2 當然他們的訪問量也是不同的,oracle資料庫訪問量最大,目前也比較受歡迎 資料庫又分為 層次型資料庫 網路型資料庫 關係型資料庫 1...

資料庫廠商的發展歷史之Sybase

sybase公司成立於1984年,公司名稱 sybase 取自 system 和 database 相結合的含義。sybase公司的創始人之一bob epstein 是ingres 大學版 與system r同時期的關聯式資料庫模型產品 的主要設計人員。sybase公司的第乙個關聯式資料庫產品是19...

看了看幾個資料庫廠商的發展歷史

這兩天把oracle以及db2 sybase sql server幾種資料庫的發展歷史大致看了一下,發現了一些特別奇怪的現象 1.oracle的技術專家一定為人非常低調。眾所周知,oracle資料庫的功能確實很是強大,但是發展初期,它往往過度的向使用者誇大自己的功能。即非常善於標榜自己。可是它的工程...