版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第3章章 時(shí)態(tài)數(shù)據(jù)庫(kù)技術(shù)時(shí)態(tài)數(shù)據(jù)庫(kù)技術(shù)3.1 數(shù)據(jù)庫(kù)起源與發(fā)展數(shù)據(jù)庫(kù)起源與發(fā)展 時(shí)態(tài)信息的需求與技術(shù)實(shí)際上一直伴隨著數(shù)據(jù)庫(kù)技術(shù)的發(fā)展而產(chǎn)生和發(fā)展。關(guān)于時(shí)態(tài)數(shù)據(jù)庫(kù)的起源與發(fā)展,國(guó)際時(shí)態(tài)數(shù)據(jù)庫(kù)權(quán)威學(xué)者Tansel,A.,Clifford,J., Gadia, Jajodia, S., Segev, A.和R.T.Snodgrass等在 “Temporal databases: theory, design, and implementation”收集了此前時(shí)態(tài)數(shù)據(jù)庫(kù)幾乎所有的重要成果,我國(guó)學(xué)者唐常杰1999年在時(shí)態(tài)數(shù)據(jù)庫(kù)的沿革、特色與代表人物時(shí)態(tài)數(shù)據(jù)庫(kù)二十年回顧之一等文獻(xiàn)中也對(duì)時(shí)態(tài)數(shù)據(jù)庫(kù)技術(shù)前2
2、0年的發(fā)展做了系統(tǒng)回顧。我們通過多年的研究,參閱了大量文獻(xiàn),特別是國(guó)內(nèi)外最新研究動(dòng)態(tài)和應(yīng)用成果,將時(shí)態(tài)信息技術(shù)的起源與發(fā)展分為三個(gè)時(shí)期:開創(chuàng)期(1982年以前)、理論與模型探索階段(1983年至1993年)、應(yīng)用與發(fā)展階段(1994年以來)。 3.1.1開創(chuàng)與形成時(shí)期開創(chuàng)與形成時(shí)期 時(shí)態(tài)特性是信息的客觀存在,到70年代末,80年代初,數(shù)據(jù)庫(kù)技術(shù)的日漸成熟和大容量高速存儲(chǔ)設(shè)備的發(fā)展為時(shí)態(tài)據(jù)庫(kù)技術(shù)的產(chǎn)生與應(yīng)用創(chuàng)造了條件。加州大學(xué)洛杉磯分校J. BenZvi和紐約大學(xué)的J. Clifford在1982年的博士論文是時(shí)態(tài)數(shù)據(jù)庫(kù)技術(shù)開創(chuàng)期的兩個(gè)標(biāo)志性成果。 J. Ben Zvi在1982年完成了博士論文
3、“The Time Relational Model”。其主要貢獻(xiàn)包括:提出了時(shí)態(tài)數(shù)據(jù)庫(kù)模型,以時(shí)間區(qū)間作字段值,提出了N1NF(非1NF) 的TDB,突破了數(shù)據(jù)庫(kù)字段值只能是一個(gè)數(shù)或串的局限,引入了后來被稱為雙時(shí)態(tài)(bi-temporal)的概念,即用有效時(shí)間(valid time)表示被管理對(duì)象在庫(kù)中生命周期,用事務(wù)時(shí)間(transaction time )表示數(shù)據(jù)庫(kù)本身的歷史,引入了時(shí)態(tài)索引結(jié)構(gòu)。這些概念和思想一直沿用至今。標(biāo)志著時(shí)態(tài)數(shù)據(jù)庫(kù)的形成。 同樣是在1982年,紐約大學(xué)的J. Clifford完成了其博士論文“A logical frame work for the Tempor
4、al Semantics and Natural Language Querying of Historical Database ” 。他的主要貢獻(xiàn)是對(duì)歷史數(shù)據(jù)庫(kù)的做了開創(chuàng)性工作,提出了HRDM (Historical Relational Data Model )模型。他研究了在關(guān)系、元組、字段值上加時(shí)態(tài)信息的技術(shù)細(xì)節(jié),引入了歷史關(guān)系模型,歷史關(guān)系代數(shù),將傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)當(dāng)作歷史數(shù)據(jù)庫(kù)的一種特例,即當(dāng)把區(qū)間縮小為一點(diǎn)Now, Now時(shí)的歷史數(shù)據(jù)庫(kù)。 可以說時(shí)態(tài)數(shù)據(jù)庫(kù)是在1982年正式形成。3.1.2 理論與模型探索階段理論與模型探索階段1982年以后,TDB的研究開始走向繁榮時(shí)期。此后的十年
5、中,計(jì)算機(jī)學(xué)術(shù)界對(duì)時(shí)態(tài)數(shù)據(jù)庫(kù)給予了極大的關(guān)注,學(xué)術(shù)界提出了數(shù)以百計(jì)的時(shí)態(tài)數(shù)據(jù)庫(kù)模型和時(shí)態(tài)信息處理方法。此階段,國(guó)際上一些重要大學(xué)和研究機(jī)構(gòu)涌現(xiàn)出一大批研究學(xué)者,形成了一批專門的時(shí)態(tài)數(shù)據(jù)庫(kù)研究集體。最主要的研究集體集中在美國(guó)紐約大學(xué)、依阿華州立大學(xué)、加州大學(xué)伯克利分校、南加利福尼亞大學(xué)、亞利桑那大學(xué)、HP公司和Bell公司的專業(yè)實(shí)驗(yàn)室等。這個(gè)時(shí)期標(biāo)志性成果是A.Tansel, J.Clifford, S.Gadia, S.Jajodia, A.Segev 和 R.T. Snodgrass在1993年共同編輯出版的“Temporal databases: theory, design, and i
6、mplementation” 該書被稱為“世界第一本關(guān)于時(shí)態(tài)數(shù)據(jù)庫(kù)專著”。該書對(duì)此前國(guó)際時(shí)態(tài)數(shù)據(jù)庫(kù)技術(shù)的研究給出了全面的總結(jié)。該書收錄了國(guó)際時(shí)態(tài)數(shù)據(jù)庫(kù)方面重要學(xué)者的研究成果和時(shí)態(tài)數(shù)據(jù)庫(kù)模型。書中列出這13種最有影響的時(shí)態(tài)數(shù)據(jù)模型,除了前面提到J. Ben Zvi和J. Clifford的模型外,其他11種如下:TempSQL, Sharshi. K. Gadia & Sunil, S. Nair, 1985.IXRM (Interval-Extended Relational Model ),Nikos A. Lorentzos,1987.TRM 及TSQL (Temporal Ext
7、ensions to the Relational Model ) S. B. Navathe,1987.HSQL ( Historical Query Language ),N. L. Sarda 1987.TQuel,R. Snodgrass , 1985.TRC (Temporal Relational Calculus ),Abdullah Tansel ,1992TEER, (Temporal Query Language for Enhanced Entity Relationship Model ),R. Elmasri , 1985.TDM (Temporal Data Mod
8、el Based On Time Sequeuce),Arie Segev & Arie Shosham, 1988.OODAplex (Object Oriented Aplex),U. Dayal,1989.Object History, S. Ginsburg, Tanaka,CJ Tang, 1983。Temporal Deductive Databases, Marianne Bandinet 等,1989。這段時(shí)期重要特征是時(shí)態(tài)數(shù)據(jù)庫(kù)理論研究和時(shí)態(tài)數(shù)據(jù)模型探討,因而模型多,但原型系統(tǒng)少,實(shí)際應(yīng)用少。3.1.3 應(yīng)用與發(fā)展階段應(yīng)用與發(fā)展階段經(jīng)過80年代末的“百花齊放”,93年
9、A.Tansel, J.Clifford等人的“Temporal databases: theory, design, and implementation”可以說是劃上了一個(gè)“分號(hào)”。此后,學(xué)術(shù)界的觀點(diǎn)和認(rèn)識(shí)逐步趨向“統(tǒng)一”,從早期的基于關(guān)系代數(shù),到后來的calculus-based, datalog-based, OO等,現(xiàn)在基本上采用擴(kuò)充SQL模型,時(shí)態(tài)模型沒有新的突破。1994年后人們開始進(jìn)入“思索”階段,如何將時(shí)態(tài)數(shù)據(jù)模型“標(biāo)準(zhǔn)化”和“產(chǎn)品化”是這個(gè)時(shí)期重要目標(biāo),而廣泛應(yīng)用和實(shí)踐則是這個(gè)時(shí)期重要特征。在“標(biāo)準(zhǔn)化”方面代表性成果是R. Snodgrass 等人1994年提出的雙時(shí)態(tài)數(shù)據(jù)
10、模型TSQL2, TSQL2是對(duì)SQL-92語言標(biāo)準(zhǔn)的時(shí)態(tài)擴(kuò)充,并提出將TSQL2的相關(guān)結(jié)構(gòu)集成到SQL3標(biāo)準(zhǔn)。1996年已將增加有效時(shí)間(valid time)和事務(wù)時(shí)間(transaction time)的SQL/Temporal方案分別于5月和10月提交到ISO和ANSI委員會(huì)。美國(guó)Christian S. Jensen,Clifford, J., Snodgrass, R.T等2000年合作的“Temporal Database Management”是這階段的重要文獻(xiàn)。在“產(chǎn)品化”方面代表性成果是瑞士TimeConsult公司1998年推出的TimeDB 2.0。TimeDB是一個(gè)雙
11、時(shí)態(tài)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),支持平臺(tái)Java,JDBC。它基于SQL查詢語言,支持時(shí)態(tài)查詢語言ATSQL2。TimeDB作為商業(yè)數(shù)據(jù)庫(kù)Oracle系統(tǒng)的前端運(yùn)行。 ATSQL2的語句(包括查詢、更新和斷言等)被編譯成標(biāo)準(zhǔn)的SQL-92語句在后臺(tái)執(zhí)行。這種方法確保了在不同的平臺(tái)和不同的數(shù)據(jù)庫(kù)管理系統(tǒng)的兼容性。但是目前TimeDB仍沒有能夠真正“產(chǎn)品化”。這個(gè)時(shí)期另一個(gè)重要特征是“時(shí)態(tài)信息的應(yīng)用”。80年代中后期,由于計(jì)算機(jī)相關(guān)技術(shù)的迅速發(fā)展,特別是網(wǎng)絡(luò)與多媒體技術(shù)等技術(shù)的發(fā)展。應(yīng)用領(lǐng)域的許多新需求得以實(shí)現(xiàn),時(shí)態(tài)信息的應(yīng)用就是一個(gè)重要方面。主要應(yīng)用領(lǐng)域包括:地理信息系統(tǒng)、農(nóng)業(yè)信息系統(tǒng),電信信息系統(tǒng),電子商
12、務(wù),電子商務(wù),智能決策支持系統(tǒng),數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘等,特別是時(shí)空(spatio-temporal)信息技術(shù)和多媒體信息技術(shù)的時(shí)態(tài)應(yīng)用。但是,由于時(shí)態(tài)數(shù)據(jù)庫(kù)理論與模型還不夠成熟,這時(shí)期的應(yīng)用大多都是只借助時(shí)態(tài)數(shù)據(jù)庫(kù)的一些概念,時(shí)態(tài)信息的管理與操作的實(shí)現(xiàn)還是采用傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)與相關(guān)應(yīng)用領(lǐng)域的技術(shù)(GIS, Multimedia等)相結(jié)合來完成的。 3.1.4 研究與應(yīng)用現(xiàn)狀研究與應(yīng)用現(xiàn)狀 目前,時(shí)態(tài)信息技術(shù)仍處于研究和發(fā)展階段,現(xiàn)有時(shí)態(tài)數(shù)據(jù)庫(kù)共性概念、研究方法及不足可以歸納如下。 1、在現(xiàn)有的時(shí)態(tài)數(shù)據(jù)模型中,對(duì)時(shí)間數(shù)據(jù)的描述主要是依照J(rèn). Ben Zvi于19791982提出的時(shí)間點(diǎn)/時(shí)間區(qū)間模
13、型、有效時(shí)間(valid time)和事務(wù)時(shí)間(transaction time )以及雙時(shí)態(tài)(Bi-temporal)等概念;時(shí)態(tài)數(shù)據(jù)演算主要是基于J.F.Allen于1984年提出的十三種時(shí)間區(qū)間演算(或其擴(kuò)展)。主要不足是:時(shí)態(tài)數(shù)據(jù)運(yùn)算體系不完備,時(shí)態(tài)關(guān)系演算還沒有系統(tǒng)和有力的數(shù)學(xué)理論支持。 2、時(shí)態(tài)數(shù)據(jù)模型多,但由于時(shí)態(tài)數(shù)據(jù)模型還不夠成熟,還沒有形成較完整的國(guó)際標(biāo)準(zhǔn)。各種模型都還存在一些不足。時(shí)態(tài)數(shù)據(jù)模型一般都是傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的擴(kuò)展,并將傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)作為特例。主要方法是在TDB中增加一些運(yùn)算,AFTER、BEFORE和OVERLAP等;擴(kuò)展一些操作,例如時(shí)態(tài)選擇,時(shí)態(tài)投影、時(shí)態(tài)連接等
14、。目前大部分時(shí)態(tài)數(shù)據(jù)查詢語言是通過擴(kuò)展當(dāng)前的查詢語言如SQL或者Quel,時(shí)態(tài)數(shù)據(jù)查詢功能有限,效率比較低。 3、目前時(shí)態(tài)數(shù)據(jù)庫(kù)研究取得了相當(dāng)?shù)倪M(jìn)展,但是大多研究局限在數(shù)據(jù)庫(kù)的時(shí)態(tài)屬性,而忽視了其他信息的時(shí)態(tài)屬性。時(shí)態(tài)數(shù)據(jù)技術(shù)目前還停留在“數(shù)據(jù)”處理上,關(guān)于時(shí)態(tài)邏輯和推理方面的研究,主要優(yōu)點(diǎn)是符號(hào)演算和推理能力強(qiáng),但是信息處理能力弱,與時(shí)態(tài)數(shù)據(jù)庫(kù)和時(shí)態(tài)信息處理研究相脫離。關(guān)于時(shí)態(tài)知識(shí)與邏輯方面主要包括時(shí)間區(qū)間邏輯運(yùn)算的擴(kuò)充等,沒有涉及時(shí)態(tài)知識(shí)數(shù)據(jù)庫(kù)模型。 4、在應(yīng)用方面,由于80年代數(shù)據(jù)庫(kù)技術(shù)迅速發(fā)展,特別是90年代多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)等發(fā)展,時(shí)態(tài)信息的應(yīng)用呈現(xiàn)出勃勃生機(jī)。但是,由于還沒有成熟
15、的時(shí)態(tài)模型和軟件產(chǎn)品,大部分與時(shí)態(tài)相關(guān)的應(yīng)用,只是借鑒當(dāng)前一些時(shí)態(tài)數(shù)據(jù)模型,在實(shí)際實(shí)現(xiàn)中仍然只能采用傳統(tǒng)的技術(shù),其時(shí)態(tài)部分的解釋是由應(yīng)用程序而非數(shù)據(jù)庫(kù)本身來進(jìn)行。3.2 基本時(shí)態(tài)元素基本時(shí)態(tài)元素3.2.1時(shí)間模型時(shí)間模型 基于對(duì)時(shí)間軸結(jié)構(gòu)的選擇,時(shí)間模型可以劃分如下幾種模型。 1連續(xù)模型(連續(xù)模型(Continuous model) 連續(xù)模型把時(shí)間看作同構(gòu)于實(shí)數(shù),每一個(gè)實(shí)數(shù)對(duì)應(yīng)于一個(gè)時(shí)間點(diǎn)。因此,在時(shí)間軸的兩個(gè)時(shí)間點(diǎn)之間,可以存在其它的時(shí)間點(diǎn)。這種模型能夠最精確地為時(shí)間建模,但是由于現(xiàn)代計(jì)算機(jī)基于數(shù)字邏輯的工作方式,所以不可能無失真的記錄時(shí)間。在許多實(shí)時(shí)控制場(chǎng)合,例如工業(yè)控制領(lǐng)域,需要記錄大量
16、隨時(shí)間不斷變化的數(shù)據(jù)。在這種情況下,往往采取采樣的方式記錄數(shù)據(jù)變化,對(duì)相鄰時(shí)間點(diǎn)之間的數(shù)據(jù)采取插值的方法得到。 2步進(jìn)模型(步進(jìn)模型(Stepwise model) 步進(jìn)模型把數(shù)據(jù)的狀態(tài)看成是時(shí)間的函數(shù)。當(dāng)時(shí)間點(diǎn)上的數(shù)據(jù)狀態(tài)發(fā)生變化時(shí)才記錄狀態(tài)變化,否則保持不變。在這種模型下,時(shí)間序列上任一點(diǎn)上數(shù)據(jù)的值對(duì)應(yīng)于上一次數(shù)據(jù)改變時(shí)保持的狀態(tài),如果要查詢當(dāng)前數(shù)據(jù)的取值,需要回溯。例如,圖中采用步進(jìn)模型登記的某個(gè)教師身份變動(dòng)信息??梢钥吹剑蠲鞯纳矸葑?993年至今發(fā)生了3次變動(dòng),采取步進(jìn)模型只要求記錄三個(gè)點(diǎn)的信息。如果查詢目前該人員的身份,雖然沒有登記當(dāng)前的時(shí)間點(diǎn),但并不是返回一個(gè)無效的空值(Null
17、),而是沿著時(shí)間軸回溯,找到最近發(fā)生的狀態(tài)變化,得到當(dāng)前的身份為“副教授”。與連續(xù)模型不同之處在于,任意兩個(gè)時(shí)間點(diǎn)之間不能通過插值的方法取值。圖2-2 某教師的身份變動(dòng)信息Figure 2-2 The change status of some teacher李明的身份199319982002助教講師副教授時(shí)間軸當(dāng)前身份? 3離散模型(離散模型(Discrete model) 離散模型把時(shí)間和整數(shù)映射起來,在相鄰的兩個(gè)時(shí)間點(diǎn)之間不存在另一個(gè)時(shí)間點(diǎn)。任一時(shí)間點(diǎn)有前驅(qū)和后繼時(shí)間點(diǎn)。在實(shí)際應(yīng)用中,該模型適用于記錄那些在關(guān)鍵時(shí)間點(diǎn)上才有意義的數(shù)據(jù)。例如:考慮某單位的人員工資發(fā)放總額,13月的工資發(fā)放總
18、額分別為19萬元、18萬元和20萬元。可以看到這組數(shù)據(jù)有如下特點(diǎn): 1)在相鄰的兩個(gè)月份之間不存在另一個(gè)月份。如1月和2月。 2)相隔的兩個(gè)時(shí)間點(diǎn)中間月份的數(shù)據(jù),用插值的方法會(huì)得到無效數(shù)據(jù)。通過1月和3月的數(shù)據(jù)無法確定2月數(shù)據(jù)。 3)采取步進(jìn)模型描述可能得出錯(cuò)誤信息。假如現(xiàn)在為4月10日,當(dāng)月的工資尚未發(fā)放,如果回溯,會(huì)得出4月工資發(fā)放總額為20萬元的錯(cuò)誤數(shù)據(jù)。 4恒定模型(恒定模型(Non Temporal model) 有些數(shù)據(jù)是不隨時(shí)間變化的,例如:籍貫、出生地等。這些數(shù)據(jù)只有其本身固有的屬性。但是大部分?jǐn)?shù)據(jù)在一種情況下沒有時(shí)態(tài)屬性,但在另一種情況下往往會(huì)有時(shí)態(tài)屬性。例如:住址、身份、工
19、作單位等。在一般情況下,在建模時(shí)通常沒有充分考慮值隨時(shí)間變化的情況。如果發(fā)生變化時(shí),就采用最新值進(jìn)行替換。3.2.2 時(shí)間點(diǎn)時(shí)間點(diǎn) 基于點(diǎn)的時(shí)間,是將時(shí)間離散化,事物或事件的時(shí)間屬性用時(shí)間點(diǎn)表示。用時(shí)間點(diǎn)的形式來表示時(shí)間元素,這和系統(tǒng)的時(shí)間量子及時(shí)間粒度的關(guān)系較大。 基于點(diǎn)的時(shí)間元素(Pointbased),又稱為時(shí)間點(diǎn)(time instant),或稱時(shí)刻(Time Points)。這種描述方法是把時(shí)間看成一個(gè)個(gè)離散的時(shí)間點(diǎn),這些離散化的時(shí)間點(diǎn)的間隔大小適度時(shí),就可以準(zhǔn)確地描述現(xiàn)實(shí)世界事件發(fā)生及變化的狀況。時(shí)間點(diǎn)是時(shí)間軸上的一點(diǎn),它是和時(shí)間粒度是相關(guān)的。例如1995年3月1日,時(shí)間粒度精確到
20、“天”。如果系統(tǒng)使用的最小時(shí)間粒度是“秒”,則該時(shí)間點(diǎn)在系統(tǒng)內(nèi)的表示必須換算成1995年3月1日0時(shí)0分0秒。3.2.3 時(shí)間區(qū)間與時(shí)間跨度時(shí)間區(qū)間與時(shí)間跨度基于區(qū)間(Intervalbased)的時(shí)間元素中,時(shí)間的基本單位為時(shí)間段或者時(shí)間區(qū)間(time interval)。即通過描述時(shí)間段的起始和終止點(diǎn)來描述時(shí)間區(qū)間。時(shí)間區(qū)間是指一段時(shí)間,有固定的起止時(shí)間點(diǎn)。時(shí)間的區(qū)間的表示方法根據(jù)兩端時(shí)間點(diǎn)是否封閉分為4種,如圖所示。利用時(shí)間區(qū)間也可以方便地描述時(shí)間點(diǎn)。例如:令pipj。在這四種區(qū)間的表達(dá)方式中,一般采用前端封閉,尾端開放的形式,主要的是考慮時(shí)間區(qū)間兼容時(shí)間點(diǎn)的表示方式和時(shí)間區(qū)間的比較謂詞
21、的緣故。 四種區(qū)間 區(qū)間含義 圖例 1) jipp , jiptp - 2) ),jipp jiptp - 3) ,(jipp jiptp - 4) (jipp ,) jiptp - pi , pj :分別表示兩個(gè)時(shí)間點(diǎn); :分別表示左右閉區(qū)間; ( ) :分布表示左右開區(qū)間。 下表中,在每一個(gè)元組后面加上工作的起止時(shí)間。這個(gè)起止時(shí)間值所表示的就是基于區(qū)間的時(shí)間。從這張表可知,若某一元組的起止時(shí)間屬性值隨時(shí)間變化得很快,就會(huì)產(chǎn)生許多新的元組,而這些新的元組和原來的元組相比,所不同的就是時(shí)變屬性(time-varying attribute),例如“工資”、“職務(wù)”項(xiàng)的值,以及對(duì)應(yīng)于時(shí)變屬性的時(shí)
22、間段。但是,在此除去時(shí)間項(xiàng)后所得到結(jié)果是不能作為關(guān)系數(shù)據(jù)庫(kù)的;因?yàn)榭梢宰鳛殛P(guān)鍵字的“工號(hào)”項(xiàng)已經(jīng)有重復(fù)的值了。這和關(guān)系數(shù)據(jù)庫(kù)的要求是不符的??梢娂由蠒r(shí)間屬性后,數(shù)據(jù)庫(kù)特性已經(jīng)有了很大的變化。工號(hào)姓名職務(wù)工資起止時(shí)間019504478李小山講師1000200003, 200209019504478李小山副教授1700200210,Now019504479張又寶副教授1800199809,Now019504480王大江教授2100199909,Now 時(shí)間跨度(time span)是指持續(xù)的一段時(shí)間,表示時(shí)間的長(zhǎng)度。在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi),一般用一個(gè)整數(shù)表示時(shí)間跨度。與時(shí)間區(qū)間類似,時(shí)間跨度也是表示一段時(shí)
23、間;所不同的是,時(shí)間跨度沒有時(shí)間起點(diǎn),也沒有時(shí)間終點(diǎn)。3.2.4時(shí)間粒度與時(shí)間量子時(shí)間粒度與時(shí)間量子 時(shí)間粒度時(shí)間粒度(time granularity)是指描述時(shí)間數(shù)據(jù)的最小時(shí)間單位。表示時(shí)間點(diǎn)之間離散化程度的因素就是時(shí)間粒度。時(shí)間粒度反映了時(shí)態(tài)信息系統(tǒng)中時(shí)間點(diǎn)描述的最小單位,時(shí)間粒度越小,離散的時(shí)間點(diǎn)越多,描述的事件的變化信息越精細(xì)準(zhǔn)確;反之,描述的事件變化的信息越粗糙。 時(shí)間粒度的大小,要受到時(shí)間量子的約束。系統(tǒng)的時(shí)間量子(Chronon)是計(jì)算機(jī)系統(tǒng)所支持的最小的、不可分割的時(shí)間間隔??陀^世界中的時(shí)間,離散化的程度可以任意的小,但是計(jì)算機(jī)系統(tǒng)的離散化程度是受到機(jī)器性能制約的。可見,時(shí)間
24、量子是系統(tǒng)記錄時(shí)間屬性的精確程度的一個(gè)度量。時(shí)間量子越小,系統(tǒng)記錄的精確度越高。在PC平臺(tái)上,時(shí)間量子的范圍可以從0.01秒跨越到1秒,足夠一般的應(yīng)用需求,但是在一些高精度系統(tǒng),例如實(shí)時(shí)系統(tǒng),往往要求更精確的時(shí)間,這就要求更為細(xì)小精確的時(shí)間量子。另外,隨著計(jì)算機(jī)技術(shù)的發(fā)展,時(shí)間量子的精度會(huì)越來越細(xì)。時(shí)間量子是計(jì)算機(jī)系統(tǒng)支持的最小時(shí)間單位,時(shí)間粒度是數(shù)據(jù)庫(kù)系統(tǒng)所定義的時(shí)間單位。時(shí)間粒度的選取是因需要而定的,同時(shí)也受傳統(tǒng)習(xí)慣、應(yīng)用條件的影響。在時(shí)態(tài)數(shù)據(jù)中對(duì)于所有的時(shí)態(tài)數(shù)據(jù)都存在一個(gè)時(shí)態(tài)粒度的屬性。 時(shí)態(tài)粒度存在形式 在數(shù)據(jù)庫(kù)系統(tǒng)中存在兩種形式的粒度:?jiǎn)我涣6群妥兞6取?1單一粒度單一粒度 單一粒度
25、是指數(shù)據(jù)庫(kù)系統(tǒng)只支持一種時(shí)間粒度。不同的數(shù)據(jù)庫(kù)系統(tǒng)可以存在不同的時(shí)間粒度,但對(duì)某一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),只認(rèn)可一個(gè)時(shí)間粒度。要根據(jù)具體的應(yīng)用選擇不同的時(shí)間粒度。 2多粒度多粒度 多粒度是指數(shù)據(jù)系統(tǒng)中對(duì)于不同的屬性,關(guān)系可以存在不同的時(shí)間粒度。 下表中描述的航空飛機(jī)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)存在兩個(gè)關(guān)系表:flight_departures 和 vacations. 表flight_departures 存儲(chǔ)關(guān)于飛機(jī)起飛時(shí)間的信息,這飛機(jī)起飛時(shí)間用分的時(shí)間粒度計(jì)算。 Flight-DeparturesFlight#At_time531997-11-20 14:382001997-11-27 14:346531997
26、-11-27 12:386581997-11-30 10:03 表vacation存儲(chǔ)關(guān)于假期的信息,時(shí)間粒度是天。每個(gè)元組記錄一個(gè)時(shí)間元素用時(shí)間期間,而不是一個(gè)單獨(dú)的一天。這假期表包括了美國(guó)傳統(tǒng)假期,例如勞動(dòng)節(jié),圣誕節(jié),和感恩節(jié)。感恩節(jié)假期是在十一月的第四個(gè)星期四,是一個(gè)四天的節(jié)日。VacationsVacationFrom-timeTo-timeLabor Day1997-09-011997-09-03Thanksgiving1997-11-241997-11-28Christmas1997-12-241997-12-26 表flight_departures和表vacation所表示的時(shí)
27、間粒度是不一樣的,這種不一樣的粒度一方面是和應(yīng)用系統(tǒng)的實(shí)際需要相關(guān)的。飛機(jī)起飛一般是精確到分鐘,而節(jié)假日當(dāng)然精確到天即可。 另一方面,系統(tǒng)為了節(jié)約開銷,提供不同的時(shí)間粒度是非常有效的手段。一個(gè)理想的時(shí)態(tài)數(shù)據(jù)庫(kù)在處理時(shí)態(tài)數(shù)據(jù)時(shí)應(yīng)能根據(jù)具體情況智能地調(diào)整時(shí)間粒度,以便在有限的內(nèi)存資源上,處理大范圍時(shí)段中的由多種歷法描述的歷史事件。 時(shí)間粒度間的運(yùn)算由于多種粒度的存在,而系統(tǒng)通常只能處理一種粒度,這就要求不同粒度之間能相互轉(zhuǎn)化。例如,在表2數(shù)據(jù)庫(kù)中,一個(gè)用戶想在感恩節(jié)坐飛機(jī)回家,就查詢數(shù)據(jù)庫(kù)決定在感恩節(jié)期間可以乘坐那班航班。檢索可以用公式描述為: select * from vacations, f
28、light_departures where vacation= thanksgiving and flight_departures.at_time overlaps(vacations.from_time, vacations.to_time);在這個(gè)檢索中,用戶利用時(shí)態(tài)交集操作,用“overlaps” 去決定哪一班飛機(jī)在感恩節(jié)期間起飛。參與overlaps操作的時(shí)間元素處在不同的時(shí)間粒度下。在SQL-92不能處理這混合的時(shí)間粒度,對(duì)于這種情況,系統(tǒng)返回錯(cuò)誤提示,顯示操作數(shù)類型不兼容(vacations.from_time、 vacations.to_time 是date類型,F(xiàn)light
29、_departures.at_time 是timestamp類型)問題的發(fā)生,主要是數(shù)據(jù)庫(kù)缺乏在兩個(gè)不同時(shí)間粒度間進(jìn)行轉(zhuǎn)化的工具。 粒度之間的轉(zhuǎn)換粒度之間的轉(zhuǎn)換 時(shí)間值的粒度影響了有關(guān)涉及時(shí)間值的表達(dá)式的語義。例如當(dāng)比較一個(gè)時(shí)間粒度是天的時(shí)間值和一個(gè)時(shí)間粒度是分的時(shí)間值時(shí),表達(dá)式代表什么的語義,如何操作。這時(shí)就需要存在轉(zhuǎn)換函數(shù),實(shí)現(xiàn)粒度之間的轉(zhuǎn)換。可以采用下面的兩個(gè)函數(shù)實(shí)現(xiàn)這個(gè)目的: scale和cast函數(shù):cast操作和scale操作是相似的,但是scale操作產(chǎn)生不確定的時(shí)間值,而cast操作返回一個(gè)確定的時(shí)間點(diǎn)。 3.2.5時(shí)間元素時(shí)間元素NOW與與UC 時(shí)間元素NOWNow是一個(gè)時(shí)間
30、變?cè)S著當(dāng)前時(shí)間的變化而變化,記錄了隨時(shí)間變化的信息,它的有效值依賴于當(dāng)前時(shí)間。時(shí)間變?cè)狽ow在數(shù)據(jù)庫(kù)包括傳統(tǒng)的SQL數(shù)據(jù)庫(kù)中都非常有用。例如,在銀行方面的應(yīng)用,維護(hù)顧客帳戶存款額的記錄,具體說假如一個(gè)顧客于某年1月17日在銀行開了一個(gè)帳戶并存了200元,存款額自開戶日起就開始生效,若沒有新的交易發(fā)生,那么存款額的有效時(shí)間就一直延續(xù)到當(dāng)前時(shí)間,因此在16日,存款的有效期是1月15,1月16,在17日,有效期變?yōu)?月15,1月17等等,每天對(duì)這些數(shù)據(jù)進(jìn)行更新來確切地反映有效時(shí)間是很不實(shí)際的,而用變?cè)狽ow就能很好的解決這個(gè)問題,可以把有效期表示為1月15,Now,暗示存款額從1月15到當(dāng)前時(shí)間
31、一直有效,避免了頻繁更新時(shí)間的問題,因此在時(shí)態(tài)數(shù)據(jù)庫(kù)中應(yīng)用Now是非常便利和實(shí)用的。 例如數(shù)據(jù)庫(kù)中記錄了某年王平是中山大學(xué)的教員,例如2003年,在這里不考慮年份,表3-3顯示了該大學(xué)數(shù)據(jù)庫(kù)中相關(guān)元組的雇傭情況,有效時(shí)間屬性“from”顯示王平于6月1 日被聘為該校助教,屬性“to”值Now顯示他終止該職務(wù)的時(shí)間,from和to 組成了該元組的有效時(shí)間區(qū)間,實(shí)際上表3-3(a)表明王平從6月1日至今一直是該校教員,因此,在查詢?cè)撔.?dāng)前教員名單時(shí)一定包含王平。隨著時(shí)間的流逝,Now的值也跟著改變來準(zhǔn)確體現(xiàn)不同的當(dāng)前時(shí)間。 教員姓名職位VALID TIMEFROMTO王平助教6月1日Now 王平助
32、教6月1日Forever王平助教6月1日6月6日王平可能被聘為助教6月6日Now 時(shí)間元素UCUtill Changed(簡(jiǎn)記UC)主要用于事務(wù)時(shí)間中的時(shí)間變?cè)?,表示直到該元組改變的時(shí)間,在應(yīng)用于事務(wù)時(shí)間中它有比Now更精確的解釋語義,并與有效時(shí)間中的時(shí)間變?cè)狽ow相區(qū)別,但與Now 具有類似的含義。事務(wù)時(shí)間(transaction time)是指記錄邏輯上被存放在數(shù)據(jù)庫(kù)中的時(shí)間,它反映了記錄被查、刪、改的時(shí)間。事務(wù)時(shí)間與有效時(shí)間正交的一個(gè)概念,表示了數(shù)據(jù)庫(kù)的變化過程。一般有效時(shí)間由用戶提供,事務(wù)時(shí)間由數(shù)據(jù)庫(kù)管理員在更新數(shù)據(jù)庫(kù)時(shí)自動(dòng)生成,事務(wù)時(shí)間區(qū)間start,stop中的start表示該事務(wù)
33、的起始時(shí)間,stop表示該事務(wù)的終止時(shí)間,當(dāng)插入一個(gè)元組時(shí),將start時(shí)間初始化為插入時(shí)的當(dāng)前時(shí)間,stop時(shí)間記為UC,若刪除一個(gè)元組,則將該元組的stop值UC改為當(dāng)前時(shí)間,這個(gè)元組在邏輯上刪除。數(shù)據(jù)庫(kù)更新集合了插入和刪除兩種操作。 考慮事務(wù)時(shí)間模型如表4所示,事務(wù)時(shí)間關(guān)系與有效時(shí)間關(guān)系有不同的解釋,start時(shí)間值表示該元組錄入數(shù)據(jù)庫(kù)的時(shí)間,如6月1日,我們才知道王平是該校助教,stop值UC表明數(shù)據(jù)庫(kù)中一直記錄著王平是該校助教,若王平于7 月10日離開該校,要在邏輯上刪除這一元組,只要將“stop”值改為7月10日即可。 教員姓名職務(wù)Trans time StartStop 王平助教
34、6月1日UC3.3時(shí)態(tài)數(shù)據(jù)庫(kù)基本概念時(shí)態(tài)數(shù)據(jù)庫(kù)基本概念3.3.1三種基本時(shí)間三種基本時(shí)間 用戶自定義時(shí)間 用戶自定義時(shí)間(User-defined Time)是指用戶根據(jù)自己的需要或理解定義的時(shí)間。這種時(shí)間的屬性值一般是時(shí)間點(diǎn),用戶本身會(huì)解釋他所給出的時(shí)間信息,數(shù)據(jù)庫(kù)系統(tǒng)不需要解釋該數(shù)據(jù)的含義,只需將此時(shí)間域等同于其他一般的屬性域來理解,對(duì)它的操作和對(duì)普通的字符串操作幾乎沒有什么差別。 一般傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)都支持用戶自定義數(shù)據(jù)類型,允許用戶在原有系統(tǒng)數(shù)據(jù)類型的基礎(chǔ)上建立自己定義的數(shù)據(jù)類型。這些用戶自定義的數(shù)據(jù)類型,在數(shù)據(jù)表建立或結(jié)構(gòu)修改時(shí),和其他標(biāo)準(zhǔn)數(shù)據(jù)類型一樣被用戶使用。和傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)一樣,
35、時(shí)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)不對(duì)用戶自定義時(shí)間進(jìn)行任何特殊的處理,不需要專門的語言支持。用戶自定義時(shí)間值是完全應(yīng)用依賴的,由用戶和系統(tǒng)以常規(guī)方式存取。 有效時(shí)間有效時(shí)間(Valid Time)是指一個(gè)對(duì)象(事件)在現(xiàn)實(shí)世界中發(fā)生并保持的那段時(shí)間,或者該對(duì)象在現(xiàn)實(shí)世界中為真的時(shí)間。有效時(shí)間既可以反映過去和現(xiàn)在的時(shí)間,還可以反映將來的時(shí)間。有效時(shí)間的含義依賴于具體應(yīng)用,取值是否有效視具體應(yīng)用場(chǎng)合而定,對(duì)應(yīng)于實(shí)際應(yīng)用的需要或現(xiàn)實(shí)世界變化的歷史。有效時(shí)間可以是單一的時(shí)間點(diǎn),單一的時(shí)間區(qū)間,或者是時(shí)間點(diǎn)的集合,時(shí)間區(qū)間的有限集合,或者是整個(gè)時(shí)間域。也就是說,元組的屬性可以在任意的時(shí)間點(diǎn),任意的時(shí)間區(qū)間里取值為真。和用
36、戶定義的時(shí)間不同,當(dāng)查詢語句被檢測(cè)到有時(shí)態(tài)語義的時(shí)候,有效時(shí)間是由數(shù)據(jù)庫(kù)系統(tǒng)解釋的。而且有效時(shí)間可以被更新,有效時(shí)間的提供和更新也是由用戶來完成的。通常把只支持有效時(shí)間的數(shù)據(jù)庫(kù)稱為歷史數(shù)據(jù)庫(kù)(Historical Database)。歷史數(shù)據(jù)庫(kù)記錄現(xiàn)實(shí)世界在有效時(shí)間點(diǎn)的事件,或者現(xiàn)實(shí)世界的狀態(tài)變化。有效時(shí)間對(duì)事物的描述比較直觀、容易理解。姓名身份起始有效時(shí)間終止有效時(shí)間李明助教1993年7月1日1998年5月3日李明講師1998年5月4日2002年7月2日李明副教授2002年7月3日now從表5可以看到李明的身份變動(dòng)歷史,通過增加起始有效時(shí)間(Starting Valid Time)和終止有效
37、時(shí)間(Ending Valid Time)2個(gè)字段,可以記錄數(shù)據(jù)的有效時(shí)間。是否增加了2個(gè)字段,就可以從傳統(tǒng)的關(guān)系型數(shù)據(jù)管理系統(tǒng)變?yōu)闅v史數(shù)據(jù)管理系統(tǒng)了呢?當(dāng)然沒有那么簡(jiǎn)單。作為一個(gè)時(shí)態(tài)DBMS,必須支持時(shí)態(tài)數(shù)據(jù)定義語言(TDDL) ,時(shí)態(tài)數(shù)據(jù)操作語言(TDML) ,時(shí)態(tài)查詢語言(Temporal Query Language)和時(shí)態(tài)約束(Temporal Constraints)。例如:如果在關(guān)系型數(shù)據(jù)管理系統(tǒng)(RDBMS)下實(shí)現(xiàn)表5的存儲(chǔ)關(guān)系,可以修改第1條記錄的終止有效日期為2000年3月4日 從數(shù)據(jù)存儲(chǔ)的角度來看沒有問題,但是從時(shí)態(tài)數(shù)據(jù)的角度觀察,發(fā)現(xiàn)第1條和第2條記錄有時(shí)間沖突,在兩個(gè)
38、時(shí)間區(qū)間的交集1998年9月4日2002年3月4日這段時(shí)間,該人員到底是助教還是講師?這就涉及到時(shí)態(tài)的約束問題。時(shí)態(tài)DBMS自身提供時(shí)態(tài)約束管理,而簡(jiǎn)單的在關(guān)系型DBMS基礎(chǔ)上通過擴(kuò)充字段來實(shí)現(xiàn)歷史數(shù)據(jù)庫(kù),需要用戶編制程序完成約束。有效時(shí)間有如下兩個(gè)主要特點(diǎn):有效時(shí)間值的含義依賴于具體應(yīng)用,取值是否有效視具體應(yīng)用場(chǎng)合而定,即涉及到數(shù)據(jù)約束問題;有效時(shí)間可以指過去、現(xiàn)在和未來。姓名身份起始有效時(shí)間終止有效時(shí)間李明助教1993年7月1日2002年3月4日李明講師1998年5月4日2002年7月2日李明副教授2002年7月3日now 事務(wù)時(shí)間事務(wù)時(shí)間(Transaction Time)是指一個(gè)數(shù)據(jù)庫(kù)
39、對(duì)象進(jìn)行操作的時(shí)間,是一個(gè)事實(shí)存儲(chǔ)在數(shù)據(jù)庫(kù)中的時(shí)間,它記錄著對(duì)數(shù)據(jù)庫(kù)修改或更新的各種操作歷史,對(duì)應(yīng)于現(xiàn)有事務(wù)或現(xiàn)有數(shù)據(jù)庫(kù)狀態(tài)變遷的歷史。有時(shí)也稱事務(wù)時(shí)間為系統(tǒng)時(shí)間(system time)。事務(wù)時(shí)間對(duì)應(yīng)于現(xiàn)有事務(wù)或現(xiàn)有數(shù)據(jù)庫(kù)的狀態(tài)變遷的歷史。它是應(yīng)用獨(dú)立的,用戶不可以修改事務(wù)時(shí)間。數(shù)據(jù)庫(kù)中的數(shù)據(jù)錄入數(shù)據(jù)庫(kù)的時(shí)間,修改和刪除的時(shí)間是由系統(tǒng)時(shí)鐘決定的,而修改后的數(shù)據(jù)也是不能夠改變的。處理事務(wù)時(shí)間的方法是存儲(chǔ)所有數(shù)據(jù)庫(kù)的狀態(tài)。修改只能對(duì)最后一個(gè)狀態(tài)進(jìn)行,但是可以查詢?nèi)我庖粋€(gè)狀態(tài)。通常把支持事務(wù)時(shí)間的數(shù)據(jù)庫(kù)稱為回滾數(shù)據(jù)庫(kù)(Rollback Database)?;貪L數(shù)據(jù)庫(kù)記錄數(shù)據(jù)庫(kù)的自身變化,沿著事務(wù)時(shí)
40、間軸記錄數(shù)據(jù)狀態(tài),按照事務(wù)時(shí)間排序,保留了所有狀態(tài)的演變歷史。回滾數(shù)據(jù)庫(kù)可以被看作是只能追加記錄的數(shù)據(jù)庫(kù),它不記錄未來的數(shù)據(jù)庫(kù)狀態(tài)。 事務(wù)時(shí)間有如下主要特點(diǎn): 事務(wù)時(shí)間的值由系統(tǒng)時(shí)鐘給出,它獨(dú)立于應(yīng)用,用戶不能修改事務(wù)時(shí)間; 事務(wù)時(shí)間不能晚于現(xiàn)在時(shí)間,因?yàn)樗从持鴶?shù)據(jù)庫(kù)實(shí)際操作的時(shí)間,不能指未來,而有效時(shí)間可以指未來。3.3.2 兩個(gè)時(shí)間維兩個(gè)時(shí)間維 傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)有兩維,其一是屬性維,其二是元組維,分別為橫向維和縱向維。時(shí)態(tài)數(shù)據(jù)庫(kù)在傳統(tǒng)數(shù)據(jù)庫(kù)的基礎(chǔ)上增加了時(shí)間維概念,時(shí)間維指的是有效時(shí)間維和事務(wù)時(shí)間維。于是時(shí)態(tài)數(shù)據(jù)庫(kù)就變成了四維結(jié)構(gòu) 姓名出生年月職稱工資有效時(shí)間李小山196009講師100
41、0(199809,now)張又寶196411副教授1700(199803,now)19981218姓名出生年月職稱工資有效時(shí)間李小山196009講師10001300(199809,199903)(199904,now)張又寶196411副教授1700(199803,now) 19990618姓名出生年月職稱工資有效時(shí)間李小山196009講師10001300(199809,199903)(199904,now)張又寶196411副教授教授17002100(199803,200003)(200004,now) 20000918姓名出生年月職稱工資有效時(shí)間李小山196009講師副教授10001300
42、1800(199809,199903)(199904,200103)(200104,now)張又寶196411副教授系主任17002100(199803,200003)(200004,now) 20020618表中的事務(wù)時(shí)間體現(xiàn)在什么地方呢?在圖3中有四個(gè)表,每個(gè)表的左邊都對(duì)應(yīng)一個(gè)時(shí)間值,分別是1998-12-18、1999-06-18、2000-09-18和2002-06-18,這四個(gè)時(shí)間點(diǎn)就是我們所說到的事務(wù)時(shí)間,分別表示相對(duì)應(yīng)數(shù)據(jù)庫(kù)表更新操作的時(shí)間。我們用一根數(shù)軸來表示事務(wù)時(shí)間,數(shù)軸是從系統(tǒng)支持的最小的那個(gè)時(shí)間點(diǎn)開始一直向無限延伸,事務(wù)時(shí)間的取值就是這個(gè)時(shí)間軸中的某一點(diǎn)或是某些點(diǎn)。 如果
43、一個(gè)元組是在數(shù)據(jù)庫(kù)建立之前有效,那么它在數(shù)據(jù)庫(kù)中的第一次事務(wù)時(shí)間,就是建立該數(shù)據(jù)庫(kù)的時(shí)間,直至此時(shí)這個(gè)元組的有效性才被體現(xiàn)出來。當(dāng)元組無效后,倘若數(shù)據(jù)庫(kù)沒有進(jìn)行與事務(wù)時(shí)間相關(guān)的更新操作,元組真正的有效性也是體現(xiàn)不出來的。同樣,該元組倘若要失效的話,必須要有新的事務(wù)時(shí)間才可能體現(xiàn)出來。可見,沒有事務(wù)時(shí)間,元組的有效性是沒有辦法體現(xiàn)的;沒有有效時(shí)間,僅有事務(wù)時(shí)間,數(shù)據(jù)庫(kù)的元組僅僅是一個(gè)個(gè)孤立的快照。 有效時(shí)間和事務(wù)時(shí)間是互不相關(guān)的(Orthogonal)。這好比一個(gè)人的出生年月在他出生的時(shí)候就有效了,而且此時(shí)間永遠(yuǎn)有效。但是該數(shù)據(jù)何時(shí)進(jìn)入數(shù)據(jù)庫(kù),何時(shí)從數(shù)據(jù)庫(kù)中被刪除,完全是由系統(tǒng)決定的,它和有效時(shí)
44、間完全沒有關(guān)系。 另外,在時(shí)態(tài)數(shù)據(jù)庫(kù)中,更新數(shù)據(jù)的時(shí)候,舊的數(shù)據(jù)仍然存在,并且可以訪問和修改。新的數(shù)據(jù)則用作當(dāng)前值供用戶訪問。 3.3.3快照數(shù)據(jù)庫(kù)快照數(shù)據(jù)庫(kù) 快照數(shù)據(jù)庫(kù)(Snapshot Database)是以在特定的時(shí)刻的瞬間快照來建立模型,來考慮現(xiàn)實(shí)世界,盡管現(xiàn)實(shí)世界是變化的,快照數(shù)據(jù)庫(kù)只是反映了某一個(gè)瞬間的情況。之所以在這里將快照數(shù)據(jù)庫(kù)介紹一下,是因?yàn)榭煺諗?shù)據(jù)庫(kù)也支持一種時(shí)間用戶定義時(shí)間。而且對(duì)快照數(shù)據(jù)庫(kù)的研究,可以看到數(shù)據(jù)庫(kù)對(duì)時(shí)變屬性的支持變化情況。 快照數(shù)據(jù)庫(kù)由靜態(tài)的二維關(guān)系表組成,分別是屬性維和元組維。數(shù)據(jù)庫(kù)的狀態(tài)變遷由事務(wù)實(shí)現(xiàn)的,一旦事務(wù)提交,其狀態(tài)變遷就立即生效,原來的數(shù)據(jù)庫(kù)
45、狀態(tài)也就完全被丟失和遺忘,相應(yīng)的,現(xiàn)實(shí)世界的狀態(tài)也一樣被丟失和遺忘。 快照數(shù)據(jù)庫(kù)不能夠進(jìn)行與時(shí)間相關(guān)的任何工作,不能進(jìn)行含有時(shí)間因素的推理,不能進(jìn)行以往歷史數(shù)據(jù)的查詢;而且,它更改的歷史數(shù)據(jù)全部丟失。實(shí)際上是一種非時(shí)態(tài)數(shù)據(jù)庫(kù),它反映的是數(shù)據(jù)的當(dāng)前狀態(tài),隨著時(shí)間的推移,數(shù)據(jù)庫(kù)狀態(tài)在不斷的改變,新狀態(tài)將覆蓋舊的狀態(tài)。狀態(tài)之間的轉(zhuǎn)變是通過更新操作實(shí)現(xiàn)的,如insert into、delete和update語句。狀態(tài)之間轉(zhuǎn)變的確切時(shí)刻是發(fā)生在Commit的時(shí)刻(邏輯意義上的改變,物理意義上的更新時(shí)刻由DBMS具體實(shí)現(xiàn),因?yàn)榉謱拥捏w系結(jié)構(gòu)提供了物理獨(dú)立性)。這種數(shù)據(jù)庫(kù)稱為“快照數(shù)據(jù)庫(kù)”,意思是它只把握數(shù)
46、據(jù)庫(kù)的當(dāng)前的一個(gè)快照狀態(tài),“快照”狀態(tài)是隨著時(shí)間在不斷改變的。這里所說的“快照”和關(guān)系數(shù)據(jù)庫(kù)中的“快照”的概念是有差別的:關(guān)系數(shù)據(jù)庫(kù)中的快照是為了處理的需要(比如年底結(jié)帳的需要)對(duì)某個(gè)時(shí)刻(12月31日23時(shí)59分59秒)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行獨(dú)立的數(shù)據(jù)備份。而這里使用的“快照”只是指數(shù)據(jù)庫(kù)只保留一個(gè)數(shù)據(jù)庫(kù)狀態(tài)(通常是當(dāng)前狀態(tài))的性質(zhì)。 事務(wù)時(shí)間維 有效時(shí)間維 Now Now 從時(shí)態(tài)數(shù)據(jù)庫(kù)的觀點(diǎn)來看,快照數(shù)據(jù)庫(kù)不區(qū)分事務(wù)時(shí)間和有效時(shí)間。它采用這樣的假定:一個(gè)存儲(chǔ)在數(shù)據(jù)庫(kù)中的元組,一定是真實(shí)世界中的有效事實(shí) 3.3.4回滾數(shù)據(jù)庫(kù)回滾數(shù)據(jù)庫(kù) 回滾數(shù)據(jù)庫(kù)(Rollback Database)支持事務(wù)時(shí)間
47、,它按事務(wù)時(shí)間進(jìn)行編址,保存了過去每次事務(wù)提交,狀態(tài)演變之前的狀態(tài)。 回滾數(shù)據(jù)庫(kù)記錄了數(shù)據(jù)庫(kù)事務(wù)變化歷史,它實(shí)現(xiàn)的是事務(wù)時(shí)間軸。任何一個(gè)更新語句的執(zhí)行將產(chǎn)生一個(gè)新的數(shù)據(jù)庫(kù)狀態(tài)。新狀態(tài)不會(huì)覆蓋舊的狀態(tài)。因此沒有數(shù)據(jù)會(huì)被物理刪除。通過將一個(gè)元組的事務(wù)結(jié)束時(shí)間設(shè)為執(zhí)行語句的當(dāng)時(shí)時(shí)間,從而實(shí)現(xiàn)元組在語義上的“刪除”。事務(wù)時(shí)間區(qū)間可以看成是該元組在快照數(shù)據(jù)庫(kù)中存在的歷史。 事務(wù)時(shí)間維 Now Now 有效時(shí)間維 表7是在回滾數(shù)據(jù)庫(kù)中張三的記錄,而在不同歷史時(shí)期的快照數(shù)據(jù)庫(kù)中張三記錄的情況分別如表8和表9;表8是1998.1-1999.1快照數(shù)據(jù)庫(kù)中張三的記錄;表9 是1999.1之后,快照數(shù)據(jù)庫(kù)中張三的
48、記錄,它覆蓋了表8的記錄。 IDNAMEBIRTHDAYSALARY100張三1974.1.13000IDNAMEBIRTHDAYSALARY100張三1974.1.15000IDNAMEBIRTHDAYSALARYTTSTTE100張三1974.1.130001998.11999.1100張三1974.1.150001999.1回滾數(shù)據(jù)庫(kù)不足之處也很為明顯,主要表現(xiàn)如下:1)回滾數(shù)據(jù)庫(kù)因?yàn)槭前凑帐聞?wù)時(shí)間編址,記錄的是數(shù)據(jù)庫(kù)狀態(tài)變遷的歷史,而不是現(xiàn)實(shí)世界變化的歷史,現(xiàn)實(shí)世界中元組的屬性在某個(gè)時(shí)間點(diǎn)(屬性的有效時(shí)間)變化了,但是因?yàn)閿?shù)據(jù)庫(kù)在這個(gè)時(shí)間點(diǎn)沒有執(zhí)行事務(wù),即數(shù)據(jù)庫(kù)的事務(wù)時(shí)間沒有改變,那么
49、此時(shí),元組的時(shí)變屬性的改變?cè)跀?shù)據(jù)庫(kù)中根本沒有體現(xiàn)出來。2) 過去元組的錯(cuò)誤決不可以更正,而只能查看。當(dāng)我們發(fā)現(xiàn)元組有錯(cuò)誤的時(shí)候,如果此事務(wù)已經(jīng)提交的話,我們就無能為力了,所能做的工作只能是等待下次系統(tǒng)的事務(wù)時(shí)間進(jìn)行新的改動(dòng)。但是,改動(dòng)的只是提交前的數(shù)據(jù)庫(kù),即最近一個(gè)事務(wù)時(shí)間點(diǎn)的數(shù)據(jù)庫(kù),在此之前的狀態(tài)不能再改變。3)回滾數(shù)據(jù)庫(kù)的冗余太多。在前一個(gè)事務(wù)時(shí)間內(nèi)提交的數(shù)據(jù),即使在下一個(gè)事務(wù)時(shí)間沒有數(shù)據(jù)的改變或者改變甚小也需要進(jìn)行所有的數(shù)據(jù)的重新輸入及儲(chǔ)存,這種冗余是較大的,特別是那種時(shí)變較小的情況。 3.3.5歷史數(shù)據(jù)庫(kù)歷史數(shù)據(jù)庫(kù) 記錄事實(shí)的有效時(shí)間的數(shù)據(jù)庫(kù)稱為歷史數(shù)據(jù)庫(kù)。歷史數(shù)據(jù)庫(kù)記錄了在有效時(shí)間軸
50、上的一系列的數(shù)據(jù)庫(kù)狀態(tài),可能是過去、現(xiàn)在或?qū)?。它可以被看作是記錄了事?shí)在真實(shí)世界的變化過程 事務(wù)時(shí)間 有效時(shí)間 now now 。歷史數(shù)據(jù)庫(kù)上的查詢語言必須具有有效時(shí)間演算能力。同時(shí)更新語句必須指明修改語句涉及哪些數(shù)據(jù)庫(kù)狀態(tài)(也就是只對(duì)指明的時(shí)間區(qū)間內(nèi)有效的記錄才進(jìn)行修改)。 歷史數(shù)據(jù)庫(kù)無法記錄數(shù)據(jù)庫(kù)的修改歷史。因此,在歷史數(shù)據(jù)庫(kù)中有效時(shí)間的修改歷史也是不能被記錄的。例如某個(gè)事實(shí)的有效時(shí)間有錯(cuò)誤而進(jìn)行了更新,新的記錄將覆蓋舊的記錄。 歷史數(shù)據(jù)庫(kù)主要特點(diǎn)是支持有效時(shí)間,數(shù)據(jù)冗余度小,結(jié)構(gòu)相對(duì)簡(jiǎn)單。但是也存在一些不知,主要不足之處是:不支持事務(wù)時(shí)間,不可以象回滾數(shù)據(jù)庫(kù)一樣對(duì)以前的某一個(gè)狀態(tài)進(jìn)行查
51、詢 3.3.6雙時(shí)態(tài)數(shù)據(jù)庫(kù)雙時(shí)態(tài)數(shù)據(jù)庫(kù) 回滾數(shù)據(jù)庫(kù)和歷史數(shù)據(jù)庫(kù)各具優(yōu)點(diǎn),通過設(shè)計(jì)一種數(shù)據(jù)庫(kù),使它既支持事務(wù)時(shí)間又支持有效時(shí)間,這就是雙時(shí)態(tài)數(shù)據(jù)庫(kù)(Bitemporal Database)。雙時(shí)態(tài)數(shù)據(jù)庫(kù)集成了前三種類型數(shù)據(jù)庫(kù)的功能特性,儲(chǔ)存了數(shù)據(jù)庫(kù)和現(xiàn)實(shí)世界兩者發(fā)展的歷史。 雙時(shí)態(tài)數(shù)據(jù)庫(kù)由時(shí)態(tài)關(guān)系組成,其時(shí)態(tài)關(guān)系是一個(gè)四維結(jié)構(gòu)。其中兩維是屬性和元組,另外兩維是事務(wù)時(shí)間和有效時(shí)間(圖7),一個(gè)時(shí)態(tài)關(guān)系可以看成是一個(gè)歷史關(guān)系的序列。對(duì)時(shí)態(tài)關(guān)系的一個(gè)回滾操作則是選取了一個(gè)特定的歷史關(guān)系,可對(duì)該歷史關(guān)系進(jìn)行查詢。而每一個(gè)事務(wù)則引起一個(gè)新的歷史關(guān)系的建立。 事務(wù)時(shí)間 有效時(shí)間 Now now 雙時(shí)態(tài)關(guān)系的
52、一種實(shí)現(xiàn)方法就是組合回滾數(shù)據(jù)庫(kù)和歷史數(shù)據(jù)庫(kù)成為新的數(shù)據(jù)庫(kù)。 t4 t3 t3 t3 t3 t2 t2 t2 t2 t1 t1 t1 t1 t5 T1 T2 T3 T4 有效時(shí)間 事務(wù)時(shí)間 圖8所示的是一個(gè)元組的四個(gè)歷史數(shù)據(jù)庫(kù)中的有效時(shí)間片斷組合。我們只是在原來的三維結(jié)構(gòu)的基礎(chǔ)之上加了第四維有效時(shí)間維,使得數(shù)據(jù)庫(kù)變?yōu)樗膫€(gè)維結(jié)構(gòu),元組維和屬性維與原來無異,故不在此給出。 可以看出,在事務(wù)時(shí)間軸上,取不同的時(shí)間點(diǎn),就產(chǎn)生不同的歷史數(shù)據(jù)庫(kù),我們可以對(duì)上圖中的對(duì)應(yīng)于四個(gè)事務(wù)時(shí)間點(diǎn)T1,T2,T3,T4的歷史數(shù)據(jù)庫(kù)進(jìn)行查詢操作。當(dāng)然圖中所示的只是一個(gè)元組的四個(gè)歷史數(shù)據(jù)庫(kù)中的有效時(shí)間片斷組合,對(duì)于其他元組的
53、情況可以類似的進(jìn)行推理,而后,這些元組組合到一起即形成了四個(gè)不同的歷史數(shù)據(jù)庫(kù)。 所以,這四個(gè)歷史數(shù)據(jù)庫(kù)也可以成為是快照歷史數(shù)據(jù)庫(kù),說是快照,是因?yàn)檫@四個(gè)數(shù)據(jù)庫(kù)是分別是四個(gè)事務(wù)時(shí)間的快照;說是歷史數(shù)據(jù)庫(kù),是因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)里面的紀(jì)錄是歷史數(shù)據(jù)庫(kù)屬性的,記載的是現(xiàn)實(shí)元組的真實(shí)變化的時(shí)間,而非數(shù)據(jù)庫(kù)狀態(tài)變化的時(shí)間,我們可以在這四個(gè)數(shù)據(jù)庫(kù)里面進(jìn)行增加、改正、刪除及查詢的工作 雙時(shí)態(tài)數(shù)據(jù)庫(kù)綜合了回滾數(shù)據(jù)庫(kù)和歷史數(shù)據(jù)庫(kù)的優(yōu)良特性,它即保存了數(shù)據(jù)庫(kù)變遷的歷史,又保存了現(xiàn)實(shí)世界的真實(shí)的數(shù)據(jù)屬性。 這種數(shù)據(jù)庫(kù),才是真正的對(duì)數(shù)據(jù)時(shí)態(tài)屬性支持的數(shù)據(jù)庫(kù),以前的回滾數(shù)據(jù)庫(kù)很難稱得上是純粹的時(shí)態(tài)數(shù)據(jù)庫(kù)。 應(yīng)當(dāng)注意的是,雙時(shí)
54、態(tài)數(shù)據(jù)庫(kù)是以犧牲大容量的儲(chǔ)存空間為代價(jià)的,對(duì)雙時(shí)態(tài)數(shù)據(jù)庫(kù)的儲(chǔ)存進(jìn)行優(yōu)化是時(shí)態(tài)數(shù)據(jù)庫(kù)研究的一個(gè)重要工作。3.4時(shí)態(tài)關(guān)系操作時(shí)態(tài)關(guān)系操作3.4.1基本概念和術(shù)語基本概念和術(shù)語 1.時(shí)間量子時(shí)間量子 時(shí)間量子(chronon)被定義為時(shí)態(tài)系統(tǒng)所支持的最小的、不可再分解的時(shí)間間隔。通常取時(shí)間量子為0.01秒至1秒。 2系統(tǒng)時(shí)間論域系統(tǒng)時(shí)間論域 系統(tǒng)支持的時(shí)間起點(diǎn)記為0,系統(tǒng)時(shí)間論域?yàn)橛邢蕖㈦x散、有序的時(shí)間量子的集合,記為Sys_T=0,1,2,Now,MaxSysTime。 3時(shí)間區(qū)間時(shí)間區(qū)間 在Sys_T中,以兩個(gè)時(shí)間量子為上下限的時(shí)間量子的集合。例如t,t+1,t+2,T,簡(jiǎn)記為t,T,就是一個(gè)時(shí)
55、間區(qū)間。 4屬性值的生命周期和元組的生命周期屬性值的生命周期和元組的生命周期在歷史數(shù)據(jù)庫(kù)HRDM模型中,有效時(shí)間用生命周期表述,生命周期是Sys_T的子集,它所表達(dá)的是元組或者屬性的有效時(shí)間。作為有效時(shí)間,生命周期反映了元組或其屬性在現(xiàn)實(shí)世界為真的時(shí)間。 另一方面,元組的生命周期是指作為數(shù)據(jù)庫(kù)表中記錄的單位元素元組所存在的有效時(shí)間,稱為元組的生命周期。數(shù)據(jù)庫(kù)中的表的記錄,是以元組的形式進(jìn)行記錄的,每個(gè)表可以說是一個(gè)集合,而每個(gè)記錄可以說是集合的元素,因而每個(gè)記錄是沒有先后順序的,每個(gè)記錄也是獨(dú)立的。作為記錄中的時(shí)變屬性,有其自己的生命周期,而作為記錄的獨(dú)立單位元組,它的有效時(shí)間,就是元組的生命
56、周期。 5生命周期的集合運(yùn)算生命周期的集合運(yùn)算 生命周期是系統(tǒng)時(shí)間域Sys_T的子集。作為集合,生命周期經(jīng)過集合運(yùn)算,如并、交、差和邏輯非等運(yùn)算后的結(jié)果仍然是生命周期。3.4.2 HRDM數(shù)學(xué)模型數(shù)學(xué)模型 全屬性集是抽象的符號(hào)集,記為UA1,A2,An,屬性A的值域記為Dom(A),是含有至少兩個(gè)元素的集合,設(shè)T為系統(tǒng)時(shí)間論域,DiDOM(Ai),D=D1D2Dn,下面利用集合T和D定義時(shí)態(tài)映射。記集合TDTD1,TD2,TDn,其中對(duì)每個(gè)i,Difi|fi:TDi,fi是從時(shí)間域到屬性值域D的偏映射,集合TTg|g:TT,其中g(shù)是從T到T的偏映射。歷史關(guān)系數(shù)據(jù)模型(HRDM)的屬性定義于時(shí)態(tài)
57、偏函數(shù)集合上,集合HD(TDTT)=TT,TD1,TD2, TDn是偏映射的集合,這里稱它為時(shí)態(tài)映射集。CDfHD|F(x)常量為常數(shù)函數(shù)集合,用符號(hào)f|D表示函數(shù)f在D上的限制。 定義定義3-1 :一個(gè)HRDM模型的關(guān)系模式T是一個(gè)有序四元組R。其中: AA1,A2,是T的屬性集。 K是R的關(guān)鍵屬性集。 ALS:AR2T是屬性A的生命周期賦值函數(shù)(Assign LifeSpan),其函數(shù)值簡(jiǎn)記為ALS(A,R). DOM:AHD從屬性集到歷史函數(shù)集的映射,它滿足兩個(gè)條件,I)對(duì)所有關(guān)鍵字屬性Aj,DOM(Aj)CD(直觀解釋:關(guān)鍵字值不隨時(shí)間變化);II)Dom(A) ALS(A,R)(直觀
58、解釋:A的取值范圍是生命周期中允許取值范圍)。 定義定義3-2:關(guān)系模式R上的一個(gè)元組是有序二元組t,其中 t.e是元組的生命周期。 t.v是一個(gè)函數(shù),稱為元組的值,對(duì)每一個(gè)屬性AR,它把A映射到DOM(A)中。 性質(zhì)性質(zhì)3-1:HRDM模型中,關(guān)系模式R上的關(guān)系r是有限個(gè)符合下列條件的元組集合;如果t1和t2屬于r,對(duì)每一個(gè)ut1.e和vt2.e,t1.v(k)(u)t2.v(k)(v)。也就是說:關(guān)系r中不允許任意元組的關(guān)鍵字有重復(fù)。 性質(zhì)性質(zhì)3-2:HRDM中,關(guān)系r的生命周期,記為L(zhǎng)S(r);關(guān)系r 的生命周期是各個(gè)屬性生命周期的并。如果,rt1,t2,tn,則LS(r)t1.et2.
59、etn.e。3.4.3 歷史關(guān)系代數(shù)歷史關(guān)系代數(shù) 在HRDM中的兩個(gè)關(guān)系r1和r2必須滿足下面的HRDM可并性條件才能作并、交、差運(yùn)算。HRDM可并性條件如下: 設(shè)關(guān)系r1和r2分別是模式R1=和 R2上的兩個(gè)關(guān)系,如果R1R2,且DOM1DOM2,則稱r1和r2滿足可并性條件。 1并運(yùn)算并運(yùn)算 如果關(guān)系r1和r2滿足HRDM可并性條件,則它們之間的并運(yùn)算是將r1和r2中的時(shí)態(tài)元素合并到一起,并注意時(shí)間區(qū)間的歸并。 兩個(gè)關(guān)系作并運(yùn)算后,元組的個(gè)數(shù)并不一定是兩個(gè)關(guān)系元組個(gè)數(shù)的和,這是因?yàn)樵诓⒌倪^程中關(guān)鍵字值相同的元組需要合并,因此它們的生命周期是因子生命周期的并。工號(hào)工資生命周期92950228
60、892,95 800 元96,99 1280元00,Now 1900元92,Now92950228993,95 800 元96,99 1400元00,Now 1900元93,Now工號(hào)工資生命周期929502288 96,99 1280元 00,02 1900元03,now 2100元96,Now929502289 96,99 1400元 00,02 1900元 03,now,2200元96,Now工號(hào)工資生命周期92950228892,95 800 元96,99 1280元00,02 1900元 03,now 2100元92,Now92950228993,95 800 元96,99 1400元00,02 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向steam教育的2024《荷塘月色》教學(xué)課件開發(fā)
- 2024關(guān)于保護(hù)環(huán)境的演講(35篇)
- 2021年-某局黨組對(duì)于機(jī)構(gòu)編制工作情況報(bào)告(匯編)
- 初中文言實(shí)詞虛詞歸納總結(jié)
- 2024年KUKA機(jī)器人培訓(xùn):打造未來智能制造人才
- 六頂思維的帽子全文
- 2024年電影《信條》公開課教案:教學(xué)方法論
- 工業(yè)機(jī)器人編程:2024年安川機(jī)器人培訓(xùn)手冊(cè)
- 2025版高考語文一輪復(fù)習(xí)專項(xiàng)對(duì)點(diǎn)練22鑒賞現(xiàn)代詩(shī)歌的語言和表達(dá)技巧含解析
- 2025屆高考生物一輪復(fù)習(xí)課后限時(shí)集訓(xùn)2細(xì)胞中的元素及無機(jī)化合物含解析新人教版
- 城市公益公墓區(qū)建設(shè)方案
- 第七單元測(cè)試卷-2024-2025學(xué)年語文三年級(jí)上冊(cè)統(tǒng)編版
- 智能網(wǎng)聯(lián)汽車電子電氣架構(gòu)產(chǎn)業(yè)技術(shù)路線圖
- 1輸變電工程施工質(zhì)量驗(yàn)收統(tǒng)一表式(線路工程)-2024年版
- 護(hù)理觀察瞳孔
- 期末 (試題) -2024-2025學(xué)年人教PEP版英語六年級(jí)上冊(cè)
- 第五單元 倍的認(rèn)識(shí)(單元測(cè)試)-2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)人教版
- 讓我們一起去追“星”!兩彈一星之核彈老人魏世杰課件高二下學(xué)期愛國(guó)主義教育主題班會(huì)
- 不銹鋼管市場(chǎng)洞察報(bào)告
- 課程定位與課程設(shè)計(jì)情況
- 基礎(chǔ)設(shè)施和公用事業(yè)特許經(jīng)營(yíng)管理辦法修訂及影響專題講座課件
評(píng)論
0/150
提交評(píng)論