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