嵌入式數(shù)據(jù)庫(kù)的基本特點(diǎn)
導(dǎo)讀:按照馬克思的哲學(xué)理論,事物發(fā)展的進(jìn)程可以用螺旋式上升來(lái)描述。嵌入式數(shù)據(jù)庫(kù)和我們現(xiàn)在常見(jiàn)的企業(yè)級(jí)數(shù)據(jù)庫(kù)的基本關(guān)系也是一個(gè)螺旋上升式的關(guān)系。雖然,從名字上看,二者有著太多的相似性,但卻有著本質(zhì)的根本性的區(qū)別。外在的形式的相似性,并不能代表二者的實(shí)現(xiàn)方式和運(yùn)用方式的相似。恰恰相反,嵌入式數(shù)據(jù)庫(kù)的實(shí)現(xiàn)和運(yùn)用方式和企業(yè)級(jí)的數(shù)據(jù)庫(kù)有著很大的區(qū)別。嵌入式數(shù)據(jù)庫(kù)實(shí)際上是輕量級(jí)的,在運(yùn)行時(shí),它們需要較少的內(nèi)存。它們是使用精簡(jiǎn)代碼編寫(xiě)的,對(duì)于嵌入式設(shè)備,其速度更快,效果更理想。
在國(guó)外,嵌入式數(shù)據(jù)庫(kù)已經(jīng)發(fā)展了30多年,典型的代表是Empress嵌入式數(shù)據(jù)庫(kù)。它的特點(diǎn)也基本代表了現(xiàn)階段嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的基本特點(diǎn)。下面就介紹一下Empress嵌入式數(shù)據(jù)庫(kù)所具有的區(qū)別于企業(yè)級(jí)數(shù)據(jù)庫(kù)的幾個(gè)主要特點(diǎn)。
嵌入性是嵌入式數(shù)據(jù)庫(kù)的基本特性。
嵌入式數(shù)據(jù)庫(kù)不僅可以嵌入到其他的軟件當(dāng)中,也可以嵌入到硬件設(shè)備當(dāng)中。Empress的方法之一就是使數(shù)據(jù)庫(kù)以組件的形式存在,并發(fā)布給客戶(hù),客戶(hù)只需要像調(diào)用自己定義的函數(shù)那樣調(diào)用相應(yīng)的函數(shù)就可以創(chuàng)建表、插入刪除數(shù)據(jù)等常規(guī)的數(shù)據(jù)庫(kù)操作??蛻?hù)在自己的產(chǎn)品發(fā)布時(shí),可以將Empress數(shù)據(jù)庫(kù)編譯到自己的產(chǎn)品內(nèi),變成自己產(chǎn)品的一部分,最終用戶(hù)是感受不到數(shù)據(jù)庫(kù)的存在的,也不用特意去維護(hù)數(shù)據(jù)庫(kù)。
實(shí)時(shí)性和嵌入性是分不開(kāi)的。
只有具有了嵌入性的數(shù)據(jù)庫(kù)才能夠***時(shí)間得到系統(tǒng)的資源,對(duì)系統(tǒng)的請(qǐng)求在***時(shí)間內(nèi)做出響應(yīng)。但是,并不是具有嵌入性就一定具有實(shí)時(shí)性。要想嵌入式數(shù)據(jù)庫(kù)具有很好的實(shí)時(shí)性,必須做很多額外的工作。比如:Empress實(shí)時(shí)數(shù)據(jù)庫(kù)將嵌入性和高速的數(shù)據(jù)引擎、定時(shí)功能以及防斷片處理等措施整合在一起來(lái)保證最基本的實(shí)時(shí)性。當(dāng)然,不同的場(chǎng)合實(shí)時(shí)性要求比較高時(shí),除了軟件的實(shí)時(shí)性外,硬件的實(shí)時(shí)性也是必須的,具體情況需要有具體和切實(shí)的解決方案,不能一概而論。
移動(dòng)性
移動(dòng)性是目前在國(guó)內(nèi)提的比較多的一個(gè)說(shuō)法,這和目前國(guó)內(nèi)移動(dòng)設(shè)備的大規(guī)模應(yīng)用有關(guān)??梢赃@么說(shuō),具有嵌入性的數(shù)據(jù)庫(kù)一定具有比較好的移動(dòng)性,但是具有比較好的移動(dòng)性的數(shù)據(jù)庫(kù),不一定具有嵌入性。比如,一個(gè)小型的C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)也可以運(yùn)用在移動(dòng)設(shè)備上,而具有移動(dòng)性。但這個(gè)數(shù)據(jù)庫(kù)本身是一個(gè)獨(dú)立存在的實(shí)體,需要額外的運(yùn)行資源,本質(zhì)上講和企業(yè)級(jí)數(shù)據(jù)庫(kù)區(qū)別不大。所以不具有嵌入性,也基本上不具備實(shí)時(shí)性。Empress是優(yōu)秀的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù),毫無(wú)疑問(wèn)也是非常優(yōu)秀的移動(dòng)數(shù)據(jù)庫(kù)。
伸縮性在嵌入式場(chǎng)合顯得尤為重要。
首先嵌入式場(chǎng)合硬件和軟件的平臺(tái)都是千差萬(wàn)別,基本都是客戶(hù)根據(jù)需要自己選擇的結(jié)果。
所以嵌入式場(chǎng)合的數(shù)據(jù)庫(kù)必須能夠支持非常多的平臺(tái),如Empress目前支持6000多種平臺(tái)。同時(shí),數(shù)據(jù)存儲(chǔ)要支持常見(jiàn)的存儲(chǔ)設(shè)備,如CF/Flash/HD等。多進(jìn)程和多線程是必備的,現(xiàn)在的嵌入式系統(tǒng)已經(jīng)遠(yuǎn)遠(yuǎn)不是當(dāng)初的簡(jiǎn)單的編程,代碼量增大,功能日益復(fù)雜,所以必然要支持多線程和多進(jìn)程。C/C++和SQL接口的支持也是必備的,作為數(shù)據(jù)庫(kù)當(dāng)然要有大家熟悉的SQL,但同時(shí)不要忘記嵌入式場(chǎng)合用的最多的標(biāo)準(zhǔn)的C/C++接口。某種程度上說(shuō),嵌入式場(chǎng)合的數(shù)據(jù)比企業(yè)級(jí)應(yīng)用的數(shù)據(jù)還要復(fù)雜,所以要支持各種類(lèi)型的數(shù)據(jù),如多媒體數(shù)據(jù)和空間數(shù)據(jù)等,要支持各種數(shù)據(jù)結(jié)構(gòu),除了傳統(tǒng)的關(guān)系型,還要能處理樹(shù)狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。
當(dāng)然,肯定要具備企業(yè)級(jí)數(shù)據(jù)庫(kù)所具有的一些共性。比如,一致性是數(shù)據(jù)庫(kù)所必需的特性。通過(guò)事務(wù)、鎖功能和數(shù)據(jù)同步等多種技術(shù)保證數(shù)據(jù)庫(kù)內(nèi)的各個(gè)表內(nèi)的數(shù)據(jù)的一致性,同時(shí)也保證數(shù)據(jù)庫(kù)和其他同步或鏡像數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的一致性。安全性也是必不可少的。在保證物理信息本身的安全的同時(shí),也要保證用戶(hù)私有信息的安全。
嵌入式數(shù)據(jù)庫(kù)的基本特點(diǎn)就介紹到這,這篇文章對(duì)一些初學(xué)者來(lái)說(shuō)是非常有用的,從這篇文章開(kāi)始就能對(duì)嵌入式數(shù)據(jù)庫(kù)有個(gè)大體的了解,知道了它的特點(diǎn),然后才能更深層的去學(xué)習(xí)嵌入式數(shù)據(jù)庫(kù)。
【編輯推薦】