秦 偉
(上海電機學(xué)院,上海200240)
嵌入式數(shù)據(jù)庫是一種具備了基本數(shù)據(jù)庫特性的數(shù)據(jù)文件,它與傳統(tǒng)數(shù)據(jù)庫的區(qū)別是:嵌入式數(shù)據(jù)庫采用程序方式直接驅(qū)動,而傳統(tǒng)數(shù)據(jù)庫則采用引擎響應(yīng)方式驅(qū)動;嵌入式數(shù)據(jù)庫的體積通常都非常小,這使得嵌入式數(shù)據(jù)庫常常應(yīng)用到移動設(shè)備上。嵌入式數(shù)據(jù)庫的技術(shù)特點如下:
1)嵌入性與移動性。嵌入性是嵌入式數(shù)據(jù)庫的基本特性。嵌入式數(shù)據(jù)庫不僅可以嵌入到其他的軟件當(dāng)中,也可以嵌入到硬件設(shè)備當(dāng)中。Empress的方法之一就是使數(shù)據(jù)庫以組件的形式存在,數(shù)據(jù)庫操作并不要求進程間通信,而且其對所有數(shù)據(jù)的操作都使用應(yīng)用編程接口,不需要對某種查詢語言進行解析,也無須生成解析計劃。具有嵌入性的數(shù)據(jù)庫通常具有比較好的移動性,但是具有比較好的移動性的數(shù)據(jù)庫不一定具有嵌入性。
2)實時性。實時性和嵌入性是分不開的。要想嵌入式數(shù)據(jù)庫具有很好的實時性,必須做很多額外的工作。比如:Empress實時數(shù)據(jù)庫將嵌人性和高速的數(shù)據(jù)引擎、定時功能以及防斷片處理等措施整合在一起,來保證最基本的實時性。
3)靈活性。當(dāng)前的嵌入式數(shù)據(jù)庫產(chǎn)品大多具有很強的靈活性,支持多種開發(fā)平臺,面向多種開發(fā)工具,預(yù)留靈活的開發(fā)接口。
4)伸縮性。伸縮性在嵌入式場合顯得尤為重要。首先嵌入式場合硬件和軟件的平臺都是千差萬別的,基本都是客戶根據(jù)需要自己選擇的結(jié)果。
除此之外,嵌入式數(shù)據(jù)庫肯定要具備企業(yè)級數(shù)據(jù)庫所具有的一些共性。比如,一致性是數(shù)據(jù)庫所必需的特性。安全性也是必不可少的。在保證物理信息本身安全的同時,也要保證用戶私有信息的安全。
嵌入式移動數(shù)據(jù)庫技術(shù)目前已經(jīng)從研究領(lǐng)域向更廣泛的應(yīng)用領(lǐng)域發(fā)展,各種嵌入式數(shù)據(jù)庫產(chǎn)品紛紛涌現(xiàn)。其中SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,移植性好,易使用,高效,可靠。與普通數(shù)據(jù)庫不同的是SQLite嵌入到使用它的應(yīng)用程序中,它們共用相同的進程空間,而不是兩個不同進程。SQLite數(shù)據(jù)庫的設(shè)計目標是嵌入式,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用,它占用資源非常低。
在Android應(yīng)用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引、插入數(shù)據(jù)。Android提供了一個方便的類SQLiteOpenHelper幫助開發(fā)者創(chuàng)建數(shù)據(jù)庫。Android平臺下管理SQLite數(shù)據(jù)庫,SQLite附帶一個命令行管理工具,命令行可以管理數(shù)據(jù)庫全部功能。在Android平臺下進入SQLite數(shù)據(jù)庫命令行有些麻煩,需要首先進入模擬器的shell(注意要先啟動模擬器),然后在shell下輸入指令sqlite3<數(shù)據(jù)庫文件名>進入sqlite的命令行。
數(shù)據(jù)庫可以提供任意種可能的數(shù)據(jù)存儲方式,但能夠讓你如愿地獲取所需的數(shù)據(jù)才是其最強大之處。這基本上與設(shè)計適當(dāng)?shù)臄?shù)據(jù)庫模式(schema)息息相關(guān),也得益于具有一定技巧的SQL查詢,當(dāng)然大多數(shù)的查詢都是通過SELECT表達式實現(xiàn)的。Android提供了許多查詢應(yīng)用程序數(shù)據(jù)庫的方法。你可以運行原始的SQL查詢表達式(字符串),或者使用“SQL表達式生成輔助類”來生成適當(dāng)?shù)牟樵儽磉_式,也可以將后端(backend)的數(shù)據(jù)庫直接同某些特定的用戶界面Widget相綁定。
嵌入式數(shù)據(jù)庫技術(shù)的許多特性,都與信息時代不斷進步的需求相吻合,有著廣闊的發(fā)展空間。未來的嵌入式數(shù)據(jù)庫有以下三大發(fā)展趨勢。
以往的嵌入式數(shù)據(jù)庫往往是以存儲為目的的被動型數(shù)據(jù)庫,只能被動地接受操作系統(tǒng)和應(yīng)用程序的調(diào)用來執(zhí)行相應(yīng)的動作。能夠根據(jù)數(shù)據(jù)庫中存儲的情況和自身特點,適當(dāng)?shù)刈龀鰞?yōu)化來滿足不同條件下應(yīng)用需求的智能化、主動型嵌入式數(shù)據(jù)庫是未來研究的熱點。
隨著高檔電子消費品日益受到人們的青睞,能夠?qū)σ曨l、音頻、文字、圖像進行存儲和快速檢索的嵌入式數(shù)據(jù)庫將具有更大的市場。嵌入式數(shù)據(jù)庫的應(yīng)用越來越廣泛,也越來越復(fù)雜,因此可靠性的提高也是至關(guān)重要的一環(huán)。高性能、高可靠性、具有實時處理和自動恢復(fù)功能的嵌入式數(shù)據(jù)庫,已成為眾多移動應(yīng)用的基礎(chǔ)支撐,它的應(yīng)用能極大地提高數(shù)字化產(chǎn)品的附加值。
導(dǎo)航設(shè)備、水文、地質(zhì)、地形地貌相關(guān)電子產(chǎn)品的快速發(fā)展,迫切需要能夠同時處理時間和空間數(shù)據(jù)的時空數(shù)據(jù)庫。當(dāng)然,除了上述嵌入式數(shù)據(jù)庫的發(fā)展方向以外,還有很多新的方向,例如當(dāng)前盛行的云嵌入式數(shù)據(jù)庫等?;ヂ?lián)網(wǎng)的“深度”聯(lián)網(wǎng)和普適計算“縱向”普及所帶來的計算挑戰(zhàn),將推動嵌入式軟件技術(shù)向“縱深”發(fā)展,催生新型嵌入式軟件系統(tǒng)。嵌入式數(shù)據(jù)庫與企業(yè)內(nèi)部信息的同步管理將得到發(fā)展。網(wǎng)絡(luò)的快速發(fā)展會帶動網(wǎng)絡(luò)和嵌入式數(shù)據(jù)庫實現(xiàn)遠程和同步的數(shù)據(jù)管理,這些都是嵌入式數(shù)據(jù)庫技術(shù)發(fā)展趨勢。
[1]鄭紅劍,王春秀.嵌入式數(shù)據(jù)庫的現(xiàn)狀和未來[J].信息通信,2011(2).
[2]倪天龍,張賢高,王培.?dāng)?shù)據(jù)庫SQLite在嵌入式系統(tǒng)中的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2005(10).