《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 嵌入式數(shù)據(jù)庫(kù)系統(tǒng)在ACR中的應(yīng)用研究

嵌入式數(shù)據(jù)庫(kù)系統(tǒng)在ACR中的應(yīng)用研究

2008-07-24
作者:朱 玉, 賀 磊, 張 研, 明

  摘 要: 研究了嵌入式數(shù)據(jù)庫(kù)" title="嵌入式數(shù)據(jù)庫(kù)">嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及存儲(chǔ)機(jī)制,并提出了嵌入式數(shù)據(jù)庫(kù)實(shí)現(xiàn)的關(guān)鍵技術(shù)。
  關(guān)鍵詞: 嵌入式數(shù)據(jù)庫(kù) 數(shù)據(jù)模型 存儲(chǔ)機(jī)制 關(guān)鍵技術(shù)


  隨著嵌入式應(yīng)用向分散化、小型化的方向延伸,智能的網(wǎng)絡(luò)設(shè)備(如交換機(jī)、路由器)、PDA、SmartPhone、信息家電等越來(lái)越多地走進(jìn)了人們的生活。類(lèi)似這些對(duì)信息量要求不大,可以方便存取數(shù)據(jù)的環(huán)境都需要一個(gè)小的數(shù)據(jù)庫(kù)管理系統(tǒng)管理信息,這就有了嵌入式數(shù)據(jù)庫(kù)的需求。在大規(guī)模匯聚路由器系統(tǒng)性能與關(guān)鍵技術(shù)研究(ACR)中對(duì)分布式用戶(hù)參數(shù)表的管理采用嵌入式數(shù)據(jù)庫(kù)系統(tǒng)" title="數(shù)據(jù)庫(kù)系統(tǒng)">數(shù)據(jù)庫(kù)系統(tǒng)對(duì)用戶(hù)信息進(jìn)行管理。
  嵌入式數(shù)據(jù)庫(kù)以高可靠性、高實(shí)時(shí)性和高信息吞吐量為目標(biāo),其數(shù)據(jù)的正確性不僅依賴(lài)于邏輯結(jié)果,而且依賴(lài)于邏輯結(jié)果產(chǎn)生的時(shí)間。圖1是一個(gè)嵌入式數(shù)據(jù)庫(kù)應(yīng)用的基本框架,整個(gè)嵌入式數(shù)據(jù)庫(kù)構(gòu)建于嵌入式操作系統(tǒng)之上。由于嵌入式數(shù)據(jù)庫(kù)在運(yùn)行環(huá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ú)能為力。


1嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)涵及其體系結(jié)構(gòu)
  目前嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)開(kāi)發(fā)中,對(duì)嵌入式數(shù)據(jù)庫(kù)問(wèn)題的多數(shù)看法是,嵌入式數(shù)據(jù)庫(kù)從本質(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è)嵌入在用戶(hù)應(yīng)用軟件" title="應(yīng)用軟件">應(yīng)用軟件中的與應(yīng)用程序不可分割的部分,其功能主要是數(shù)據(jù)的存和取,不具有獨(dú)立性,不是一個(gè)真正意義上的數(shù)據(jù)庫(kù)系統(tǒng)。一個(gè)完整的嵌入式" title="的嵌入式">的嵌入式數(shù)據(jù)庫(kù)系統(tǒng)除了包括內(nèi)存數(shù)據(jù)庫(kù)外,還應(yīng)當(dāng)含有歷史數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS及提供給用戶(hù)的接口函數(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ù)據(jù)庫(kù)系統(tǒng)可分為兩大類(lèi),一類(lèi)是商用級(jí)的嵌入式數(shù)據(jù)庫(kù)系統(tǒng),它獨(dú)立于具體的應(yīng)用軟件,如美國(guó)McObject公司提供的eXtremeDB內(nèi)存式實(shí)時(shí)數(shù)據(jù)庫(kù),這是一種專(zhuān)門(mén)為嵌入式系統(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,用戶(hù)可方便地調(diào)用這些接口函數(shù)管理整個(gè)數(shù)據(jù)庫(kù)系統(tǒng);另一類(lèi)是用戶(hù)針對(duì)具體的應(yīng)用對(duì)象而自行設(shè)計(jì)開(kāi)發(fā)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),這種數(shù)據(jù)庫(kù)一般嵌入到應(yīng)用軟件中作為應(yīng)用程序的一部分,不具有獨(dú)立性。


  一個(gè)嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)如圖2所示。與傳統(tǒng)的數(shù)據(jù)庫(kù)一樣,它仍然是一種三級(jí)模式的結(jié)構(gòu)體系,即用戶(hù)模式、邏輯模式和存儲(chǔ)模式。在嵌入式環(huán)境下構(gòu)建數(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)銷(xiāo)大小、系統(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ù)交換、查詢(xún)/事務(wù)處理算法的優(yōu)化、事務(wù)的優(yōu)先級(jí)分派、事務(wù)調(diào)度和并發(fā)控制等。
