嵌入式實(shí)時數(shù)據(jù)庫技術(shù)研究
嵌入式實(shí)時數(shù)據(jù)庫技術(shù)研究
本文引用地址:http://2s4d.com/article/8454.htm隨著嵌入式系統(tǒng)的廣泛應(yīng)用及嵌入式實(shí)時操作系統(tǒng)的不斷普及,嵌入式環(huán)境下的數(shù)據(jù)管理問題成為系統(tǒng)中的重要環(huán)節(jié),構(gòu)建嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng)(RTDBS)成為嵌入式開發(fā)中必須解決的問題。這里所說的嵌入式RTDBS[1][2]是指可在嵌入式設(shè)備中獨(dú)立運(yùn)行的一種數(shù)據(jù)庫系統(tǒng),用以處理大量的、時效性強(qiáng)且有嚴(yán)格時序的數(shù)據(jù),它以高可靠性、高實(shí)時性和高信息吞吐量為目標(biāo),其數(shù)據(jù)的正確性不僅依賴于邏輯結(jié)果,而且依賴于邏輯結(jié)果產(chǎn)生的時間。圖1是一個嵌入式應(yīng)用的基本構(gòu)架,整個嵌入式RTDBS構(gòu)建于實(shí)時操作系統(tǒng)之上。由于嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng)在運(yùn)行環(huán)境和運(yùn)行方式上與常見的企業(yè)級數(shù)據(jù)庫管理系統(tǒng)有很大差別,因此,傳統(tǒng)的企業(yè)數(shù)據(jù)庫如Oracle、Sybase等在實(shí)時嵌入式環(huán)境下很難發(fā)揮作用,尤其在一些實(shí)時性要求很高的控制系統(tǒng)中,傳統(tǒng)數(shù)據(jù)庫更顯得無能為力。因此,伴隨著各種商用嵌入式實(shí)時操作系統(tǒng)的出現(xiàn),研究嵌入式環(huán)境下的實(shí)時數(shù)據(jù)庫系統(tǒng)成為嵌入式軟件中的一項(xiàng)重要內(nèi)容。
圖1 嵌入式應(yīng)用基本結(jié)構(gòu)
嵌入式RTDBS內(nèi)涵及其體系結(jié)構(gòu)
目前嵌入式系統(tǒng)開發(fā)中,在實(shí)時數(shù)據(jù)庫問題上的多數(shù)看法是,嵌入式RTDBS從本質(zhì)上說是一個“內(nèi)存數(shù)據(jù)庫”,是一個由應(yīng)用程序管理的內(nèi)存緩沖池,它在系統(tǒng)中的作用就是一個供多個實(shí)時任務(wù)共同使用的共享數(shù)據(jù)區(qū)。這種數(shù)據(jù)庫實(shí)際上是一個嵌入在用戶應(yīng)用軟件中的與應(yīng)用程序不可分割的部分,其功能主要是數(shù)據(jù)的存和取,不具有獨(dú)立性,不是一個真正意義上的數(shù)據(jù)庫系統(tǒng)。一個完整的嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng)除了包括內(nèi)存數(shù)據(jù)庫外,還應(yīng)當(dāng)含有歷史數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)DBMS及提供給用戶的接口函數(shù),整個數(shù)據(jù)庫可由DBMS完成對數(shù)據(jù)庫的具體配置及各種操作,例如系統(tǒng)運(yùn)行前根據(jù)實(shí)際需要對內(nèi)存數(shù)據(jù)庫中的記錄節(jié)點(diǎn)進(jìn)行增減等配置操作。目前的嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng)可分為兩大類,一類是商用級的嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng),它獨(dú)立于具體的應(yīng)用軟件,如美國McObject公司提供的eXtremeDB內(nèi)存式實(shí)時數(shù)據(jù)庫,這是一種專門為嵌入式系統(tǒng)數(shù)據(jù)庫管理而編寫的實(shí)時數(shù)據(jù)庫,它將數(shù)據(jù)庫直接建立在內(nèi)存之中,并根據(jù)應(yīng)用特征產(chǎn)生數(shù)據(jù)庫API,用戶可方便的調(diào)用這些接口函數(shù)管理整個數(shù)據(jù)庫系統(tǒng);另一類是用戶針對具體的應(yīng)用對象而自行設(shè)計開發(fā)的嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng),這種數(shù)據(jù)庫一般是嵌入到應(yīng)用軟件中作為應(yīng)用程序的一部分,不具有獨(dú)立性,目前測控系統(tǒng)中用戶開發(fā)的實(shí)時數(shù)據(jù)庫大都屬于這種情況。
圖2 嵌入式RTDBS系統(tǒng)結(jié)構(gòu)
圖2所示的是一個嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu),同傳統(tǒng)的數(shù)據(jù)庫一樣,它仍然是一種三級模式的結(jié)構(gòu)體系,即用戶模式、邏輯模式和存儲模式。在嵌入式環(huán)境下構(gòu)建實(shí)時數(shù)據(jù)庫系統(tǒng),應(yīng)該完成以下功能:高效的數(shù)據(jù)存取機(jī)制、數(shù)據(jù)安全性控制、實(shí)時事務(wù)管理機(jī)制、數(shù)據(jù)庫的恢復(fù)機(jī)制等,設(shè)計中更關(guān)心的是系統(tǒng)的實(shí)時性、開銷大小、系統(tǒng)性能、可靠性、可預(yù)知性和底層控制能力,即如何針對選用的實(shí)時OS和嵌入式硬件平臺設(shè)計合理的數(shù)據(jù)模型和物理結(jié)構(gòu),重點(diǎn)放在如何高效的利用嵌入式系統(tǒng)的有限資源、如何提高數(shù)據(jù)的存取速度、如何進(jìn)行數(shù)據(jù)保護(hù)、數(shù)據(jù)交換、查詢/ 事務(wù)處理算法的優(yōu)化、事務(wù)的優(yōu)先級分派、事務(wù)調(diào)度和并發(fā)控制等等。
嵌入式RTDBS的數(shù)據(jù)模型
嵌入式實(shí)時數(shù)據(jù)庫系統(tǒng)的關(guān)鍵是數(shù)據(jù)模型的確立,它決定了數(shù)據(jù)被訪問和操作的方式,應(yīng)用程序的性能和可靠性也大部分取決于此。目前嵌入式環(huán)境下的數(shù)據(jù)庫系統(tǒng)多數(shù)采用了關(guān)系模型結(jié)構(gòu),這也是商用數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型,該模型結(jié)構(gòu)是利用二維關(guān)系表來實(shí)現(xiàn)數(shù)據(jù)存儲,利用索引訪問和查詢數(shù)據(jù),這種模型結(jié)構(gòu)是建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上的,結(jié)構(gòu)簡單靈活,獨(dú)立性好,但在嵌入式環(huán)境下的內(nèi)存開銷和數(shù)據(jù)冗余較大,用戶必須對其進(jìn)行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫系統(tǒng)的難度;有些嵌入式數(shù)據(jù)庫則采用了網(wǎng)狀模型結(jié)構(gòu),該模型通過指針來確定數(shù)據(jù)間的顯式連接關(guān)系,它比關(guān)系模型中利用冗余數(shù)據(jù)和索引文件要節(jié)約大量的存儲空間,具有一定的數(shù)據(jù)獨(dú)立性和共享特性,運(yùn)行效率較高,而且由于它避免了索引操作,比關(guān)系型數(shù)據(jù)庫模式要節(jié)省存儲空間,數(shù)據(jù)操作速度也更快。但是這種模型結(jié)構(gòu)比較復(fù)雜,尤其當(dāng)嵌入式系統(tǒng)規(guī)模增大時,其數(shù)據(jù)庫的結(jié)構(gòu)變得非常龐大,可能會影響到系統(tǒng)的實(shí)時性能。圖3所示的是在相同數(shù)目的記錄下,關(guān)系模型和網(wǎng)狀模型的系統(tǒng)開銷比較,從圖中可以看出,網(wǎng)狀模型因?yàn)楸苊饬怂饕僮魇沟闷溟_銷要小于關(guān)系模型。但是在實(shí)際應(yīng)用中,應(yīng)當(dāng)根據(jù)實(shí)時系統(tǒng)的綜合性能選取數(shù)據(jù)庫模型,通??刹捎镁W(wǎng)狀加關(guān)系或?qū)哟渭雨P(guān)系的混合模型結(jié)構(gòu)以彌補(bǔ)兩種結(jié)構(gòu)之間的缺陷,如CENTURA公司的嵌入式實(shí)時數(shù)據(jù)庫RDM(Raima Database Management),它將網(wǎng)狀和關(guān)系模型的優(yōu)點(diǎn)結(jié)合起來,避免了不必要的索引開銷,顯著地減少系統(tǒng)存儲空間、I/O操作和CPU周期,由于其快速而且可靠性高的特點(diǎn),廣泛應(yīng)用于許多嵌入式產(chǎn)品中。
圖3 關(guān)系和網(wǎng)狀模型開銷比較
評論