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