2 嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)模型
  嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)鍵是數(shù)據(jù)模型的確定,它決定了數(shù)據(jù)的被訪問(wèn)和操作的方式,應(yīng)用程序的性能和可靠性也主要取決于此。目前嵌入式數(shù)據(jù)庫(kù)系統(tǒng)多數(shù)采用關(guān)系模型結(jié)構(gòu)。該模型用二維關(guān)系表實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),利用索引訪問(wèn)和查詢(xún)數(shù)據(jù)。這種模型結(jié)構(gòu)建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上,結(jié)構(gòu)簡(jiǎn)單靈活,獨(dú)立性好,但在嵌入式環(huán)境下的內(nèi)存開(kāi)銷(xiāo)和數(shù)據(jù)冗余較大,因此必須對(duì)其進(jìn)行優(yōu)化,增加了開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)的難度。有些嵌入式數(shù)據(jù)庫(kù)采用了網(wǎng)狀模型結(jié)構(gòu),該模型通過(guò)指針確定數(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)銷(xiāo)比較。從圖3可以看出,網(wǎng)狀模型因?yàn)楸苊饬怂饕僮魇沟闷溟_(kāi)銷(xiāo)要小于關(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)之間的缺陷,如將網(wǎng)狀和關(guān)系模型的優(yōu)點(diǎn)結(jié)合,可以避免不必要的索引開(kāi)銷(xiāo),顯著地減少系統(tǒng)存儲(chǔ)空間、I/O操作和CPU周期,數(shù)據(jù)操作快速而且可靠性高。


3 嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的存取機(jī)制
  嵌入式數(shù)據(jù)庫(kù)系統(tǒng)所處理的事務(wù)通常是實(shí)時(shí)事務(wù),事務(wù)調(diào)度的正確性依賴(lài)于高效的處理和預(yù)測(cè)能力。由于I/O速度比較慢,磁盤(pán)延遲時(shí)間難以預(yù)測(cè),因此嵌入式數(shù)據(jù)庫(kù)系統(tǒng)通常采用主存數(shù)據(jù)庫(kù)技術(shù),存取機(jī)制的主要目的是提高CPU的利用率和節(jié)約主存空間。
  經(jīng)典的存取機(jī)制主要分三大類(lèi)[1]:一類(lèi)是基于HASH函數(shù)的存取機(jī)制,如可擴(kuò)展HASH(EH)、線性HASH、受控查詢(xún)多方向HASH(CSMH)等;另一類(lèi)是基于查詢(xún)樹(shù)的機(jī)制,如B樹(shù)、B*樹(shù)、AVL樹(shù)、T樹(shù)、T*樹(shù)等;此外,ChanhoRyu等提出了一種綜合了HASH表和查詢(xún)樹(shù)特點(diǎn)的查詢(xún)機(jī)制Hybrid—TH,已經(jīng)證明它顯著提高了查詢(xún)效率。
  Hybrid—TH將樹(shù)索引和HASH索引有機(jī)地結(jié)合,大大降低了查詢(xún)的時(shí)間復(fù)雜度。HASH表的每個(gè)元素有三個(gè)域:①數(shù)據(jù)對(duì)象的關(guān)鍵字;②指向?qū)?yīng)樹(shù)結(jié)點(diǎn)的指針(該數(shù)據(jù)對(duì)象保留在該結(jié)點(diǎn)中);③指向溢出鏈的指針。T樹(shù)是在一個(gè)結(jié)點(diǎn)中有多個(gè)數(shù)據(jù)對(duì)象的二叉樹(shù),它遵循AVL的特性,在每個(gè)結(jié)點(diǎn)中,數(shù)據(jù)對(duì)象按升序排序,指針par、lsub和rsub分別指向該結(jié)點(diǎn)的父結(jié)點(diǎn)、左子樹(shù)和右子樹(shù)。
  數(shù)據(jù)的存取機(jī)制關(guān)系到系統(tǒng)的效率。在嵌入式數(shù)據(jù)庫(kù)系統(tǒng)中,由于內(nèi)存非常寶貴,同時(shí)沒(méi)有費(fèi)時(shí)的I/O操作,存取機(jī)制的設(shè)計(jì)目標(biāo)是節(jié)約存儲(chǔ)空間,同時(shí)盡可能提高處理速度,這一點(diǎn)在嵌入式數(shù)據(jù)庫(kù)設(shè)計(jì)中要特別注意。
