時態資料庫

時態資料庫

時態資料庫(Temporal Database)是主要用於記錄那些隨著時間而變化的值的資料庫,而這些歷史值對套用領域而言又是重要的,這類套用有:金融、保險、預訂系統、決策支持系統等。

基本介紹

  • 中文名:時態資料庫
  • 外文名:Temporal Database
概念,時態資料庫,發展,分類,基本概念,資料庫模型,管理系統,

概念

時間是自然界無處不在的屬性。信息技術的深入發展,對時態信息處理的要求越來越迫切。時態信息處理已經成為許多新一代資料庫與信息系統的關鍵技術,特別是在電子商務、數據倉庫、地籍管理系統、土地利用規劃系統、地理信息系統中扮演著日益重要的角色。Snodgrass指出,在套用系統中平均每50行代碼里就要涉及到一個有關日期或時間操作的語句。
自從20世紀80年代時態資料庫TDB(Temporal DataBase)技術產生以來,其理論、模型、查詢語言以及標準化都取得了豐碩成果。國內外出現了大量的關於時態數據模型、查詢語言和時態理論的文獻。儘管時態數據模型的研究已經具有多年的歷史,然而其成果仍然局限於模型和原型系統階段。本文系統地總結了時態資料庫技術的發展歷程,其研究和套用現狀,簡單介紹了幾類具有代表性的時態數據模型及其標準化、產品化,並對時態資料庫套用的設計方法、研究中存在的問題和發展趨勢給出了作者的認識。

時態資料庫

時態資料庫是一種能夠記錄對象變化歷史,即能夠維護數據的變化經歷的資料庫。R.T.Snodgrass給時態資料庫的定義是:不僅能夠支持用戶自定義時間,還能支持其它某種時間關係的資料庫。目前時態資料庫領域已經形成了專有的術語,並被百科全書收錄。在時態資料庫中,一般要表達3種基本時間,即用戶自定義時間(User-Defined Time)、有效時間(Valid Time)和事務時間(Transaction Time)。用戶自定義時間是指用戶根據自己的實際需要或理解定義的時間,由用戶自己負責解釋含義,如員工管理系統中的“員工生日”。有效時間指的是現實世界中一個對象或事件發生的時間,或者該對象在現實世界中為真的時間,它可能是一個時刻或時段。事務時間指的是對一個資料庫對象進行操作的時間,是一個事實存儲在資料庫中的時間,它記錄著對資料庫修改或更新的各種操作歷史。有效時間和事務時間是正交的。比如圖書管理系統中,學生借閱圖書的時間是有效時間,而將學生借書這件事存儲在資料庫中的時間就是事務時間。有效時間可以覆蓋全部時間範圍,從“開始”直到“永久”。有效時間是由系統的具體用戶(如圖書管理員)給出或由系統給出預設值。事務時間是由系統本身自動給出的,並且永遠不會超過“當前”。
傳統的資料庫是含有屬性和元組的二維資料庫。將有效時間維和事務時間維引入到傳統資料庫中,則形成四維結構。把支持有效時間和事務時間的時態數據模型稱作雙時態數據模型(Bitemporal Data Model)。雙時態數據模型使時態數據的表達清晰易懂,能夠真正的在語義上解釋用戶自定義時間、有效時間和事務時間以及它們相互間的關係,能更好地支持基於時間的數據挖掘(Data Mining)。
存儲時態數據
在 ArcGIS 中,可以使用各種不同格式(如要素類、鑲嵌數據集、柵格目錄等等)來存儲和管理時態數據。選擇哪種格式取決於時態數據的屬性以及希望如何顯示時態數據。
以下是一些使用情境以幫助您決定應使用哪種數據格式來存儲時態數據。
  • 移動要素 - 顯示海洋哺乳動物或其他生物的點位置,以便了解它們的運動模式。
  • 更改要素的大小或形狀 - 了解每個城市的人口增長或了解宗地邊界的變化。
  • 更改要素的顏色 - 根據圖層符號系統的顏色變化,了解疾病致死率的增長方式。
  • 使用柵格目錄或 netCDF 數據檢查變化 - 觀測海洋溫度變化或觀測天氣模式。
  • 圖表中隨時間變化的圖 - 檢查不同地點的臭氧含量或水壓變化。
