開源嵌入式數據庫BericeleyDB和SQLite的比較
發布時間:2007/4/23 0:00:00 訪問次數:1812
摘 要 深入分析、比較Berkeley DB和sQLite。Berkel ey DB和sQLite是源碼開放的嵌入式數據庫管理系統,無需安裝,體積小巧,速度又很快;可以很方便地應用在掌上電腦、PDA、車載設備、移動電話等MySQL、SQL Server這些大中型數據庫不可實現的嵌入式設備上。
關鍵詞Berkeley DB SOL,ite 嵌入式數據庫
1 嵌入式數據庫
通常,我們采用數據庫來實現對數據的存儲、檢索等功能。像MySQL這類基于C/S結構的關系型數據庫系統,雖然代表著目前數據庫應用的主流,卻并不能滿足所有應用場合的需要。很多的應用,僅僅利用到了這些數據庫產品的基本特性而已。有時我們需要的可能只是一個簡單的基于磁盤文件的數據庫系統,這樣就不必安裝龐大的數據庫服務器,以簡化數據庫應用程序的設計。在某些特殊應用場合,比如在嵌入式系統中,由于系統的硬件軟件資源都有限,這些數據庫產品就明顯有一些臃腫,甚至是不可實現的。在這些情況下,嵌入式數據庫的優勢就特別明顯了。
嵌入式數據庫通常與操作系統和具體應用集成在一起,無須獨立運行的數據庫引擎,由程序直接調用相應的API去實現對數據的存取操作。更直白地講,嵌入式數據庫是一種具備了基本數據庫特性的數據文件。嵌入式數據庫與其它數據庫產品的區別是,前者是程序驅動式,而后者是引擎響應式。嵌入式數據庫的一個很重要的特點是它們的體積非常小,編譯后的產品也不過幾十KB,在一些移動設備上極具競爭力。
從目前嵌入式應用的發展趨勢來看,嵌入式數據庫的實現必須充分體現系統的可定制性,即系統選擇的技術路線要面向具體的行業應用,因而研究源碼開放的嵌入式數據庫具有特殊意義。
2 Berkeley DB和SQLite
DBkeley DB是一款健壯的、高速的工業級開放源代碼的嵌入式數據庫管理系統。應用它,程序員只需要調用一些簡單的API就可以完成對數據的訪問和管理。
Berkeley DB的源代碼有C和Java兩種,函數庫本身只有300KB左右,但卻能夠用來管理多達256TB的數據。Berkeley DB作為一種嵌入式數據庫系統在許多方面有著獨特的優勢。首先,由于其應用程序和數據庫管理系統運行在相同的進程空間當中,進行數據操作時可以避免繁瑣的進程間通信,因此耗費在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡單的函數調用接口來完成所有的數據庫操作,而不是在數據庫系統中經常用到的SQL語言,避免了對結構化查詢語言進行解析和處理所需的開銷。
SQLite的源代碼是C,其源代碼完全開放。SQLite第一個Alpha版本誕生于2000年5月。今年5月,SQLite又迎來了一個新的里程一SOLite 3。
SQLite有以下特性:支持ACID事務;零配置一無需安裝和管理配置;儲存在單一磁盤文件中的一個完整的數據庫;數據庫文件可以在不同字節順序的機器間自由共享;支持數據庫大小至2TB;足夠小,全部源碼大致3萬行c代碼,250KB;比目前流行的大多數數據庫對數據的操作要快;提供了對事務功能和并發處理的支持,應用Transaction既保證了數據的完整性,也會提高運行速度,因為多條語句一起提交給數據庫的速度會比一條一條的提交方式更快;獨立,沒有額外依賴。
目前,對Berkeley DB的研究開發工作主要是美國的sleepycat公司在進行,在國內幾乎沒有關于這方面的研究;而SQLite在國內也是鮮有人問津。
2.1 Berkeley DB和SOLite的數據庫操作
與常用的數據庫管理系統(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數據庫服務器的概念。應用程序不需要事先同數據庫服務建立起網絡連接,而是通過內嵌在程序中的Berkeley DB函數庫來完成對數據的保存、查詢、修改和刪除等操作。所有與數據庫相關的操作都由函數庫負責統一完成,這樣無論是系統中的多個進程,或者是相同進程中的多個線程,都可以在同一時間調用訪問數據庫的函數;而底層的數據加鎖、事務日志和存儲管理等都在Berkeley DB函數庫中實現。它們對應用程序來講是完全透明的。
Berkeley DB不是關系型的數據庫,不能應用標準的SQL語句對數據庫操作,對它的操作要調用專用的API實現。這些API提供了查詢、插入、刪除等功能。比如com.sleepycat.db.Db類代表數據庫對象。Db類的put( )方法完成的是插入功能;get( )方法完成的是讀出數據的功能;com.sleepycat.db.Dbc是Berkeley DB的游標類,提供了遍歷數據庫記錄的功能。
使用Berkeley DB提供的函數來進行數據庫的訪問和管理并不復雜。在大多數場合下,只需按照統一的接口標準進行調用就可以完成最基本的操作,Berkeley DBEnvironment為一組數據庫同時提供參數設置。更為重要的是,如果要應用更高級的特性,必須要使用Environment功能,比如在要對保存的數據進行加密存儲、利用其Transaction、數據加密
摘 要 深入分析、比較Berkeley DB和sQLite。Berkel ey DB和sQLite是源碼開放的嵌入式數據庫管理系統,無需安裝,體積小巧,速度又很快;可以很方便地應用在掌上電腦、PDA、車載設備、移動電話等MySQL、SQL Server這些大中型數據庫不可實現的嵌入式設備上。
關鍵詞Berkeley DB SOL,ite 嵌入式數據庫
1 嵌入式數據庫
通常,我們采用數據庫來實現對數據的存儲、檢索等功能。像MySQL這類基于C/S結構的關系型數據庫系統,雖然代表著目前數據庫應用的主流,卻并不能滿足所有應用場合的需要。很多的應用,僅僅利用到了這些數據庫產品的基本特性而已。有時我們需要的可能只是一個簡單的基于磁盤文件的數據庫系統,這樣就不必安裝龐大的數據庫服務器,以簡化數據庫應用程序的設計。在某些特殊應用場合,比如在嵌入式系統中,由于系統的硬件軟件資源都有限,這些數據庫產品就明顯有一些臃腫,甚至是不可實現的。在這些情況下,嵌入式數據庫的優勢就特別明顯了。
嵌入式數據庫通常與操作系統和具體應用集成在一起,無須獨立運行的數據庫引擎,由程序直接調用相應的API去實現對數據的存取操作。更直白地講,嵌入式數據庫是一種具備了基本數據庫特性的數據文件。嵌入式數據庫與其它數據庫產品的區別是,前者是程序驅動式,而后者是引擎響應式。嵌入式數據庫的一個很重要的特點是它們的體積非常小,編譯后的產品也不過幾十KB,在一些移動設備上極具競爭力。
從目前嵌入式應用的發展趨勢來看,嵌入式數據庫的實現必須充分體現系統的可定制性,即系統選擇的技術路線要面向具體的行業應用,因而研究源碼開放的嵌入式數據庫具有特殊意義。
2 Berkeley DB和SQLite
DBkeley DB是一款健壯的、高速的工業級開放源代碼的嵌入式數據庫管理系統。應用它,程序員只需要調用一些簡單的API就可以完成對數據的訪問和管理。
Berkeley DB的源代碼有C和Java兩種,函數庫本身只有300KB左右,但卻能夠用來管理多達256TB的數據。Berkeley DB作為一種嵌入式數據庫系統在許多方面有著獨特的優勢。首先,由于其應用程序和數據庫管理系統運行在相同的進程空間當中,進行數據操作時可以避免繁瑣的進程間通信,因此耗費在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡單的函數調用接口來完成所有的數據庫操作,而不是在數據庫系統中經常用到的SQL語言,避免了對結構化查詢語言進行解析和處理所需的開銷。
SQLite的源代碼是C,其源代碼完全開放。SQLite第一個Alpha版本誕生于2000年5月。今年5月,SQLite又迎來了一個新的里程一SOLite 3。
SQLite有以下特性:支持ACID事務;零配置一無需安裝和管理配置;儲存在單一磁盤文件中的一個完整的數據庫;數據庫文件可以在不同字節順序的機器間自由共享;支持數據庫大小至2TB;足夠小,全部源碼大致3萬行c代碼,250KB;比目前流行的大多數數據庫對數據的操作要快;提供了對事務功能和并發處理的支持,應用Transaction既保證了數據的完整性,也會提高運行速度,因為多條語句一起提交給數據庫的速度會比一條一條的提交方式更快;獨立,沒有額外依賴。
目前,對Berkeley DB的研究開發工作主要是美國的sleepycat公司在進行,在國內幾乎沒有關于這方面的研究;而SQLite在國內也是鮮有人問津。
2.1 Berkeley DB和SOLite的數據庫操作
與常用的數據庫管理系統(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數據庫服務器的概念。應用程序不需要事先同數據庫服務建立起網絡連接,而是通過內嵌在程序中的Berkeley DB函數庫來完成對數據的保存、查詢、修改和刪除等操作。所有與數據庫相關的操作都由函數庫負責統一完成,這樣無論是系統中的多個進程,或者是相同進程中的多個線程,都可以在同一時間調用訪問數據庫的函數;而底層的數據加鎖、事務日志和存儲管理等都在Berkeley DB函數庫中實現。它們對應用程序來講是完全透明的。
Berkeley DB不是關系型的數據庫,不能應用標準的SQL語句對數據庫操作,對它的操作要調用專用的API實現。這些API提供了查詢、插入、刪除等功能。比如com.sleepycat.db.Db類代表數據庫對象。Db類的put( )方法完成的是插入功能;get( )方法完成的是讀出數據的功能;com.sleepycat.db.Dbc是Berkeley DB的游標類,提供了遍歷數據庫記錄的功能。
使用Berkeley DB提供的函數來進行數據庫的訪問和管理并不復雜。在大多數場合下,只需按照統一的接口標準進行調用就可以完成最基本的操作,Berkeley DBEnvironment為一組數據庫同時提供參數設置。更為重要的是,如果要應用更高級的特性,必須要使用Environment功能,比如在要對保存的數據進行加密存儲、利用其Transaction、數據加密
版權所有:51dzw.COM
深圳服務熱線:13692101218 13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式
淮安市|
天气|
文昌市|
红原县|
金昌市|
壶关县|
泸西县|
祁东县|
漠河县|
江孜县|
泰安市|
甘孜|
黑龙江省|
红河县|
扶风县|
兴安盟|
曲靖市|
博湖县|
石林|
农安县|
荥经县|
花莲市|
晋江市|
诸城市|
泰州市|
邮箱|
和田市|
祁东县|
浙江省|
岐山县|
安仁县|
涟水县|
贺兰县|
上杭县|
德令哈市|
白河县|
讷河市|
新宾|
建宁县|
普格县|
萍乡市|
深圳服務熱線:13692101218 13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式