4 嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)鍵技術(shù)
4.1大量更短、更快的處理過(guò)程

  嵌入式系統(tǒng)應(yīng)該具備非常高的數(shù)據(jù)處理速率,而單一處理過(guò)程的持續(xù)時(shí)間應(yīng)該十分短暫(單一處理過(guò)程是指對(duì)數(shù)據(jù)進(jìn)行的一次基本操作,包括只讀、寫(xiě)入或讀寫(xiě))。例如,機(jī)頂盒以10MB/s的速率從衛(wèi)星上接收電子信息;IP路由器每秒可進(jìn)行10萬(wàn)次路由處理等。
  因此,嵌入式數(shù)據(jù)庫(kù)系統(tǒng)必須滿足應(yīng)用軟件的“實(shí)時(shí)”需要。這要求有極其輕便、靈敏的數(shù)據(jù)傳送管理。由于系統(tǒng)架構(gòu)間的各種通信延遲都將對(duì)速度產(chǎn)生巨大的影響,因此應(yīng)用進(jìn)程必須能與數(shù)據(jù)管理軟件直接交互作用。
  此外,由于嵌入式系統(tǒng)的不同任務(wù)有著不同的優(yōu)先權(quán),而且它們可以動(dòng)態(tài)改變,因此嵌入式數(shù)據(jù)庫(kù)系統(tǒng)可以根據(jù)操作環(huán)境的變化,對(duì)數(shù)據(jù)管理過(guò)程的優(yōu)先權(quán)進(jìn)行排列。例如,為了適應(yīng)輸入速率的提高,數(shù)據(jù)輸入系統(tǒng)必須對(duì)它的數(shù)據(jù)處理進(jìn)程進(jìn)行調(diào)節(jié),以便釋放輸入緩存,避免數(shù)據(jù)丟失。在理想情況下,應(yīng)用軟件可以提高寫(xiě)入數(shù)據(jù)相關(guān)處理過(guò)程的優(yōu)先權(quán),從而迅速清空輸入緩存,但同時(shí)要犧牲其它處理過(guò)程的優(yōu)先權(quán),例如數(shù)據(jù)查詢(xún)、數(shù)據(jù)讀取等。當(dāng)高峰過(guò)后,所有優(yōu)先權(quán)排列情況便又恢復(fù)到正常的狀態(tài)。
4.2 可分享數(shù)據(jù)和事件處理
  嵌入式實(shí)時(shí)運(yùn)算是一種典型的由事件推動(dòng)的操作過(guò)程,它會(huì)對(duì)外界資源的中斷做出相應(yīng)的反應(yīng)。新數(shù)據(jù)或發(fā)生變化的數(shù)據(jù)都會(huì)引發(fā)系統(tǒng)對(duì)它進(jìn)行處理,例如,一個(gè)IP路由器向其它路由器發(fā)送一個(gè)路徑選擇表等。為了避免定期對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)查詢(xún)過(guò)程中出現(xiàn)不必要的處理過(guò)程,嵌入式數(shù)據(jù)庫(kù)系統(tǒng)采用將事件傳播到其它關(guān)聯(lián)軟件模塊的方法共享事件處理。例如,一個(gè)由傳感器產(chǎn)生的中斷會(huì)導(dǎo)致數(shù)據(jù)庫(kù)中的某個(gè)數(shù)值發(fā)生變化。這一變化最終將導(dǎo)致一個(gè)數(shù)據(jù)庫(kù)事件,而這一事件將通知其它的相關(guān)軟件模塊所發(fā)生的變化。
