摘 要:基于雙時態概念數據模型(BCDM)定義了BCDM中的冗余時間變元,對冗余進行了量化描述,提出一種對時間變元的去冗余綁定思想。介紹了BCDM,并對BCDM中的時間標簽進行規范化的組合表達;形式地描述了時間變元在當前事務時間的去冗余綁定操作,并對雙時態關系的去冗余綁定操作給出了形式描述;對BCDM中的時間變元的去冗余操作給出了實現算法,并進行了算法分析。
關鍵詞:BCDM; 時間變元; 變元綁定
中圖法分類號:TP311.13文獻標識碼:A
文章編號:1001—3695(2007)02—0033—03
1 引言
時間元素是時態數據庫中的基本元素,是構成時態數據庫的必需元素。它是反映現實世界時變特性的數據庫,對數據庫對象時變屬性的記錄是通過時間元素來刻畫的[1]。然而,在時態數據庫時間屬性的記錄中,會因為記錄的不斷更新而使得時間記錄頻繁變化,用有效時間變元Now來記錄有效時間的變化部分,就減少了頻繁記錄的問題。類似于這種有效時間的變元,事務時間的變元UC也解決了記錄頻繁更新的問題。但是時間變元的引入也帶來了新的問題,對于時態數據庫來說,因為增加了時間變元而使得數據庫的記錄存在不確定性,這樣對于含有變元的時態數據庫就增加了數據記錄的不確定性[2—4]。對于BCDM(Bitemporal Concept Data Model)來說,因為時間記錄的二維性,使得數據庫中時間屬性的記錄中,既有有效時間變元Now又有事務時間變元UC,給數據庫的操作帶來了某些不確定性,甚至會產生錯誤;不過,因為BCDM自身的雙時態特性,隨著數據庫新記錄的產生,時間變元的值會因為后續時間信息的記錄而使得以前的時間變元記錄得以確定[5—7]。
因為有時間變元,所以在數據庫的很多操作中(如查詢、索引、關系操作等)會增加難度及不確定性,針對不同的應用需求,引入一些新的處理辦法。文獻[8]中對于含有時間變元的區間運算進行了考慮;文獻[9]中用簡單的分裂操作對含有時間變元的雙時態操作進行了處理,用非時態的辦法處理含有時間變元的時態問題;文獻[10]在時態索引中考慮了帶有時間變元的雙時態數據庫的索引問題,用4-R樹的索引辦法對含有時間變元的雙時態數據庫進行索引。這些均對含有時間變元有關的操作問題進行的有益探索,但是對于時間變元的直接處理是用時態綁定的辦法進行解決,變元綁定處理后,數據庫的時間變元減少或消除,這樣查詢、索引、關系操作等的不確定性下降,處理簡單明確。
在研究時間變元的綁定中,文獻[2]提出了時間變量Now的修正語義,在該文獻中對Now變元進行了不同情況的綁定,并在綁定后對時間區間的運算進行了處理;文獻[3]不僅考慮到時間Now的綁定而且也包含了UC的綁定,對于變化的參考時間給出了較為形象的綁定圖示;文獻[11]在雙時態數據庫中對時間變元Now進行了新的處理,時態元組的記錄在有效時間和事務時間被分別記錄為信息點,這種辦法對基于點的時態查詢提供了更高的效率。當前,對于時間變元的綁定,主要是對有效時間Now的綁定,即使是在雙時態的背景下[3],也沒有將事務時間和有效時間結合起來考慮。而本文是從雙時態的規范模型BCDM出發,利用BCDM中雙時態的關聯性,將有效時間和事務時間結合在一起考慮,提出了冗余時間變元的概念和冗余時間變元綁定的思想,對去冗余時間變元的綁定操作進行了形式描述,并對綁定操作給出了可行的算法。這種冗余時間變元的綁定辦法簡化了BCDM中的時態查詢、時態索引及時態關系操作的復雜性,對實際應用是有益且有效的。
2 BCDM及其時間元素
2.1 時態數據庫與BCDM
時態數據庫在發展的過程中經歷了回滾數據庫、歷史數據庫和雙時態數據庫。其中的回滾數據庫記錄的是數據庫事務更改的歷史情況,保存了所有狀態演變中的過去情況,回滾數據庫只是事務時間的記錄,它不能記錄現實世界中事物屬性為真的時間;而歷史數據庫卻只能記錄有效時間,不能記錄事務時間;雙時態數據庫既可以記錄數據庫狀態變化的事務時間,又能夠記錄元組屬性為真的有效時間。BCDM是雙時態數據庫中的重要模型,它是面向查詢和數據庫邏輯設計的雙時態概念數據模型,是TSQL2語言設計委員會所設計的TSQL2文本的最基本的模型,BCDM在概念上盡量與關系數據庫保持兼容[6,7]。BCDM是雙時態數據庫中數據的存儲和數據表示的橋梁;在TSQL2中提出了三種時態數據庫模型——BCDM、表示數據模型(Representational Data Model)以及演示數據模型(Presentation Data Model),其中BCDM是核心模型。
BCDM最主要的特點有:①支持有效時間和事務時間的雙時態性,這種雙時態性反映在元組的時態標簽上面。②屬性的原子性,在除去時間標簽后,其元組記錄滿足關系數據庫特性,沒有記錄重復。③有效時間的同質性,所有記錄事實定義在同一類型的時間粒度上。
2.2 BCDM中的時間元素
在雙時態標簽中,因為時間點是可以為變元Now或者UC的,因而這種雙時態標簽是包含時間變元的雙時態標簽。
在處理時間元素的問題中,J.F.Allen的時間區間模型雖然經典,但是在計算機系統中給應用帶來了麻煩。在此采用文獻[7,12]的方法,用間斷的時間區間表示離散時間點來處理BCDM中的時間元素問題。
2.3 BCDM中的時間標簽規范
簽稱為雙時態標簽的組合形式。
定義3 規范的雙時態標簽組合形式。對于定義2中的雙時態標簽組合形式按字典排序,用集合元素羅列的形式表達為
在BCDM中時間冗余變元的產生是因為某事務時間點的有效時間變元記錄沒有及時更新,但后續事務時間的記錄已經更新,因而產生時間變元記錄冗余。
3 BCDM中的冗余時間變量綁定
3.1 BCDM中的冗余時間變元
定義4 BCDM中的冗余時間變元。LNbt是BCDM中規范的雙時態標簽組合形式,其形式如定義3。如果LNbt滿足以下條件,則稱LNbt中含有冗余時間變元:
3.2 BCDM中冗余時間變元的綁定操作
3.2.1 時態元組中的冗余綁定操作
在僅含有效時間的歷史數據庫中,因為有時間變元Now的存在,對于時態數據庫的查詢和關系操作會產生很多的歧義性,有時候甚至會產生錯誤(時間區間下限大于上限)。但是,對于BCDM模型來說,因為雙時態數據庫的兩重性(歷史快照性和事務回滾性[6])以及事務時間和有效時間的關聯性,給時間變元帶來了一定的確定性。可以根據BCDM自身的特性將BCDM中的冗余時間變元綁定。
在對BCDM的冗余時間變元的綁定中,用CTT(Current Transition Time,當前事務時間)來綁定冗余是最有實際意義的:一方面在數據庫的不斷更新中需要它;另一方面在當前的時態查詢中要用到它。用CTT來綁定冗余時間元素:
3.2.2 時態關系中的冗余綁定
在BCDM的雙時態關系中,對于冗余時間變元的綁定操作只是對單個雙時態標簽的綁定操作的集合累加。設雙時態關系為Rbt,對其進行當前事務時間的冗余綁定操作如下:
3.3 BCDM中的冗余時間變元綁定的算法實現
4 小結與展望
本文從BCDM的雙時態性出發,對BCDM中的時間標簽進行規范的組合表達,給出了BCDM中冗余時間變元的形式描述,并對冗余時間變元進行當前事務時間CTT的去冗余綁定操作,在給出綁定操作的形式化描述之后,對雙時態標簽的綁定操作給出了具體的實現策略。對于BCDM中時間變元的綁定問題,還可以將Now和UC綁定到過去及將來時間。但是,對于變元綁定到過去的情況來說,因為BCDM自身的雙時態特性,會造成一些時態信息的丟失甚至是錯誤;而將時間變元綁定到將來的情況,又會給BCDM模型的時間變元綁定增加一種在概率值意義下的不確定性,相關工作我們正在研究。時態數據庫的實際模型TimeDB2.0beta4對于雙時態的支持已經更改[13],新的版本對于事務時間已不再支持,而本實驗中心在時態中間件的設計中,一方面要考慮到雙時態性的支持,另一方面對于時間變元Now和UC的當前更新和綁定也是我們設計時考慮的另一重要因素,適當的辦法可以在設計時增加中間件來實現具體的綁定。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。