存儲時間值
數據的時間值可用固定或不固定的時間間隔內的某個採樣時間點來表示。這些時間值存儲在單獨的屬性欄位中,並可用於在時間線上的某些特定時間點來顯示時態數據。例如,在固定間隔內的不同時間點上採集流量數據。但是閃電或地震數據取決於特定的閃電風暴或地震發生的時間,因此以不固定的間隔進行採集。
時間值還能代表一段持續時間,例如當某個特定事件在一段時間內持續發生時。在這種情況下,時間值將存儲在兩個欄位中,一個欄位代表事件的開始時間,一個欄位代表事件的結束時間。例如,表示火範圍的面要素具有開始和結束時間,分別取決於火勢的開始時間和結束時間。
這些時間值可以存儲在日期欄位、字元串欄位或數值欄位中。
在 ArcGIS 中使用時態數據
在時間啟用圖層之後,可在 ArcGIS 中顯示時態數據。通過使用圖層屬性 對話框上的時間選項卡來設定圖層的時間屬性即可實現數據的顯示。設定時態數據的時間屬性後,即可使用時間滑塊來顯示時態數據。還可以將啟用時間的圖層作為地圖服務來使用。

發展

20世紀80年代初,資料庫技術的日漸成熟和大容量高速存儲設備的發展為時態資料庫技術的產生與套用創造了條件。時態資料庫的發展歷程可以分為3個階段,即1982年以前的開創期,198~1993年的理論與模型探索階段,以及1994年以來的套用發展階段。
1982年,J.Ben.Zvi和J.Clifford分別完成的博士論文是時態資料庫開創階段的標誌性成果。J.Ben.Zvi引入了有效時間和事務時間的雙時態概念;提出了以時間區間作為欄位值,突破了資料庫表中欄位值只能是數值或字元的概念;提出了時態索引方法。J.Clifford做出了關於歷史資料庫的開創性工作,提出了歷史關係模型HRDM (Historical Relational Data Model)模型;引入了歷史關係代數;研究了關係、元組、欄位值上加上時態信息的技術細節以及歷史關係模型與傳統關係模型的兼容性問題。
1982年後,計算機學術界對時態資料庫的研究給予了極大的關注。此後10年間,學術界發表了數以千計的論文,提出了上百種時態資料庫模型和時態信息處理方法,湧現出了一大批研究學者和專門研究集體。1983年出版了世界上第一本關於時態資料庫的著作,是該時期的標誌性成果。1984年後,時態數據模型沒有新的大的突破,研究重點轉向了模型的標準化和產品化。1994年3月,TSQL2的初級版本發布。在產品化方面,到目前為止,僅有的幾個時態資料庫系統還處於原型和試驗階段,代表性的是TimeDB和TIGER線上學習系統。在國內,時態資料庫研究和套用也越來越受到關注,出現了相關的書籍。唐常傑設計實現了對象歷史模型Object History Model。與國外相比,國內對時態數據模型以及時態資料庫的研究還比較少。主要集中在時態資料庫的一般性技術,如:多媒體、地理信息系統等專業信息系統中涉及到的時態信息處理,其它主要為時態資料庫理論和模型的階段性研究。

分類

按其功能分為歷史資料庫、事務資料庫和雙時態資料庫。
  • 歷史資料庫:被管理對象的生命周期稱為有效時間(ValidTime),對象的歷史由DBMS內部機制完成;
  • 事務資料庫:資料庫本身被查增刪改的時間為事物時間(TransactionTime),其歷史由DBMS的內部機制處理;
  • 雙時態資料庫:既能管理對象的歷史,又能管理資料庫本身被查增刪改的歷史。

基本概念

