何為實時數據庫系統
數據庫理論與技術的發展極其迅速,其應用日益廣泛,在當今的信息社會中,它幾乎無所不在。以關系型為代表的三大經典(層次、網狀、關系)型數據庫在傳統的(商務和管理的事務型)應用領域獲得了極大成功,然而它們在現代的(非傳統)工程和時間關鍵型應用面前卻顯得軟弱無力,面臨著新的嚴峻的挑戰,由此而導致了實時數據庫(RealtimeDatabase,RTDB)的產生和發展。
實時數據庫的發展
數據庫的應用正從傳統領域向新的領域擴展,如CAD/CAM、CIMS;數據通信、電話交換、電力調度等網絡管理;電子銀行事務、電子數據交換與電子商務、證券與股票交易;交通控制、雷達跟蹤、空中交通管制;武器制導、實時仿真、作戰指揮自動化或C3I系統,等等。這些應用有著與傳統應用不同的特征,一方面,要維護大量共享數據和控制數據;另一方面,其應用活動(任務或事務)有很強的時間性,要求在規定的時刻和(或)一定的時間內完成其處理;同時,所處理的數據也往往是"短暫"的,即有一定的有效時間,過時則有新的數據產生,而當前的決策或推導變成無效。所以,這種應用對數據庫和實時處理兩者的功能及特性均有需求,既需要數據庫來支持大量數據的共享,維護其數據的一致性,又需要實時處理來支持其任務(事務)與數據的定時限制。
但是,傳統的數據庫系統旨在處理永久、穩定的數據,強調維護數據的完整性、一致性,其性能目標是高的系統吞吐量和低的代價,而根本不考慮有關數據及其處理的定時限制,所以,傳統的數據庫管理系統(DBMS)不能滿足這種實時應用的需要。而傳統的實時系統(RTS)雖然支持任務的定時限制,但它針對的是結構與關系很簡單、穩定不變和可預報的數據,不涉及維護大量共享數據及它們的完整性和一致性,尤其是時間一致性。因此,只有將兩者的概念、技術、方法與機制"無縫集成"(SeamlessIntegration)的實時數據庫(RTDB)才能同時支持定時和一致性。
因此,實時數據庫就是其數據和事務都有顯式定時限制的數據庫,系統的正確性不僅依賴于事務的邏輯結果,而且依賴于該邏輯結果所產生的時間。近年來,RTDB已發展為現代數據庫研究的主要方向之一,受到了數據庫界和實時系統界的極大關注。然而,RTDB并非是數據庫和實時系統兩者的簡單結合,它需要對一系列的概念、理論、技術、方法和機制進行研究開發,如數據模型及其語言,數據庫的結構與組織;事務的模型與特性,尤其是截止時間及其軟硬性;事務的優先級分派、調度和并發控制協議與算法;數據和事務特性的語義及其與一致性、正確性的關系,查詢/事務處理算法與優化;I/O調度、恢復、通信的協議與算法,等等,這些問題之間彼此高度相關。
實時數據庫與時間
實時數據庫系統在兩方面與時間相關:
1.數據與時間相關
按照與之相關的時間的性質不同又可分為兩類:
數據本身就是時間即從"時間域"中取值,如"日期",稱為"用戶定義的時間",也就是用戶自己知道,而系統并不知道它是時間,系統將毫無區別地把它像其他數據一樣處理。
數據的值隨時間而變化數據庫中的數據是對其所服務的"現實世界"中對象狀態的描述,對象狀態發生變化則引起數據庫中相應數據值的變化,因而與數據值變化相聯的時間可以是現實對象狀態的實際時間,稱為"真實"或"事件"時間(現實對象狀態變化的事件發生時間),也可以是將現實對象變化的狀態記錄到數據庫,即數據庫中相應數據值變化的時間,稱為"事務時間"(任何對數據庫的操作都必須通過一個事務進行)。實時數據的導出數據也是實時數據,與之相聯的時間自然是事務時間。
2.實時事務有定時限制
典型的就是其"截止時間"。對于RTDB,其結果產生的時間與結果本身一樣重要,一般只允許事務存取"當前有效"的數據,事務必須維護數據庫中數據的"事件一致性"。另外,外部環境(現實世界)的反應時間要求也給事務施以定時限制。所以,RTDB系統要提供維護有效性和事務及時性的設施。
實時數據庫的特征
如上所述,RTDB的特征主要表現在數據和事務的定時限制上,下面分別介紹。
1.RTDB的數據特征
在RTDB中,數據隨外部環境狀態的變化而快速變化,其值只在一定的時間內是"流行"的,過時則無效了,故系統除了維護數據庫內部狀態(數據值)的正確性、相容性外,還必須同時維護內部狀態與外部環境實際狀態的一致性,以及數據用來決策或推導新數據時在時間上的相互一致性。
RTDB中的一個數據對象d由三個分量組成(dv,dtp,devi),它們分別為d的當前值、采樣時間、外部有效期(外部現實對象狀態變化的時間間隔),有效期即自dtp算起dv有效的時間長度。對于RTDB中的每一d,有內部一致性、外部一致性和相互一致性特征。
內部一致性dv滿足預先定義的數據庫內部狀態的完整性和一致性限制。這就是傳統意義下的數據正確性。
外部一致性設tc為當前或檢測時間,當且僅當(tc-dtp)≤devi,則說d是外部一致的,即dv和對應的外部現實對象的狀態是一樣的。
相互一致性用來決策或導出新數據的一組相關數據稱為一個相互一致集,記為R,其中的數據必須盡可能地在一個允許的公共時間期內被采取(或導出),這個公共時間期就稱為R的相互有效期,記為Rmvi,對于R中的任兩個數據d和d′,有|dtp-d′tp|≤Rmvi,則說R中的數據是相互一致的。
外部一致性和相互一致性都是關于時間的,故統稱時間一致性。既是內部一致又是時間一致的數據才是正確的。
2.RTDB的事務特征
由于實時任務往往有內部結構和相互之間的聯系,傳統的"原子的、平淡的數據庫操作序列"的事務概念及模型對實時事務不適合。RTDB事務表現出了許多不同的特征,這里只給出其標識性特征定時性,其余的在后面的文章"實時數據庫的事務處理"中討論。
定時可以是絕對、相對或周期時間。RTDB的定時性一方面由數據的時間一致性引起,此時它往往取周期或定期性限制的形式,如"每5秒取樣一次"、"7∶00啟動機器人"等;定時性的另一根源是對現實世界施加于系統的反應時間的要求,這時它典型地取施加于非周期事務的截止時間限制的形式,如"若溫度達到1000度,則在5秒內加冷卻劑到反應堆"。
定時性包含兩方面的含義:
定時限制即事務的執行有顯式的時限,如指定的開始時間、截止時間等,它要求RTDB必須有時間處理機制。
定時正確性即事務能按指定的時間要求正確執行,它要求權衡定時限制與數據一致性要求等多方面因素,提供合適的調度與并發控制算法。
#p#
實時數據庫系統的主要技術
實時數據庫系統與傳統的數據庫系統有著根本性的不同。要實現一個實時數據庫系統,除了一般數據庫的問題外,還要研究一系列關鍵理論與技術問題。主要有:
1.實時數據模型及其語言
到目前為止,研究實時數據庫的文獻鮮有專門討論數據建模問題的,大多數文獻,尤其是關于實時事務處理的都假定其具有有變化顆粒的數據項的數據模型。但這種方法有局限性,因為它沒有使用一般的及時間的語義知識,而這對系統滿足事務截止時間是很有用的。一般RTDB都使用傳統的數據模型,還沒有引入時間維,而即使是引入了時間維的"時態數據模型"與"時態查詢語言"也沒有提供事務定時限制的說明機制。
系統應該給用戶提供事務定時限制說明語句,其格式可以為:
<事務事件>IS<時間說明>
<事務事件>為事務的"開始"、"提交"、"夭折"等。<時間說明>指定一個絕對、相對或周期時間。
2.實時事務的模型與特性
前面已說過,傳統的原子事務模型已不適用,必須使用復雜事務模型,即嵌套、分裂/合并、合作、通信等事務模型。因此,實時事務的結構復雜,事務之間有多種交互行動和同步,存在結構、數據、行為、時間上的相關性以及在執行方面的依賴性,具體可參考后面"實時數據庫的事務處理"一文。
3.實時事務的處理
RTDB中的事務有多種定時限制,其中最典型的是事務截止期,系統必須能讓截止期更早或更緊急的事務較早地執行,換句話說,就是能控制事務的執行順序,所以,又需要基于截止期和緊迫度來標明事務的優先級,然后按優先級進行事務調度。
另一方面,對于RTDB事務,傳統的可串行化并發控制過嚴,且也不一定必要,它們"寧愿要部分正確而及時的數據,而不愿要絕對正確但過時的數據",故應允許"放松的可串行化"或"暫緩可串行化"并發控制,于是需要開發新的并發控制正確性的概念、標準和實現技術。
4.數據存儲與緩沖區管理
傳統的磁盤數據庫的操作是受I/O限制的,其I/O的時間延遲及其不確定性對實時事務是難以接受的,因此,RTDB中數據存儲的一個主要問題就是如何消除這種延遲及其不確定性,這需要底層的"內存數據庫"支持,因而內存緩沖區的管理就顯得更為重要。這里所說的內存緩沖區除"內存數據庫"外,還包括事務的執行代碼及其工作數據等所需的內存空間。此時的管理目標是高優先事務的執行不應因此而受阻,它要解決以下問題:
(1)如何保證事務執行時,只存取"內存數據庫",即其所需數據均在內存(因而它本身沒有I/O)。
(2)如何給事務及時分配所需緩沖區。
(3)必要時,如何讓高優先級事務搶占低優先級事務的緩沖區。因此,傳統的管理策略也不適用,必須開發新的基于優先級的算法。
5.恢復
在RTDB中,恢復顯得更為復雜。這是因為:
(1)恢復過程影響處于活躍狀態的事務,使有的事務超截止期,這對硬實時事務是不能接受的。
(2)RTDB中的數據不一定總是永久的,為了保證實時限制的滿足,也不一定是一致和絕對正確的,而有的是短暫的,有的是暫時不一致或非絕對正(準)確的。
(3)有的事務是"不可逆"的,所以,傳統的還原/重啟動是無意義的,可能要用"補償"、"替代"事務。
因此,必須開發新的恢復技術與機制,應考慮到時間與資源兩者的可用性,以確定最佳恢復時機與策略,而不致太傷害事務實時性的滿足。
實時數據庫應用與研究
RTDB無縫地集成了數據庫與定時性,在對數據庫能力和實時處理技術兩者均有要求的各種領域有著極其廣泛的應用前景,對多種工程或過程及時間關鍵型應用更是必要而迫切的,為國家的現代化尤其是國防現代化建設及國民經濟的發展提供有力的、必不可少的支持,在信息技術、信息高速公路及信息產業的建設中必將起到重大作用。
國外對RTDB的研究非常關注,尤其是美國、英國、德國、瑞典等國起步較早,現已有許多成功的實驗系統,有的甚至已商品化,典型的有HiPAC、ZipRTDBMS等系統。國內的研究起步稍晚,基本上是在80年代末、90年代初才開始,但發展很快,目前已有成功的實驗系統,但尚未形成正式產品,其主要原因是國內缺乏合適的實時操作系統,這已成為RTDB發展的重要障礙,希望能引起有關方面的重視。
原文鏈接:http://www.cnblogs.com/aooyu/archive/2011/06/07/2074333.html