4.3 對(duì)復(fù)雜數(shù)據(jù)的管理及設(shè)計(jì)靈活性
  嵌入式系統(tǒng)經(jīng)常需要對(duì)高度復(fù)雜的數(shù)據(jù)進(jìn)行管理。一個(gè)理想的嵌入式數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)能夠在一特殊的結(jié)構(gòu)中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行讀寫(xiě)。對(duì)于C語(yǔ)言程序員來(lái)說(shuō),這意味著嵌入式結(jié)構(gòu)、嵌套結(jié)構(gòu)、原子類(lèi)型中固定或不固定長(zhǎng)度的各類(lèi)陣列、白底或隱式數(shù)據(jù),以及可選擇數(shù)據(jù)單元。數(shù)據(jù)庫(kù)的真正價(jià)值在于可以根據(jù)不同的標(biāo)準(zhǔn)進(jìn)行檢索。嵌入式數(shù)據(jù)庫(kù)則需要支持單一或復(fù)合索引。理想情況下,數(shù)據(jù)庫(kù)可以提供可由程序激活或關(guān)閉的索引。
4.4 數(shù)據(jù)定義與源代碼分離
  嵌入式數(shù)據(jù)庫(kù)系統(tǒng)還應(yīng)具備將數(shù)據(jù)定義從應(yīng)用軟件源代碼中分離出來(lái)的能力,從而可以使用戶(hù)更靈活、更簡(jiǎn)單地對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改。這一點(diǎn)需要通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)庫(kù)主義語(yǔ)言(DDL)實(shí)現(xiàn)。DDL主要用來(lái)表達(dá)數(shù)據(jù)組、數(shù)據(jù)屬性(大小和類(lèi)型)、獲取方法及數(shù)據(jù)的其它特征。編譯程序可以對(duì)DDL進(jìn)行編譯,驗(yàn)證其正確性,以供數(shù)據(jù)庫(kù)管理系統(tǒng)軟件使用。
4.5 數(shù)據(jù)的高有效性
  諸如通信和網(wǎng)絡(luò)基礎(chǔ)架構(gòu)之類(lèi)的嵌入式系統(tǒng)必須十分健壯,即使在硬件或軟件發(fā)生故障時(shí)也必須能正常工作。對(duì)于嵌入式數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),這就意味著即使在所依附的硬件發(fā)生故障的條件下,仍然確保數(shù)據(jù)安全。當(dāng)然,數(shù)據(jù)庫(kù)必須備份到其它的硬盤(pán)上,簡(jiǎn)單地映射或復(fù)制是不夠的。嵌入式數(shù)據(jù)庫(kù)必須保證主數(shù)據(jù)庫(kù)的所有備份數(shù)據(jù)庫(kù)無(wú)論何時(shí)都是同步的。
4.6 與其它系統(tǒng)共享數(shù)據(jù)
  判斷一個(gè)企業(yè)運(yùn)營(yíng)情況,通常要對(duì)企業(yè)的數(shù)據(jù)進(jìn)行收集、整理和分析。事實(shí)上,企業(yè)或組織的所有嵌入式系統(tǒng)和設(shè)備都要隨著用戶(hù)數(shù)據(jù)收集能力、傳輸和獲取需求的增加而不斷升級(jí)。因此,嵌入式數(shù)據(jù)庫(kù)系統(tǒng)必須要能與企業(yè)中的其它系統(tǒng)進(jìn)行數(shù)據(jù)共享。XML正在成為受歡迎的解決方案。嵌入式數(shù)據(jù)庫(kù)應(yīng)該能兼容XML技術(shù)。XML是一種開(kāi)放式標(biāo)準(zhǔn),它擁有大量的技術(shù)信息及開(kāi)放系統(tǒng)軟件的支持。軟件開(kāi)發(fā)人員都希望可以將XML的兼容性集成到自行開(kāi)發(fā)的數(shù)據(jù)庫(kù)管理解決方案中。
  目前,嵌入式數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)還存在許多問(wèn)題需要解決,在實(shí)際應(yīng)用中的性能也有待進(jìn)一步提高。其關(guān)鍵在于系統(tǒng)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的存取速度、實(shí)時(shí)事務(wù)的優(yōu)先級(jí)調(diào)度、故障恢復(fù)問(wèn)題,這是提高嵌入式數(shù)據(jù)庫(kù)系統(tǒng)性能的關(guān)鍵,也是數(shù)據(jù)庫(kù)系統(tǒng)理論的研究重點(diǎn)。


參考文獻(xiàn)
1 夏家莉. H-T:一種適用于嵌入式數(shù)據(jù)庫(kù)系統(tǒng)的存取機(jī)制[J].計(jì)算機(jī)應(yīng)用與軟件,2002;(12)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。