時態資料庫理論提出了三種基本時間:用戶自定義時間、有效時間和事務時間。同時把資料庫分為四種類型:快照資料庫、回滾資料庫、歷史資料庫和雙時態資料庫。
  • 用戶自定義時間:指用戶根據自己的需要或理解定義的時間。時態資料庫系統不處理用戶自己定義的時間類型。因此,用戶自定義時間是和套用相關的,不在時態資料庫處理的範圍之內。
  • 有效時間(Valid-Time):指一個對象在現實世界中發生並保持的時間,即該對象在現實世界中語義為真的時間,包含Valid-From和Valid-To兩個值。它可以指示過去、現在和未來。例如,考慮事實“小明從2003年到2007年是大學生”,那么時間區間[2003, 2007]是事實“小明是大學生”的有效時間區間,該事實在該時間區間內為真。有效時間可以是時間點、時間點的集合、時間區間或者時間區間的集合,或者是整個時間域。有效時間由時態資料庫系統解釋並處理,在查詢的過程中對用戶透明。用戶也可以顯式地查詢和更新有效時間。
  • 事務時間(Transaction-Time):指一個資料庫對象發生操作的時間,是一個事實存儲在資料庫、或者在資料庫中發生改變的時間,包含Transaction-From和Transaction-To兩個值。當用戶對資料庫狀態進行更改時,會產生各種操作歷史,事務時間真實地記錄了資料庫狀態變更的歷史。有時也稱事務時間為系統時間。
  • 快照資料庫:快照資料庫是反映現實世界某一瞬間情況的數據模型。它記錄了特定時刻的資料庫狀態。快照資料庫採用這樣的假設:一個存儲在資料庫中的元組,一定是真實世界中的有效事實。
  • 歷史資料庫:資料庫中被管理對象的生命周期是對象的有效時間,每一個元組記錄了數據的一個“歷史”狀態。歷史資料庫中沒有約束時間的表示方法,可以是時間點的集合、時間區間或者區間集合等形式表示。
  • 回滾資料庫:資料庫中被管理對象的生命周期是事務時間的資料庫。它保存了資料庫中事務提交、狀態演變的歷史狀態。
  • 雙時態資料庫:資料庫中元組包含一個系統支持的有效時間和一個系統支持的事務時間的資料庫,稱為雙時態資料庫。雙時態資料庫具備了快照資料庫、歷史資料庫和回滾資料庫的特點,存儲了現實世界和資料庫系統的變更歷史。
  • Now:Now的中文意思是當前時間,是一個時間變元,隨著當前時間的變化而變化,記錄了隨時間變化的信息,它的有效值依賴於當前時間。但在很多套用當中,now值還能表示“過去”和“未來”時間,這就是now語義的研究課題,它對於提高時態系統查詢效率具有比較重要的意義。有關now語義的討論可參見 軟體學報 Vol. 16, No.5 (2005) 838-845

資料庫模型

從1970年G.Wiederhold和J.F.Fries在處理時態信息方面作了最早的嘗試以來,近二十年,美國、歐洲等學者及研究集體在時態資料庫方面作了大量的研究,共提出了13種時態資料庫(TDB)的模型。13個TDB模型從不同的需求、不同的觀點出發,各自獨立地建立了一套術語、概念、數學模型,並形成了各自獨立的理論體系。下面就一些較為趨於統一的術語和概念,以較有特色且較易理解的幾個模型為代表進行時態資料庫的描述。
歷史關係資料庫模型
歷史關係資料庫模型HRDM(History Relational Database Model)是James Clifford等學者於1987年提出的,是時態資料庫的先驅模型之一。為了能有效的解決上述的保存快照的時間間隔的選取問題,在表的基礎上引入了增加“任職期限”來解決,形成表。屬性“任職期限”的值是區間或區間集合,稱為元組的有效時間或生命周期。在時態資料庫管理系統中,該值由系統管理而不是作為普通欄位來進行管理。當一個元組錄入關係,則該元組的生命周期開始;當對元組作一個時態刪除,則指定一個時刻或取當前時刻作為該元組生命周期的終止點,並不作物理刪除。一般而言,時態資料庫中的歷史不能刪除、不能修改,只能追加和查詢。通過表1和表2的比較,引入生命周期有如下的優點:減少冗餘、提高了準確度,最重要的是由表2可推導出表1,而由表1就不能推出表2。時態資料庫中屬性被擴展為時態屬性,一個時態屬性可以是一個普通屬性和一個時間區間組成的二元組。生命周期是系統時間域的子集,生命周期經過集合運算後,其值仍是生命周期。
時態資料庫
時態資料庫
TempSQL模型
ShashiK.Gadia於1986年建立了同時性關係模型(HomogeneousRelationalModel)該模型因其實現了查詢語言TempSQL而成名。TempSQL是一個類似SQL的時態查詢語言,它兼容了SQL的主要功能,能查詢被管理對象的歷史、資料庫本身插刪改的歷史以及用戶和資料庫本身出錯的歷史。TempSQL保持了時態資料庫和靜態資料庫的無縫連線。快照資料庫可以看作是TempSQL中時態關係的生命周期縮小為一個時間量子[now,now]時的特例。由於TempSQL擴展時態功能的成功,人們常以TempSQL指代該TDB模型。TempSQL中非關鍵字屬性值可以隨時間變化,但關鍵字不隨時間變化。為了模型簡單實用,Temp-SQL規定一個元組中各個屬性的生命周期一致,稱為滿足同時性條件。TempSQL中允許時態屬性是形如(區間,值)的二元組,例如([1995,1999],“上大學”)其語意是某人上大學的時間是[1995至1999]。在TempSQL中稱[1995,1999]為屬性值的定義域或生命周期,用雙層方括弧表示求生命周期運算。如:[[“上大學”]]=[1995,1999]。TempSQL中要求一個元組中各個屬性的生命周期一致,稱為滿足同時性條件的時態元組。
雙時態數據模型
TQuel是Richard Snodgrass在1985年左右開發的時態查詢語言。TQuel建立在雙時態資料庫模型上,該模型中,對象的生命周期稱為有效時間,資料庫事務執行時間稱為事務時間,並認為這兩個時間軸是正交、互為獨立的。該模型建立了完備、複雜的理論,為TQuel語言制訂了詳細的句法規範,在理論上較深入研究了時態閉包、完全性、有效時間的不確定性、時態查詢最佳化、時態約束,研究了TQuel和元組演算的語義關係,並得出一些較深刻的定理。TQuel是Quel語言的時態擴展,Quel語言作為元組語言的具體實現,在關係資料庫理論和系統研究上占有重要地位。

