摘要:該文主要闡述了時(shí)態(tài)數(shù)據(jù)庫在發(fā)展過程中所形成的較一般的,為廣大在數(shù)據(jù)庫領(lǐng)域研究的專家、學(xué)者所認(rèn)同的,并在進(jìn)一步發(fā)展的模型、技術(shù)和遇到的困難。研究了帶時(shí)態(tài)索引的數(shù)據(jù)查詢、時(shí)態(tài)數(shù)據(jù)定義、查詢優(yōu)化方法等技術(shù)。
關(guān)鍵詞:時(shí)態(tài)數(shù)據(jù)庫模型;時(shí)態(tài)查詢;時(shí)態(tài)索引
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)31-7402-02
在計(jì)算機(jī)的眾多應(yīng)用中,數(shù)據(jù)庫的應(yīng)用無疑是今計(jì)算機(jī)發(fā)展最快的應(yīng)用之一,人們?cè)趯?shí)際的應(yīng)用中越來越感受到目前的主流數(shù)據(jù)庫技術(shù)不能更好的、更準(zhǔn)確的反映客觀現(xiàn)實(shí)世界。
客觀現(xiàn)實(shí)世界的事物是四維的,每個(gè)事物都有其空間維和時(shí)間維。目前的主流數(shù)據(jù)庫只是存儲(chǔ)、管理、查詢大量的海量數(shù)據(jù),對(duì)于帶有時(shí)間特征的數(shù)據(jù)還沒有直接的方法進(jìn)行管理。帶有時(shí)間特征的數(shù)據(jù)庫管理系統(tǒng)還沒有像關(guān)系數(shù)據(jù)庫那樣成熟的產(chǎn)品。
目前時(shí)態(tài)數(shù)據(jù)庫技術(shù)尚未完全成熟,數(shù)據(jù)庫管理系統(tǒng)的研發(fā)商也不會(huì)鑒定的把時(shí)態(tài)處理功能加入現(xiàn)有的數(shù)據(jù)庫管理系統(tǒng)中。因此,現(xiàn)在較可行的一個(gè)實(shí)現(xiàn)辦法,就是依靠成熟的關(guān)系數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫,再結(jié)合時(shí)態(tài)數(shù)據(jù)庫的中間件進(jìn)行時(shí)態(tài)數(shù)據(jù)庫管理系統(tǒng)的管理。
1 時(shí)態(tài)數(shù)據(jù)庫
1.1 時(shí)態(tài)數(shù)據(jù)庫
時(shí)態(tài)數(shù)據(jù)庫(Temporal Database),簡稱TDB,是具有時(shí)間維的數(shù)據(jù)庫管理系統(tǒng),不僅能刻畫某個(gè)時(shí)刻的數(shù)據(jù),還能反映數(shù)據(jù)的歷史和未來。
傳統(tǒng)的關(guān)系數(shù)據(jù)庫是{屬性}×{元組}的二維結(jié)構(gòu)。不能反映被管理對(duì)象的歷史。如果以年為時(shí)間粒度,則構(gòu)成一個(gè)在時(shí)間維上的三維數(shù)據(jù)庫。在傳統(tǒng)的數(shù)據(jù)庫中一般采用取時(shí)間間隔保存快照的方法。
1.2 時(shí)態(tài)數(shù)據(jù)庫模型的現(xiàn)狀
近三十年以來,歐洲、美國等國的學(xué)者在時(shí)態(tài)數(shù)據(jù)庫方面作了大量的探索和研究,共提出了十三種TDB的研究模型。這十三種時(shí)態(tài)數(shù)據(jù)庫的模型基于不同角度、不同的需求,分別、獨(dú)立地建立了各自獨(dú)立的理論體系,形成了自己獨(dú)特一套概念、術(shù)語和數(shù)學(xué)模型。
其中比較有代表性的時(shí)態(tài)數(shù)據(jù)模型有:歷史關(guān)系數(shù)據(jù)庫模型、TempSQL模型、雙時(shí)態(tài)數(shù)據(jù)模型。
2 時(shí)態(tài)數(shù)據(jù)庫管理系統(tǒng)的實(shí)現(xiàn)技術(shù)
基于現(xiàn)在的研究現(xiàn)狀,為了實(shí)現(xiàn)對(duì)時(shí)態(tài)數(shù)據(jù)的管理,人們往往利用現(xiàn)有的關(guān)系數(shù)據(jù)庫,對(duì)數(shù)據(jù)流和控制流進(jìn)行時(shí)態(tài)擴(kuò)充。
時(shí)態(tài)數(shù)據(jù)定義語言是傳統(tǒng)數(shù)據(jù)定義語言的時(shí)態(tài)擴(kuò)展。比如,要建立一個(gè)學(xué)生的關(guān)系結(jié)構(gòu),執(zhí)行“Create Table student”,系統(tǒng)將按傳統(tǒng)數(shù)據(jù)定義建立關(guān)系結(jié)構(gòu),同時(shí)增加事務(wù)時(shí)間和有效時(shí)間存儲(chǔ)結(jié)構(gòu),經(jīng)過時(shí)態(tài)數(shù)據(jù)定義的編譯,存放在數(shù)據(jù)字典中。
時(shí)態(tài)操縱語言是在傳統(tǒng)數(shù)據(jù)操作語言上加上了時(shí)態(tài)擴(kuò)展。用戶在作帶時(shí)態(tài)增、刪、改時(shí),系統(tǒng)根據(jù)時(shí)態(tài)關(guān)鍵字(如Overlap,When,Valid,After,Before等)作時(shí)態(tài)分析。當(dāng)沒有時(shí)態(tài)關(guān)鍵字的數(shù)據(jù),系統(tǒng)按照默認(rèn)的時(shí)態(tài)語義(Now)進(jìn)行處理。這樣傳統(tǒng)的數(shù)據(jù)加上時(shí)態(tài)表達(dá)式求出的時(shí)間區(qū)間,就實(shí)現(xiàn)了時(shí)態(tài)數(shù)據(jù)庫系統(tǒng)的管理模式。
時(shí)態(tài)查詢語言也是傳統(tǒng)查詢語言SQL的時(shí)態(tài)擴(kuò)展,其查詢過程和傳統(tǒng)的SQL語言相似。首先,查詢處理器對(duì)用戶語句作詞法分析、語法分析,然后送給時(shí)態(tài)事務(wù)處理模塊,將查詢分解成一系列單獨(dú)執(zhí)行的時(shí)態(tài)事務(wù),送到事務(wù)調(diào)度隊(duì)列等候執(zhí)行。
2.1 時(shí)態(tài)索引技術(shù)
為了加快時(shí)態(tài)數(shù)據(jù)庫存取速度,研究者從不同的角度為不同的時(shí)態(tài)數(shù)據(jù)模型提出了各種各樣的時(shí)態(tài)索引技術(shù),表1列出了部分時(shí)態(tài)索引技術(shù)。時(shí)態(tài)索引技術(shù)基本上是對(duì)傳統(tǒng)的B+樹和R樹的時(shí)態(tài)擴(kuò)展。
2.2 時(shí)態(tài)查詢語言
現(xiàn)有的時(shí)態(tài)數(shù)據(jù)模型大多是基于關(guān)系的,故大多數(shù)時(shí)態(tài)查詢語言也是基于關(guān)系查詢語言,尤其是SQL的擴(kuò)展。
應(yīng)該如何結(jié)合時(shí)間到SQL那DwyvjAVPmP8Y8hTgnlbdmg==樣的語言,一般認(rèn)為現(xiàn)有SQL數(shù)據(jù)模型已很接近具有時(shí)態(tài)應(yīng)用所要求的支持,必要的另外支持主要是代數(shù)操作和語言的句法。這種觀點(diǎn)的一個(gè)具體實(shí)現(xiàn)是IXSQL,它的數(shù)據(jù)模型與SQL的一樣,但擴(kuò)展了一種“一般時(shí)區(qū)”數(shù)據(jù)型DATEINTERVAL。其語言的代數(shù)操作不變地保留了傳統(tǒng)的關(guān)系代數(shù)操作,但增加了兩個(gè)新的操作:FOLD和UNFOLD。FOLD應(yīng)用于一個(gè)時(shí)態(tài)關(guān)系,將所有其他屬性的值相等、DATE型或DATEINTERVAL型屬性的值可以合并(即構(gòu)成單個(gè)DATEINTERVAL)的元組“疊合”成一單個(gè)元組,該元組的其他屬性值不變,而那個(gè)(些)DATE或DATEINTERVAL型屬性的值為各元組的該屬性值的合并。UNFOLD為FOLD的逆操作。按SQL句法,可定義關(guān)于時(shí)區(qū)的新的謂詞,因而還增加兩個(gè)子句:REFORMAT和NORMALISE,以支持FOLD和UNFOLD。
2.3 時(shí)態(tài)查詢處理的查詢優(yōu)化
在傳統(tǒng)數(shù)據(jù)庫應(yīng)用中,查詢涉及的謂詞一般是等值連接、自然連接等,稱之為等相性謂詞,如果查詢中包含了不等性謂詞,就很難與其它謂詞進(jìn)行組合。而在時(shí)態(tài)查詢中,具有幾個(gè)不等性謂詞合取的連接會(huì)經(jīng)常出現(xiàn),所以故其查詢優(yōu)化的復(fù)雜度就更高。
正是由于其查詢的復(fù)雜度提高,其查詢優(yōu)化的可能性也就更大。時(shí)間是按一個(gè)正方向發(fā)展的,事務(wù)時(shí)間域就連續(xù)地伸展,那么最近的時(shí)間點(diǎn)就是該域中的最大值,這在查詢優(yōu)化和評(píng)價(jià)期都是可以加以利用的。同時(shí)時(shí)態(tài)查詢優(yōu)化還可以利用面向時(shí)間的完整性限制,如,Begin(t)<End(t)對(duì)每一元組t都成立這樣一種判斷等。
單個(gè)查詢可以通過代換代數(shù)表達(dá)式以等價(jià)的更高效的表達(dá)式、改變與特定操作相聯(lián)的存取方法、對(duì)操作采用專門的實(shí)現(xiàn)等技術(shù)來優(yōu)化。第一種要求以一組“重說明”形式的“等價(jià)”的定義,在許多語言的代數(shù)中都標(biāo)明了這種重說明,有的時(shí)態(tài)代數(shù)支持按標(biāo)準(zhǔn)關(guān)系代數(shù)定義的這種重說明,故可使用現(xiàn)有的查詢優(yōu)化。
對(duì)每一代數(shù)操作確定哪一種存取方法最好,這要求元數(shù)據(jù)——關(guān)于存儲(chǔ)的時(shí)態(tài)數(shù)據(jù)統(tǒng)計(jì)和代價(jià)模型——對(duì)每一操作符實(shí)現(xiàn)或存取方法組合的執(zhí)行代價(jià),而對(duì)時(shí)態(tài)數(shù)據(jù)則還要求額外的元數(shù)據(jù),如關(guān)系的有效期、元組的有效期、代理和元組的到達(dá)分布、時(shí)變屬性的分布、時(shí)態(tài)數(shù)據(jù)的規(guī)則性和粒度,等等。
對(duì)時(shí)態(tài)操作符的代價(jià)模型需要專門開發(fā),這方面的工作有的已進(jìn)行,如Tquel的查詢做了這方面的工作。
關(guān)于全局查詢優(yōu)化,要求一個(gè)查詢的集合要同時(shí)被優(yōu)化,這要通過產(chǎn)生一個(gè)比各單個(gè)評(píng)價(jià)計(jì)劃的集合更高效的單一查詢?cè)u(píng)價(jià)計(jì)劃來達(dá)到該目的,采用“狀態(tài)遷移網(wǎng)”似乎是一種好的方法。
3 結(jié)束語
時(shí)態(tài)數(shù)據(jù)庫管理系統(tǒng)的研制以及將時(shí)態(tài)數(shù)據(jù)庫管理系統(tǒng)推出商品化是當(dāng)今數(shù)據(jù)庫領(lǐng)域的一個(gè)研究方向,要研制成為一個(gè)商品化的時(shí)態(tài)數(shù)據(jù)庫管理系統(tǒng)還需圍繞時(shí)態(tài)數(shù)據(jù)庫中的時(shí)態(tài)來解決這一關(guān)鍵問題。一般,在實(shí)現(xiàn)時(shí)態(tài)數(shù)據(jù)庫管理系統(tǒng)之前,先需具有實(shí)現(xiàn)傳統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)原形的經(jīng)驗(yàn),在此基礎(chǔ)上要擴(kuò)展數(shù)據(jù)定義語言、數(shù)據(jù)操作語言、數(shù)據(jù)查詢語言等,使之能夠保存事務(wù)時(shí)間和有效時(shí)間。與傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)不同,時(shí)態(tài)數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)是帶有時(shí)態(tài)信息的,因而它的實(shí)現(xiàn)機(jī)制、實(shí)現(xiàn)技術(shù)不能沿用傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)。本文分析了時(shí)態(tài)數(shù)據(jù)庫實(shí)現(xiàn)的特點(diǎn)和困難,介紹了幾種常見的解決方法,并分析總結(jié)了它們的性能。
參考文獻(xiàn):
[1] Tansel A,Clifford J,Gadia S,et al. Temporal Databases—Theory,Design and Implementation[M].The Benjamin Cummings Publishing Company,1993.
[2] Ben Z J.The Time Relational Model[D].Ph.D. Thesis,Computer Science Dept., ucla,1982.
[3] 何新貴.特種數(shù)據(jù)庫技術(shù)[M].北京:科學(xué)出版社,2000.
[4] 湯庸.時(shí)態(tài)數(shù)據(jù)庫導(dǎo)論[M].北京:北京大學(xué)出版社,2004.
[5] 黃楠,劉愛琴.時(shí)態(tài)數(shù)據(jù)庫技術(shù)[J].微機(jī)發(fā)展,2002(1).
[6] 郝忠孝.時(shí)態(tài)數(shù)據(jù)庫設(shè)計(jì)理論[M].北京:科學(xué)出版社,2009.