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

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

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

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


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


1嵌入式數(shù)據(jù)庫系統(tǒng)的內(nèi)涵及其體系結(jié)構(gòu)
  目前嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)開發(fā)中,對嵌入式數(shù)據(jù)庫問題的多數(shù)看法是,嵌入式數(shù)據(jù)庫從本質(zhì)上說是一個“內(nèi)存數(shù)據(jù)庫”,是一個由應(yīng)用程序管理的內(nèi)存緩沖池,它在系統(tǒng)中的作用就是一個供多個實時任務(wù)共同使用的共享數(shù)據(jù)區(qū)。這種數(shù)據(jù)庫實際上是一個嵌入在用戶應(yīng)用軟件" title="應(yīng)用軟件">應(yīng)用軟件中的與應(yīng)用程序不可分割的部分,其功能主要是數(shù)據(jù)的存和取,不具有獨立性,不是一個真正意義上的數(shù)據(jù)庫系統(tǒng)。一個完整的嵌入式" title="的嵌入式">的嵌入式數(shù)據(jù)庫系統(tǒng)除了包括內(nèi)存數(shù)據(jù)庫外,還應(yīng)當含有歷史數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)DBMS及提供給用戶的接口函數(shù),整個數(shù)據(jù)庫可由DBMS完成對數(shù)據(jù)庫的具體配置及各種操作,例如系統(tǒng)運行前根據(jù)實際需要對內(nèi)存數(shù)據(jù)庫中的記錄節(jié)點進行增減等配置操作。目前的嵌入式數(shù)據(jù)庫系統(tǒng)可分為兩大類,一類是商用級的嵌入式數(shù)據(jù)庫系統(tǒng),它獨立于具體的應(yīng)用軟件,如美國McObject公司提供的eXtremeDB內(nèi)存式實時數(shù)據(jù)庫,這是一種專門為嵌入式系統(tǒng)數(shù)據(jù)庫管理而編寫的實時數(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ù)據(jù)庫系統(tǒng),這種數(shù)據(jù)庫一般嵌入到應(yīng)用軟件中作為應(yīng)用程序的一部分,不具有獨立性。


  一個嵌入式數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)如圖2所示。與傳統(tǒng)的數(shù)據(jù)庫一樣,它仍然是一種三級模式的結(jié)構(gòu)體系,即用戶模式、邏輯模式和存儲模式。在嵌入式環(huán)境下構(gòu)建數(shù)據(jù)庫系統(tǒng)應(yīng)該完成以下功能:高效的數(shù)據(jù)存取機制、數(shù)據(jù)安全性控制、實時事務(wù)管理機制、數(shù)據(jù)庫的恢復(fù)機制等。本設(shè)計中更關(guān)心系統(tǒng)的實時性、開銷大小、系統(tǒng)性能、可靠性、可預(yù)知性和底層控制能力,即如何針對選用的實時OS和嵌入式硬件平臺設(shè)計合理的數(shù)據(jù)模型和物理結(jié)構(gòu),重點放在如何高效地利用嵌入式系統(tǒng)的有限資源、提高數(shù)據(jù)的存取速度、進行數(shù)據(jù)保護、數(shù)據(jù)交換、查詢/事務(wù)處理算法的優(yōu)化、事務(wù)的優(yōu)先級分派、事務(wù)調(diào)度和并發(fā)控制等。
2 嵌入式數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型
  嵌入式數(shù)據(jù)庫系統(tǒng)的關(guān)鍵是數(shù)據(jù)模型的確定,它決定了數(shù)據(jù)的被訪問和操作的方式,應(yīng)用程序的性能和可靠性也主要取決于此。目前嵌入式數(shù)據(jù)庫系統(tǒng)多數(shù)采用關(guān)系模型結(jié)構(gòu)。該模型用二維關(guān)系表實現(xiàn)數(shù)據(jù)存儲,利用索引訪問和查詢數(shù)據(jù)。這種模型結(jié)構(gòu)建立在嚴格的數(shù)學(xué)基礎(chǔ)上,結(jié)構(gòu)簡單靈活,獨立性好,但在嵌入式環(huán)境下的內(nèi)存開銷和數(shù)據(jù)冗余較大,因此必須對其進行優(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ù)獨立性和共享特性,運行效率較高。而且由于它避免了索引操作,比關(guān)系型數(shù)據(jù)庫模式要節(jié)省存儲空間,數(shù)據(jù)操作速度也更快。但是這種模型結(jié)構(gòu)比較復(fù)雜,尤其當嵌入式系統(tǒng)規(guī)模增大時,其數(shù)據(jù)庫的結(jié)構(gòu)變得非常龐大,可能會影響到系統(tǒng)的實時性能。圖3所示是在相同數(shù)目的記錄下,關(guān)系模型與網(wǎng)狀模型的系統(tǒng)開銷比較。從圖3可以看出,網(wǎng)狀模型因為避免了索引操作使得其開銷要小于關(guān)系模型。但是在實際應(yīng)用中,應(yīng)當根據(jù)實時系統(tǒng)的綜合性能選取數(shù)據(jù)庫模型。通常可采用網(wǎng)狀加關(guān)系或?qū)哟渭雨P(guān)系的混合模型結(jié)構(gòu)以彌補兩種結(jié)構(gòu)之間的缺陷,如將網(wǎng)狀和關(guān)系模型的優(yōu)點結(jié)合,可以避免不必要的索引開銷,顯著地減少系統(tǒng)存儲空間、I/O操作和CPU周期,數(shù)據(jù)操作快速而且可靠性高。


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

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


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

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