管理系統

TDBMS基本組成
傳統資料庫管理系統(DBMS)具有支持時間和日期的數據類型,但不能直接支持和管理時態數據,關於時態方面的操作需要由另行編寫的應用程式完成。時態資料庫管理系統(TDBMS)具有提供時態數據操作和支持時態數據管理的基本功能。 一個TDBMS需要具有下述子系統:
時態數據定義子系統 用來定義(創建、取消和修改)各種時態數據。時態數據操縱子系統 用來控制時態數據的各種基本操作。時態數據查詢子系統 用來查詢各類時態數據並且提供時態語義的支持。時態約束子系統 用來支持數據完整性過程中的各類時間關聯與制約,例如被參照表中主鍵有效時間期間變化時參照表中外鍵的變化等。該子系統的基本功能是保證時態數據的一致性。
TimeDB
TimeDB由A. Steiner於1998年開發的一個時態資料庫管理系統 最新版本是2.2版。TimeDB是傳統資料庫管理系統的前端軟體,用戶使用ATSQL2語句描述套用中時態操作,然後由TimeDB轉換後形成標準SQL語句,這些標準SQL語句傳輸到後台關係資料庫中進行實際數據的操作。TimeDB初步實現了時態查詢、時態更新、時態視圖和部分時態完整性約束等基本時態功能,同時也兼容非時態數據操作。 TimeDB 1.0版本由Andreas使用SICStus Prolog語言開發,運行在SWI Prolog環境中。TimeDB 2.0版本使用Java語言開發,具有平台無關特徵;基於JDBC訪問資料庫,可以在IBM Cloudscape、Oracle、Sybase等多種資料庫管理系統之上使用;具有較友好的用戶界面;最佳化了輔助表創建過程;具有本地調用接口TDBCI,可供Java應用程式調用以執行ATSQL2語句。 TimeDB 2.1版本開始使用Java SDK 1.4版本,支持Cloudscape 10; TimeDB 2.2版本加入了對Oracle 10g的支持。
TempDB
TempDB是由湯庸教授領導的時態資料庫研究小組於2002年開發研製,目前最新版本2.1版。作為國內首個支持時態數據管理的TDBMS,TempDB在邏輯上使用雙時態數據模型,使用ATSQL2語言,支持電子政務、電子商務、決策支持等信息處理系統中的時態套用;同時,TempDB在技術上基於關係資料庫管理系統MySQL平台、採用JAVA語言進行底層開發,具有較強的可移植性以及部署方便。 相對TimeDB,而TempDB能支持基於Now語義複雜操作,支持不確定時態語義查詢;TempDB同時實現了運行歸併和更新歸併兩種,這樣不會出現時間戳相鄰而用戶定義屬性完全相同的(未可歸併)情形;TempDB能支持基於Now語義複雜操作,支持不確定時態語義查詢。此外,TempDB還提供統一的圖形化界面供用戶輸入語句、查看語句執行結果和中間結果,以及檢測語句執行時的可能出錯信息。

熱門詞條

聯絡我們