嵌入式實時資料庫系統

嵌入式實時資料庫系統

嵌入式實時資料庫系統(rtdbs)是指可在嵌入式設備中獨立運行的一種資料庫系統,用以處理大量的、時效性強且有嚴格時序的數據,它以高可靠性、高實時性和高信息吞吐量為目標,其數據的正確性不僅依賴於邏輯結果,而且依賴於邏輯結果產生的時間。

嵌入式實時資料庫系統的概述,嵌入式實時資料庫系統的內涵及體系結構,嵌入式實時資料庫系統的數據模型,嵌入式實時資料庫系統的管理系統,

嵌入式實時資料庫系統的概述

圖1是一個嵌入式套用的基本構架,整個嵌入式rtdbs構建於實時作業系統之上。由於嵌入式實時資料庫系統在運行環境和運行方式上與常見的企業級資料庫管理系統有很大差別,因此,傳統的企業資料庫如oracle、sybase等在實時嵌入式環境下很難發揮作用,尤其在一些實時性要求很高的控制系統中,傳統資料庫更顯得無能為力。因此,伴隨著各種商用嵌入式實時作業系統的出現,研究嵌入式環境下的實時資料庫系統成為嵌入式軟體中的一項重要內容。

嵌入式實時資料庫系統的內涵及體系結構

目前嵌入式系統開發中,在實時資料庫問題上的多數看法是,嵌入式rtdbs從本質上說是一個“記憶體資料庫”,是一個由應用程式管理的記憶體緩衝池,它在系統中的作用就是一個供多個實時任務共同使用的共享數據區。這種資料庫實際上是一個嵌入在用戶套用軟體中的與應用程式不可分割的部分,其功能主要是數據的存和取,不具有獨立性,不是一個真正意義上的資料庫系統。一個完整的嵌入式實時資料庫系統除了包括記憶體資料庫外,還應當含有歷史資料庫和資料庫管理系統dbms及提供給用戶的接口函式,整個資料庫可由dbms完成對資料庫的具體配置及各種操作,例如系統運行前根據實際需要對記憶體資料庫中的記錄節點進行增減等配置操作。目前的嵌入式實時資料庫系統可分為兩大類,一類是商用級的嵌入式實時資料庫系統,它獨立於具體的套用軟體,如美國mcobject公司提供的extremedb記憶體式實時資料庫,這是一種專門為嵌入式系統資料庫管理而編寫的實時資料庫,它將資料庫直接建立在記憶體之中,並根據套用特徵產生資料庫api,用戶可方便的調用這些接口函式管理整個資料庫系統;另一類是用戶針對具體的套用對象而自行設計開發的嵌入式實時資料庫系統,這種資料庫一般是嵌入到套用軟體中作為應用程式的一部分,不具有獨立性,目前測控系統中用戶開發的實時資料庫大都屬於這種情況。

嵌入式實時資料庫系統的數據模型

嵌入式實時資料庫系統的關鍵是數據模型的確立,它決定了數據被訪問和操作的方式,應用程式的性能和可靠性也大部分取決於此。目前嵌入式環境下的資料庫系統多數採用了關係模型結構,這也是商用資料庫系統的數據模型,該模型結構是利用二維關係表來實現數據存儲,利用索引訪問和查詢數據,這種模型結構是建立在嚴格的數學基礎上的,結構簡單靈活,獨立性好,但在嵌入式環境下的記憶體開銷和數據冗餘較大,用戶必須對其進行最佳化,增加了開發資料庫系統的難度;有些嵌入式資料庫則採用了網狀模型結構,該模型通過指針來確定數據間的顯式連線關係,它比關係模型中利用冗餘數據和索引檔案要節約大量的存儲空間,具有一定的數據獨立性和共享特性,運行效率較高,而且由於它避免了索引操作,比關係型資料庫模式要節省存儲空間,數據操作速度也更快。但是這種模型結構比較複雜,尤其當嵌入式系統規模增大時,其資料庫的結構變得非常龐大,可能會影響到系統的實時性能。圖3所示的是在相同數目的記錄下,關係模型和網狀模型的系統開銷比較,從圖中可以看出,網狀模型因為避免了索引操作使得其開銷要小於關係模型。但是在實際套用中,應當根據實時系統的綜合性能選取資料庫模型,通常可採用網狀加關係或層次加關係的混合模型結構以彌補兩種結構之間的缺陷,如centura公司的嵌入式實時資料庫rdm(raima database management),它將網狀和關係模型的優點結合起來,避免了不必要的索引開銷,顯著地減少系統存儲空間、i/o操作和cpu周期,由於其快速而且可靠性高的特點,廣泛套用於許多嵌入式產品中。

