數據庫訪問技術總結(Windows+Linux)

數據庫訪問技術

1.Windows

1. DB-Library SQL SERVER提供的一系列的操作數據庫的函數庫, C訪問數據庫的接口。
2. DAO是指ActiveX Data ObjectsADOVB6推薦操作數據庫的方式。
3. ODBC最先出來,是用來連接oraclesql serveraccess等數據庫的一種接口標準(後來隨着各廠商的擴充,也就都不標準了),各數據庫提供實現ODBC驅動程序

OLE DB是微軟發明的,用來淘汰ODBC的,OLE DB不光可以連接各種數據庫,還可以連接exchange、活動目錄、甚至操作系統文件目錄等各種數據庫源(也需要分別使用不同的驅動程序)。

ADO也是微軟的,是用來淘汰早起微軟的RDODAO的(ADO可以做RDODAO能做的所有事),ADO在上層,通過下面的ODBC或者OLE DB來訪問數據源(注意不是數據庫,因爲可訪問範圍包括活動目錄等各種數據)。不過微軟目前的ODBC實際是通過OLE DB訪問數據源的。

層次關係:
應用程序 -> ADO -> ODBC -> OLE DB -> 數據源
或者
應用程序 -> ADO -> OLE DB -> 數據源

ODBC的本意是“ODBC的最大優點是能以統一的方式處理所有的數據庫,其實都是扯淡,因爲各數據庫對標準SQL都做了大量的擴充,除非你只使用標準的SQL,不然統一根本太不上。
其實這些都東西可以理解爲是和驅動差不多.只是封裝的程度不同,所以效率也不同,封裝的越好,使用越簡單,但是性能越差。使用的越是底層技術,效率越好。但是使用越困難。所以要權衡來考慮。這是我的一些感想和所得。上述的技術最根本的是:COM技術,組件對象技術,該技術的主要實現語言是VC++,是微軟主推的技術。今年來微軟在其上又進行了抽象封裝,構成.NET技術的應用基礎。

2.Linux

1. ODBCwindowslinux下都有,詳細見Linux/UnixODBC的安裝、配置與編

ODBC Open Database Connect 即開放數據庫互連的簡稱,它是由Microsoft 公司於1991 年提出的一個用於訪問數據庫的統一界面標準,是應用程序和數據庫系統之間的中間件。它通過使用相應應用平臺上和所需數據庫對應的驅動程序與應用程序的交互來實現對數據庫的操作,避免了在應用程序中直接調用與數據庫相關的操作,從而提供了數據庫的獨立性。

ODBC 主要由驅動程序和驅動程序管理器組成。驅動程序是一個用以支持ODBC 函數調用的模塊,每個驅動程序對應於相應的數據庫,當應用程序從基於一個數據庫系統移植到另一個時,只需更改應用程序中由ODBC 管理程序設定的與相應數據庫系統對應的別名即可。驅動程序管理器可鏈接到所有ODBC 應用程序中,它負責管理應用程序中ODBC 函數與DLL 中函數的綁定。

ODBC 使用層次的方法來管理數據庫,在數據庫通信結構的每一層,對可能出現依賴數據庫產品自身特性的地方,ODBC 都引入一個公共接口以解決潛在的不一致性,從而很好地解決了基於數據庫系統應用程序的相對獨立性,這也是ODBC 一經推出就獲得巨大成功的重要原因之一。

從結構上分,ODBC 分爲單束式和多束式兩類。

1.                單束式驅動程序
單束式驅動程序介於應用程序和數據庫之間,像中介驅動程序一樣數據提供一個統一的數據訪問方式。當用戶進行數據庫操作時,應用程序傳遞一個ODBC 函數調用給ODBC 驅動程序管理器,由ODBC API 判斷該調用是由它直接處理並將結果返回還是送交驅動程序執行並將結果返回。由上可見,單束式驅動程序本身是一個數據庫引擎,由它直接可完成對數據庫的操作,儘管該數據庫可能位於網絡的任何地方。

2.                多束式驅動程序
多束式驅動程序負責在數據庫引擎和客戶應用程序之間傳送命令和數據,它本身並不執行數據處理操作而用於遠程操作的網絡通信協議的一個界面。前端應用程序提出對數據庫處理的請求,該請求轉給ODBC 驅動程序管理器,驅動程序管理器依據請求的情況,就地完成或傳給多束驅動程序,多束式驅動程序將請求翻譯爲特定廠家的數據庫通信接口(如Oracle SQLNet)所能理解的形式並交於接口去處理,接口把請求經網絡傳送給服務器上的數據引擎,服務器處理完後把結果發回給數據庫通信接口,數據庫接口將結果傳給多束式ODBC 驅動程序,再由驅動程序將結果傳給應用程序。

很多程序員已經體會到了在Windows平臺下的ODBC的益處,而在Linux/Unix下進行數據庫編程的時候卻不得不根據不同的數據庫來選擇特有的API進行編程,一旦數據庫發生了改變,所有與這些API相關的程序都必須進行修改。其實在Linux/Unix下現在也有了自己的ODBC,可以使我們的數據庫編程就像在Windows平臺下一樣簡單。

 

2.    JDBC / JDO windowslinux通用,詳細見http://baike.baidu.com/view/25611.htm

JDBCJava Data Base Connectivity,java數據庫連接)是一種用於執行SQL語句的Java API,可以爲多種關係數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序,同時,JDBC也是個商標名。

3.    C API C語言連接數據庫http://soft.chinabyte.com/184/7769684.shtml

MySQL提供C語言使用的API. C代碼的API是隨MySQL一起發佈的. 它包含在mysqlclient庫中, 可以使C程序來訪問數據庫.

 

4.    Gnome DB http://www.gnome-db.org/

GNOME-DB是用來在GNOME中統一管理數據庫的工具。
它由三部分組成,從底層開始依次爲libgdalibgnomedbmergeant

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章