嵌入式數(shù)據(jù)庫與非嵌入式數(shù)據(jù)庫的差別,在于運(yùn)行模式的差別。并不是運(yùn)行在嵌入式手持設(shè)備上的數(shù)據(jù)庫就是嵌入式數(shù)據(jù)庫,那種數(shù)據(jù)庫我們通常稱做嵌入式移動數(shù)據(jù)庫。理論上講,嵌入式設(shè)備一樣可以運(yùn)行網(wǎng)絡(luò)數(shù)據(jù)庫的服務(wù)端程序。
嵌入式數(shù)據(jù)庫是指運(yùn)行在本機(jī)上、不用啟動服務(wù)端的輕型數(shù)據(jù)庫,它與應(yīng)用程序緊密集成,被應(yīng)用程序所啟動,并伴隨應(yīng)用程序的退出而終止。
從這個意義上講,似乎所有單機(jī)數(shù)據(jù)庫都可以算嵌入式數(shù)據(jù)庫,比如Access,Paradox,DBF等等,因為它們都不用啟動數(shù)據(jù)庫服務(wù)器即可使用。然而,我們通常不將上述數(shù)據(jù)庫歸入嵌入式數(shù)據(jù)庫,而只將它們歸入“桌面數(shù)據(jù)庫”,甚至“文件型數(shù)據(jù)庫”,因為這些數(shù)據(jù)庫的完備性、存儲容量及性能方面存在較大的缺陷。
嵌入式數(shù)據(jù)庫支持的數(shù)據(jù)都是TB文件級別,更由于嵌入式數(shù)據(jù)庫具備高性能的特點,可以預(yù)測,單機(jī)數(shù)據(jù)庫的未來將是嵌入式數(shù)據(jù)庫的天下。
嵌入式數(shù)據(jù)庫三雄
目前,嵌入式數(shù)據(jù)庫市場主要由三個產(chǎn)品分割:SQLite,Birkeley DB,F(xiàn)irebird嵌入服務(wù)器版,巧的是,這三個數(shù)據(jù)庫產(chǎn)品都是開源軟件。
SQLite 主頁:http://www.sqlite.org
SQLite誕生于2000年5月,這幾年增長勢頭迅猛無比,目前版本是3.3.8。
SQLite的特點如下:
1、無需安裝配置,應(yīng)用程序只需攜帶一個動態(tài)鏈接庫。
2、非常小巧,F(xiàn)or Windows 3.3.8版本的DLL文件才374KB。
3、ACID事務(wù)支持,ACID即原子性、一致性、隔離性、和持久性(Atomic、Consistent、Isolated、和 Durable)。
4、數(shù)據(jù)庫文件可以在不同字節(jié)順序的機(jī)器間自由的共享,比如可以直接從Windows移植到Linux或MAC。
5、支持?jǐn)?shù)據(jù)庫大小至2TB。
Berkeley DB 主頁:http://www.oracle.com/database/berkeley-db/index.html
Berkeley DB是由美國Sleepycat Software公司開發(fā)的一套開放源碼的嵌入式數(shù)據(jù)庫的程序庫,它于1991年發(fā)布,號稱“為應(yīng)用程序開發(fā)者提供工業(yè)級強(qiáng)度的數(shù)據(jù)庫服務(wù)”,可謂是老牌悍將。Sleepycat現(xiàn)已被甲骨文(ORACLE)公司收購。
Berkeley DB的特點如下:
1、嵌入式,無需安裝配置。
2、為多種編程語言提供了API接口,其中包括C、C++、Java、Perl、Tcl、Python和PHP等等。
3、輕便靈活。它可以運(yùn)行于幾乎所有的UNIX和Linux系統(tǒng)及其變種系統(tǒng)、Windows操作系統(tǒng)以及多種嵌入式實時操作系統(tǒng)之下。
4、可伸縮。它的Database library才幾百KB大小,但它能夠管理規(guī)模高達(dá)256TB的數(shù)據(jù)庫。它支持高并發(fā)度,成千上萬個用戶可同時操縱同一個數(shù)據(jù)庫。
Firebird 嵌入服務(wù)器版(Embedded Server) 主頁:http://www.firebirdsql.org
從Interbase開源衍生出的Firebird,充滿了勃勃生機(jī)。雖然它的體積比前輩Interbase縮小了幾十倍,但功能并無閹割。為了體現(xiàn)Firebird短小精悍的特色,開發(fā)小組在增加了超級服務(wù)器版本之后,又增加了嵌入版本,最新版本為2.0。
Firebird的嵌入版有如下特色:
1、數(shù)據(jù)庫文件與Firebird網(wǎng)絡(luò)版本完全兼容,差別僅在于連接方式不同,可以實現(xiàn)零成本遷移。
2、數(shù)據(jù)庫文件僅受操作系統(tǒng)的限制,且支持將一個數(shù)據(jù)庫分割成不同文件,突破了操作系統(tǒng)最大文件的限制,提高了IO吞吐量。
3、完全支持SQL92標(biāo)準(zhǔn),支持大部分SQL-99標(biāo)準(zhǔn)功能。
4、豐富的開發(fā)工具支持,絕大部分基于Interbase的組件,可以直接使用于Firebird。
5、支持事務(wù)、存儲過程、觸發(fā)器等關(guān)系數(shù)據(jù)庫的所有特性。
6、可自己編寫擴(kuò)展函數(shù)(UDF)。
嵌入式數(shù)據(jù)庫特性對比
產(chǎn)品名稱 SQLite Berkeley DB Firebird嵌入服務(wù)器版
當(dāng)前版本: 3.3.8、4.5.20、2.0
速度:最快、快、快
穩(wěn)定性:好、好、好
數(shù)據(jù)庫容量:2TB、256TB、64TB
SQL支持:大部份SQL- 92、不支持、完全SQL-92與大部份SQL-99
Win32平臺下最小體積:374KB、840KB、3.68MB
數(shù)據(jù)操縱:SQL、僅應(yīng)用程序接口、SQL
開發(fā)接口:C, C++, PHP, Java, Delphi, Python .net(有些是第三方廠商開發(fā)的)
從以上對比中,我們可以看到,最短小精悍的是SQLite,它的性能也是最高的,BerkeleyDB比較特殊,因為它不是用SQL語言來操縱數(shù)據(jù)的,F(xiàn)irebird嵌入版的體積對比之下顯得稍大了些,但它對關(guān)系數(shù)據(jù)庫特性的支持是最好的,如果要考慮到今后或許要將數(shù)據(jù)庫升級成網(wǎng)絡(luò)版本,就要選Firebird了。