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