資料庫理論與技術的發展極其迅速,其應用日益廣泛,在當今的資訊社會中,它幾乎無所不在。以關系型為代表的三大經典(層次、網狀、關系)型資料庫在傳統的(商務和管理的事務型)應用領域獲得了極大成功,然而它們在現代的(非傳統)工程和時間關鍵型應用面前卻顯得軟弱無力,面臨着新的嚴峻的挑戰,由此而導緻了實時資料庫(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必須有時間處理機制。
——定時正确性即事務能按指定的時間要求正确執行,它要求權衡定時限制與資料一緻性要求等多方面因素,提供合适的排程與并發控制算法。
實時資料庫系統的主要技術
實時資料庫系統與傳統的資料庫系統有着根本性的不同。要實作一個實時資料庫系統,除了一般資料庫的問題外,還要研究一系列關鍵理論與技術問題。主要有:
1.實時資料模型及其語言
到目前為止,研究實時資料庫的文獻鮮有專門讨論資料模組化問題的,大多數文獻,尤其是關于實時事務處理的都假定其具有有變化顆粒的資料項的資料模型。但這種方法有局限性,因為它沒有使用一般的及時間的語義知識,而這對系統滿足事務截止時間是很有用的。一般RTDB都使用傳統的資料模型,還沒有引入時間維,而即使是引入了時間維的"時态資料模型"與"時态查詢語言"也沒有提供事務定時限制的說明機制。
系統應該給使用者提供事務定時限制說明語句,其格式可以為:
<事務事件>IS<時間說明>
<事務事件>為事務的"開始"、"送出"、"夭折"等。<時間說明>指定一個絕對、相對或周期時間。
2.實時事務的模型與特性
前面已說過,傳統的原子事務模型已不适用,必須使用複雜事務模型,即嵌套、分裂/合并、合作、通信等事務模型。是以,實時事務的結構複雜,事務之間有多種互動行動和同步,存在結構、資料、行為、時間上的相關性以及在執行方面的依賴性,具體可參考後面"實時資料庫的事務處理"一文。
3.實時事務的處理
RTDB中的事務有多種定時限制,其中最典型的是事務截止期,系統必須能讓截止期更早或更緊急的事務較早地執行,換句話說,就是能控制事務的執行順序,是以,又需要基于截止期和緊迫度來标明事務的優先級,然後按優先級進行事務排程。
另一方面,對于RTDB事務,傳統的可串行化并發控制過嚴,且也不一定必要,它們"甯願要部分正确而及時的資料,而不願要絕對正确但過時的資料",故應允許"放松的可串行化"或"暫緩可串行化"并發控制,于是需要開發新的并發控制正确性的概念、标準和實作技術。
4.資料存儲與緩沖區管理
傳統的磁盤資料庫的操作是受I/O限制的,其I/O的時間延遲及其不确定性對實時事務是難以接受的,是以,RTDB中資料存儲的一個主要問題就是如何消除這種延遲及其不确定性,這需要底層的"記憶體資料庫"支援,因而記憶體緩沖區的管理就顯得更為重要。這裡所說的記憶體緩沖區除"記憶體資料庫"外,還包括事務的執行代碼及其工作資料等所需的記憶體空間。此時的管理目标是高優先事務的執行不應是以而受阻,它要解決以下問題:
(1)如何保證事務執行時,隻存取"記憶體資料庫",即其所需資料均在記憶體(因而它本身沒有I/O)。
(2)(2)如何給事務及時配置設定所需緩沖區。
(3)必要時,如何讓高優先級事務搶占低優先級事務的緩沖區。是以,傳統的管理政策也不适用,必須開發新的基于優先級的算法。
5.恢複
在RTDB中,恢複顯得更為複雜。這是因為:
(1)恢複過程影響處于活躍狀态的事務,使有的事務超截止期,這對硬實時事務是不能接受的。
(2)RTDB中的資料不一定總是永久的,為了保證明時限制的滿足,也不一定是一緻和絕對正确的,而有的是短暫的,有的是暫時不一緻或非絕對正(準)确的。
(3)有的事務是"不可逆"的,是以,傳統的還原/重新開機動是無意義的,可能要用"補償"、"替代"事務。
是以,必須開發新的恢複技術與機制,應考慮到時間與資源兩者的可用性,以确定最佳恢複時機與政策,而不緻太傷害事務實時性的滿足。
實時資料庫應用與研究
RTDB無縫地內建了資料庫與定時性,在對資料庫能力和實時處理技術兩者均有要求的各種領域有着極其廣泛的應用前景,對多種工程或過程及時間關鍵型應用更是必要而迫切的,為國家的現代化尤其是國防現代化建設及國民經濟的發展提供有力的、必不可少的支援,在資訊技術、資訊高速公路及資訊産業的建設中必将起到重大作用。
國外對RTDB的研究非常關注,尤其是美國、英國、德國、瑞典等國起步較早,現已有許多成功的實驗系統,有的甚至已商品化,典型的有HiPAC、ZipRTDBMS等系統。國内的研究起步稍晚,基本上是在80年代末、90年代初才開始,但發展很快,目前已有成功的實驗系統,但尚未形成正式産品,其主要原因是國内缺乏合适的實時作業系統,這已成為RTDB發展的重要障礙,希望能引起有關方面的重視。