Berkeley DB數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn)點(diǎn)評(píng)
導(dǎo)讀:像MySQL這類基于C/S結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)雖然代表著目前數(shù)據(jù)庫(kù)應(yīng)用的主流,但卻并不能滿足所有應(yīng)用場(chǎng)合的需要。有時(shí)我們需要的可能只是一個(gè)簡(jiǎn)單的基于磁盤文件的數(shù)據(jù)庫(kù)系統(tǒng)。這樣不僅可以避免安裝龐大的數(shù)據(jù)庫(kù)服務(wù)器,而且還可以簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用程序的設(shè)計(jì)。Berkeley DB正是基于這樣的思想提出來的。官方網(wǎng)址是:http://www.sleepycat.com/ ,***版本是2005年8月5日發(fā)布的4.3。的標(biāo)志是一只“貓”,見圖-4。
圖5 Berkeley DB 標(biāo)志
Berkeley DB的技術(shù)特點(diǎn):
Berkeley DB是一個(gè)開放源代碼的內(nèi)嵌式數(shù)據(jù)庫(kù)管理系統(tǒng),能夠?yàn)閼?yīng)用程序提供高性能的數(shù)據(jù)管理服務(wù)。應(yīng)用它程序員只需要調(diào)用一些簡(jiǎn)單的API就可以完成對(duì)數(shù)據(jù)的訪問和管理。與常用的數(shù)據(jù)庫(kù)管理系統(tǒng)(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數(shù)據(jù)庫(kù)服務(wù)器的概念。應(yīng)用程序不需要事先同數(shù)據(jù)庫(kù)服務(wù)建立起網(wǎng)絡(luò)連接,而是通過內(nèi)嵌在程序中的Berkeley DB函數(shù)庫(kù)來完成對(duì)數(shù)據(jù)的保存、查詢、修改和刪除等操作。
Berkeley DB為許多編程語言提供了實(shí)用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同數(shù)據(jù)庫(kù)相關(guān)的操作都由Berkeley DB函數(shù)庫(kù)負(fù)責(zé)統(tǒng)一完成。這樣無論是系統(tǒng)中的多個(gè)進(jìn)程,或者是相同進(jìn)程中的多個(gè)線程,都可以在同一時(shí)間調(diào)用訪問數(shù)據(jù)庫(kù)的函數(shù)。而底層的數(shù)據(jù)加鎖、事務(wù)日志和存儲(chǔ)管理等都在Berkeley DB函數(shù)庫(kù)中實(shí)現(xiàn)。它們對(duì)應(yīng)用程序來講是完全透明的。俗話說:“麻雀雖小五臟俱全。”Berkeley DB函數(shù)庫(kù)本身雖然只有300KB左右,但卻能夠用來管理多達(dá)256TB的數(shù)據(jù),并且在許多方面的性能還能夠同商業(yè)級(jí)的數(shù)據(jù)庫(kù)系統(tǒng)相抗衡。就拿對(duì)數(shù)據(jù)的并發(fā)操作來說,Berkeley DB能夠很輕松地應(yīng)付幾千個(gè)用戶同時(shí)訪問同一個(gè)數(shù)據(jù)庫(kù)的情況。此外,如果想在資源受限的嵌入式系統(tǒng)上進(jìn)行數(shù)據(jù)庫(kù)管理,Berkeley DB可能就是惟一正確的選擇了。
Berkeley DB作為一種嵌入式數(shù)據(jù)庫(kù)系統(tǒng)在許多方面有著獨(dú)特的優(yōu)勢(shì)。首先,由于其應(yīng)用程序和數(shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行在相同的進(jìn)程空間當(dāng)中,進(jìn)行數(shù)據(jù)操作時(shí)可以避免繁瑣的進(jìn)程間通信,因此耗費(fèi)在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡(jiǎn)單的函數(shù)調(diào)用接口來完成所有的數(shù)據(jù)庫(kù)操作,而不是在數(shù)據(jù)庫(kù)系統(tǒng)中經(jīng)常用到的SQL語言。這樣就避免了對(duì)結(jié)構(gòu)化查詢語言進(jìn)行解析和處理所需的開銷。
【編輯推薦】
- mSQL數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn)點(diǎn)評(píng)
- MysQL數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn)點(diǎn)評(píng)
- Oracle數(shù)據(jù)庫(kù)中管理表空間和數(shù)據(jù)文件