《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 嵌入式數據庫系統在ACR中的應用研究

嵌入式數據庫系統在ACR中的應用研究

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

  摘 要: 研究了嵌入式數據庫" title="嵌入式數據庫">嵌入式數據庫系統的體系結構、數據結構及存儲機制,并提出了嵌入式數據庫實現的關鍵技術。
  關鍵詞: 嵌入式數據庫 數據模型 存儲機制 關鍵技術


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


1嵌入式數據庫系統的內涵及其體系結構
  目前嵌入式系統" title="嵌入式系統">嵌入式系統開發中,對嵌入式數據庫問題的多數看法是,嵌入式數據庫從本質上說是一個“內存數據庫”,是一個由應用程序管理的內存緩沖池,它在系統中的作用就是一個供多個實時任務共同使用的共享數據區。這種數據庫實際上是一個嵌入在用戶應用軟件" title="應用軟件">應用軟件中的與應用程序不可分割的部分,其功能主要是數據的存和取,不具有獨立性,不是一個真正意義上的數據庫系統。一個完整的嵌入式" title="的嵌入式">的嵌入式數據庫系統除了包括內存數據庫外,還應當含有歷史數據庫和數據庫管理系統DBMS及提供給用戶的接口函數,整個數據庫可由DBMS完成對數據庫的具體配置及各種操作,例如系統運行前根據實際需要對內存數據庫中的記錄節點進行增減等配置操作。目前的嵌入式數據庫系統可分為兩大類,一類是商用級的嵌入式數據庫系統,它獨立于具體的應用軟件,如美國McObject公司提供的eXtremeDB內存式實時數據庫,這是一種專門為嵌入式系統數據庫管理而編寫的實時數據庫,它將數據庫直接建立在內存之中,并根據應用特征產生數據庫API,用戶可方便地調用這些接口函數管理整個數據庫系統;另一類是用戶針對具體的應用對象而自行設計開發的嵌入式實時數據庫系統,這種數據庫一般嵌入到應用軟件中作為應用程序的一部分,不具有獨立性。


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


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

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


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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日韩亚洲欧美视频 | 日本无翼乌邪恶彩色大全 | 免费看v片网站 | 精品视频一区二区三区在线观看 | 性欧洲黑人巨大videos | 国产日韩欧美视频在线 | 日日噜噜噜夜夜爽爽狠狠 | 青草青草久热精品视频在线网站 | 九九九在线视频 | 蜜桃视频黄 | 欧美丝袜足交 | 开心激情五月婷婷 | 天天摸日日 | 天天操夜夜操视频 | 亚洲欧美一区二区三区图片 | 午夜精品网站 | 日韩一区二区三区四区区区 | 亚洲日韩精品欧美一区二区一 | 午夜影院在线免费 | 欧美色精品天天在线观看视频 | 男人女人真曰批的视频动态 | 成人免费专区 | 一级欧美一级日韩片 | 国产黄色小视频 | 黄色三级视频 | 一级午夜免费视频 | 黄色片com| 午夜黄| 亚洲午夜精品久久久久久人妖 | 成年轻人网站色 免费看 | 日韩免费影院 | 大又大又粗又爽又黄毛片女人 | 亚洲福利区 | 国产成人综合在线 | 黄色激情网站 | 免费视频网站一级人爱视频 | 国产精品免费久久 | 欧美日韩视频一区二区三区 | 91精品国产闺蜜国产在线 | 亚洲欧美日韩成人一区在线 | 成年女人毛片免费观看不卡 |