嵌入式實時資料庫系統的管理系統

嵌入式rtdbs系統是介於用戶和實時作業系統之間的一層軟體,由眾多程式模組組成,它的作用是對資料庫中的共享數據進行有效的組織、管理和存取,其結構如圖4所示。其中,存儲空間管理模組、安全性和完整性控制模組、事務並發控制模組、實時數據轉儲模組、運行日誌管理模組是在嵌入式環境下開發實時資料庫系統需要特別解決的幾個問題:  (1)存儲空間管理模組。嵌入式實時資料庫系統由於採用了記憶體資料庫技術,必然要涉及到嵌入式作業系統的記憶體管理,因此,用戶必須了解系統對記憶體的分配機制,並設計自己的記憶體管理程式。系統運行時,由該模組通過實時os向系統申請記憶體緩衝區,作為共享的記憶體數據區使用。之後,將歷史資料庫中的初始化數據調入記憶體區對這些空白記憶體進行初始化。對記憶體空間的申請,用戶可採用靜態分配方式,這種方式實現簡單,無需複雜的索引結構,缺點是失去了靈活性,必須在設計階段就預先知道所需記憶體並對之作出分配;或者採用動態分配方式,這種方式使用靈活,可以根據需要擴充數據節點,但是必須建立合適的索引結構,以加快數據的檢索時間。該模組要根據具體的實時os進行設計;  (2)數據安全性、完整性控制模組。實時資料庫設計中必須考慮數據的安全性,一方面指用戶訪問數據的合法性,另一方面是指系統的安全性。完整性是指用戶對實時數據或歷史數據的各種操作必須符合一定的語義,可通過完整性約束條件來實現;  (3)事務並發控制模組。實時資料庫是一個共享資源,允許多個任務共同使用,如果不對並發事務進行控制,可能會造成任務錯誤的讀取或存儲數據,破壞數據的一致性,因此實時資料庫系統中,必須實現良好的並發控制機制。傳統的資料庫一般採用加鎖的方式,類似於實時作業系統中的信號量,對於封鎖粒度的大小要根據具體的套用系統確定,傳統資料庫獲得鎖的開銷較小,因此通常選用小粒度封鎖單位,以增加系統的並行性。但在實時資料庫系統中,事務獲得鎖的開銷與處理數據的開銷相當,過小的封鎖粒度反而會降低系統的性能,因此在實時資料庫中的封鎖粒度通常選擇一張關係表為一個單位(如模擬量關係表為一個封鎖單位),這樣做減少了並發控制機制的複雜度,減小了系統的開銷,提高了事務處理的整體性能;  (4)實時數據轉儲模組。該模組實現的功能是將實時數據存儲為歷史數據,通常由該模組先將歷史數據保存在記憶體緩衝區中,緩衝區滿時才一次性的寫入磁碟;讀歷史數據時,先從緩衝區內取數據,取不到數據時再進行檔案的讀寫,這種方式可以降低磁碟i/o操作次數。並且只對變化數據進行存儲,即節省了外存空間,又不會影響系統性能;  (5)運行日誌管理模組。日誌檔案在資料庫恢復中起著非常重要的作用,可以用來進行事務故障恢復和系統故障恢復。日誌緩衝區專門存放資料庫操作的記錄,傳統的資料庫日誌記錄包括記錄名、更新前記錄的舊值、更新後記錄的新值、事務標識、操作類型等。在嵌入式實時資料庫系統中,為了減少系統的開銷,在日誌記錄中不包括新舊記錄值,對日誌記錄的寫操作只對緩衝區進行,當緩衝區滿時,才由磁碟寫操作寫入日誌檔案當中。

相關詞條

熱門詞條

聯絡我們