摘 要:針對偏序時態數據庫進行研究,提出了非嚴格偏序時態類型集、偏序時態模塊模式、偏序TFD集的模式投影、偏序時態模塊投影和偏序時態BC范式等概念,并給出了避免時態類型間復雜操作的偏序時態BC范式的分解算法,對其正確性、可終止性進行了證明,并對算法的時間復雜度進行了分析。為偏序時態數據庫的規范化設計奠定了基礎。
關鍵詞:非嚴格偏序時態類型集; 偏序時態模塊模式; 偏序時態BC范式; 多時間粒度
中圖分類號:TP311.13文獻標志碼:A
文章編號:1001-3695(2009)09-3310-04
doi:10.3969/j.issn.1001-3695.2009.09.031
Research of TBCNF decomposition in partial order temporal database
WAN Jing HAO Zhong-xiao1, 2
(1.Institute of Computer Science Technology, Harbin University of Science Technology, Harbin 150080, China; 2.Institute of Computer Science Technology, Harbin Institute of Technology, Harbin 150001, China)
Abstract:This paper investigated partial-order temporal database, gave the concepts of non-strict partial-order temporal type set, partial-order temporal module scheme,partial-order TFD sets’ scheme projection, partial-order temporal module projection and partial-order temporal BCNF etc. It also proposed the partial-order temporal BCNF decomposition algorithm which could avoid complex operations applied to temporal types. The proof for its correction, termination and the time complexity analysis were also given. It sets the foundation for normalization of partial-order temporal database.
Key words:non-strict partial-order temporal type set; partial-order temporal module scheme; partial-order temporal BCNF; multiple time granularities
0 引言
多粒度時態數據庫中由于多粒度時間維的引入,使得其規范化設計極其復雜。如何為多粒度時態數據庫設計行之有效的規范化方法,是近年來時態數據庫理論研究人員致力研究的方向。在時態數據庫的規范化研究過程中,Jensen等人[1]、Wang等人[2]、Wijsen[3,4]以及Combi等人[5]提出了各自的時態數據依賴概念。其中Wang和Combi等人提出的時態函數依賴能夠處理多時間粒度。時態范式在時態數據庫的規范化設計中起著重要的作用。在時態數據庫設計的研究領域中,已經提出的一些時態數據庫的范式有Segev的1TNF、Navathe的TNF、Lorentzos的P和Q范式、Jensen等人的T3NF和TBCNF[1]、Wang等人的T3NF和TBCNF[2]。其中,Segev的1TNF、Navathe的TNF、Lorentzos的P和Q范式都是針對特定的時態數據模型,而且它們都偏離了傳統的關系數據庫范式,不是傳統范式真正意義上的擴展;Jensen等人的T3NF和TBCNF是對傳統范式的擴展,但只考慮了時態關系快照中的數據冗余,沒有考慮快照間的數據冗余,而且沒有考慮多時間粒度的問題;Wang等人的T3NF和TBCNF是對Jensen等人工作的擴展,考慮了快照間的數據冗余,而且考慮了多時間粒度的問題,但是,由于多時間粒度的引入以及時態類型間的復雜操作,使得其分解算法相當復雜,難以用其進行有效的時態數據庫設計。根據多粒度時態數據庫中所涉及的時態類型之間是否存在細于關系,可以將多粒度時態數據庫的規范化設計研究劃分為全序時態數據庫的規范化設計研究與偏序時態數據庫的規范化設計研究。國內郝忠孝教授等人[6,7]對全序時態模式中的模式分解問題進行了討論,對強全序時態模式中的多值依賴問題[8]進行了相關研究。
本文針對偏序時態模式的分解問題進行了相關研究,提出了偏序時態模塊模式、偏序TFD集的模式投影、偏序時態模塊投影和偏序時態BC范式(PO_TBCNF)等概念,并給出了避免時態類型間復雜操作的偏序時態BC范式的分解算法,對其正確性、可終止性進行了證明,并對算法的時間復雜度進行了分析。
1 基本概念
有關時態類型、細于關系、集細于關系、時態模塊模式與時態模塊、時態候選關鍵字、時態函數依賴(TFD)和TFD導出等概念的定義以及TFD推導公理、TFD有限推導公理的描述均參見文獻[2]。
定義1 偏序時態類型集。給定時態類型集T = {μ1, μ2, …, μn},若其中存在兩個μi,μj(1≤i≤j≤n),有μiμj不成立且μjμi不成立,則稱T是偏序時態類型集。
定義2 嚴格偏序時態類型集。給定時態類型集T = {μ1, μ2, …, μn},如果其中存在時態類型μi,使得 μiμj不成立,且μj≤μi不成立,1≤j≤n,j ≠ i,則稱T是嚴格偏序時態類型集。
定義3 非嚴格偏序時態類型集。給定偏序時態類型集T={μ1, μ2, …, μn},如果其中存在時態類型μi,使得 μic{μ1, μ2, …, μi-1, μi+1, …, μn}成立,1≤i≤n,則稱T是非嚴格偏序時態類型集。
定義4 最大下限。給定非嚴格偏序時態類型集T = {μ1, μ2, …, μn},設T1為T的子集,則T1在T中的最大下限為μi,μicT1且不存在μj,使得μiμj,μjcT1(1≤i, j≤n)記為gll(T1, T) = μi。
定義5 TFD集的時態類型集[6]。F是一個TFD集,則F的時態類型集T={ν|存在TFD X→νY∈F},也稱F具有時態類型集T。
定義6 偏序TFD集。設F為一TFD集,如果F的時態類型集T為偏序時態類型集,則稱F為偏序TFD集。
定理1 設M= (R, μ,)為一時態模塊,則對于任一TFD X→νY,XYR且μ與ν為偏序關系,X→νY在M上不成立。
證明 根據TFD的定義,如果一個TFD X→νY在M= (R, μ,)上成立,意味著在被ν的同一時刻j1覆蓋的μ的任意兩個時刻i1,i2上存在的兩個元組t1=(i1),t2=(i2),若有t1[X]=t2[X],則有t1[Y] = t2[Y]。但因為μ與ν為偏序關系,在μ中必存在某時刻i,μ(i)ν(j),j為ν中任意時刻,所以無法判斷TFD X→νY在有關μ(i)的元組上能否成立,即無法證明TFD X→νY是否能在M上成立。證畢。
根據定理1,在一個時態模塊(R, μ,)上,對于任一TFDX→νY,XYR且μ與ν為偏序關系,都無法論證X→νY在M上的滿足性,因此只有當XYR且μγ,TFD X→γY才有可能被M所滿足。由此得出偏序時態模塊模式定義如下:
定義7 偏序時態模塊模式。一個時態模塊模式(R, μ),如果(R, μ)上成立的TFD集F為偏序TFD集,且對于任一TFD X→νY∈F,有μν(即μ與F的時態類型集T構成一個非嚴格偏序時態類型集),則稱(R, μ)是偏序時態模塊模式。一個偏序時態模塊是一個三元組(R, μ,)。其中:(R, μ)為偏序時態模塊模式;是一個時間窗口函數,即從N(正整數)到2Tup(R)的映射(Tup(R)為全部元組的集合),使得對每個i≥1,如果μ(i)=,則(i)=。
定義8 偏序TFD集的模式投影。給定時態模塊模式(R, μ)和偏序TFD集F,則F到模式(R, μ)上的投影記做π(R,μ)(F),定義為:π(R,μ)(F)={X→νY∣F├f X→νY,XYR且μν,或μ與ν為偏序關系,ν∈{μ∪T}(T為F的時態類型集)}。
對于X→γY∈F,XYR且μ與γ為偏序關系,X→γY在時態模塊(R, μ,)上將不再成立。
定義9偏序時態模塊投影。偏序時態模塊M=(R, μ, ), R1R,μν,則M 在(R1, ν)上的投影π(R1,ν)(M)=(R1, ν,1),對任意i≥0,1 (i)=∪j:μ(j)ν(i)πR1((j))。其中:π為傳統關系數據庫中的投影操作;及1分別為M及π(R1,ν)(M)的時間窗口函數。
2 偏序時態BC范式
Wang等人[2]指出,由于文中的TBCNF分解算法是基于Ullman在1988年提出的復雜度為指數級的BCNF分解算法,其TBCNF分解算法的復雜度也是指數級的。并且由于算法中涉及時態類型間的復雜計算而使之難以理解,更難以運用到實際的時態數據庫設計中,本文針對偏序時態模塊模式提出了偏序時態BC范式的概念,并給出了它的一個滿足無損連接性的模式分解算法,其算法復雜度為多項式級的。
定義10 偏序時態BC范式(PO_TBCNF)。對于偏序TFD集F約束的偏序時態模塊模式(R, μ),T為F的時態類型集,如果對于F中的每個TFD X→νA,XAR,AX,以下條件成立:X是(R, μ)的時態超候選關鍵字,且μ=ν,則稱(R, μ)是屬于偏序時態BC范式(PO_TBCNF)的。
定義11 時態模塊在時態類型上的展開模塊。設M=(R, μ,),γμ,Mγ= (R, γ,γ),對每個i≥1, j≥1,γ(j) μ(i),有γ(j) =(i),稱Mγ為M在時態類型γ上的展開模塊。
定義12 偏序時態自然連接。設M1=(R1, μ,1),M2=(R2, ν,2)。其中:μ,ν∈T(T為非嚴格偏序時態類型集)。M1和M2的偏序時態自然連接M1 PO_T M2,是時態模塊M = (R1∪R2, γ,),其中,γ=gll({μ, ν}, T),對每個i≥1,有(i) =1γ(i) 2γ(i)。其中:為傳統的自然連接操作;1γ、2γ分別為M1和M2在γ上展開模塊的時間窗口函數。
定義13 偏序時態模塊模式分解。偏序時態模塊模式(R, μ)的分解是一個時態模塊模式集合ρ= {(R1, μ1), …, (Rk, μk)},滿足:
a)R= R1∪…∪Rk。
b){μ, μ1, …, μk}為一偏序時態類型集,且μμi,i= 1, …, k。
與傳統的關系模式分解類似,在對偏序時態模塊模式進行分解從而得到一個性能較好的偏序時態數據庫模式設計時,必須考慮所產生的分解與原偏序時態模塊模式的等價性問題。如果偏序時態模塊模式的一個分解與原偏序時態模塊模式等價,則在原偏序時態模塊模式下的任一滿足原模式中全部TFDs的時態模塊在分解之后應能通過偏序時態自然連接運算恢復出來,這一特性被稱做偏序分解的連接無損性。
定義14 偏序無損分解。設(R, μ)為一偏序時態模塊模式,F為偏序TFDs集。如果對(R, μ)上的每個滿足F中全部TFDs的時態模塊M,有M=π(R1,μ1)(M) PO_T …PO_Tπ(Rk,μk)(M),稱(R, μ)關于F的一個分解ρ= {(R1, μ1), …, (Rk, μk)}為偏序無損分解。
定義15 偏序時刻無損分解。設(R, μ)為一偏序時態模塊模式,F為偏序TFDs集。如果對μ的每個非空時刻T≥1,(T) =1μ(T)… kμ(T)成立,則稱(R, μ)關于F的一個分解ρ= { (R1, μ1),…,(Rk, μk)}為偏序時刻無損分解。為(R, μ)的時間窗口函數,1μ,…,φkμ分別為(R1, μ1),…,(Rk, μk)在μ上展開模塊的時間窗口函數。
定理2 設(R, μ)為一偏序時態模塊模式,F為偏序TFDs集,ρ為(R, μ)關于F的一個分解,則ρ為(R, μ)關于F的一個偏序無損分解,當且僅當它是(R, μ)關于F的一個偏序時刻無損分解。
證明 充分性。設M = (R, μ,)為一滿足F的偏序時態模塊,ρ= {(R1, μ1),…,(Rk, μk)} 為(R, μ)關于F的一個偏序時刻無損分解。對每個1≤i≤k,設Mi =π(Ri,μi)(M)= (Ri, μi,i),∪ki=1Ri =R。設M′ = M1 PO_T … PO_T Mk =(∪ki=1Ri, ν,′) = (R, ν,′),因為ρ為(R, μ)關于F的一個偏序時刻無損分解,所以對于μ的每個非空時刻T≥1,(T)=1μ(T) … kμ(T)。由定義12可知,即為′ 而ν=μ,因此M = M′ = M1 PO_T … PO_T Mk,即ρ為(R, μ)關于F的一個偏序無損分解。
必要性。設ρ= {(R1, μ1),…,(Rk, μk)} 為(R, μ)關于F的一個偏序無損分解,M=(R, μ,)為一個滿足F的偏序時態模塊。對每個1≤i≤k,設Mi =π(Ri,μi)(M)= (Ri, μi,i),∪ki=1Ri =R。由ρ為(R, μ)關于F的一個偏序無損分解可知,M=M1 PO_T … PO_T Mk;再根據定義12可知,對于μ的每個非空時刻T,(T) =1μ(T) …kμ(T)。即ρ為(R, μ)關于F的一個偏序時刻無損分解。證畢。
定理3 給定偏序時態模塊模式(R1∪R2, μ),F為其上成立的偏序TFD集,如果F中存在R1∩R2→νR2,則(R1∪R2, μ)的分解ρ= {(R1, μ),(R2, ν)} (μν)關于F是偏序無損的。
證明 設M= (R1∪R2, μ,)為一滿足F中全部TFDs的偏序時態模塊,π(R1,μ)(M)= (R1, μ,1),π(R2,ν)(M) = (R2, ν,2) 分別為M在(R1, μ)、(R2, ν)上的偏序時態模塊投影。只需證明對于μ的每個非空時刻T≥1,(T)=1μ(T) 2μ(T),1μ,2μ分別為(R1, μ),(R2, ν)在μ上的展開模塊的時間窗口函數。然后根據定義15即可知ρ= {(R1, μ),(R2, ν)}為一偏序時刻無損分解,再根據定理2可證明它是(R1∪R2, μ)關于F的一個偏序無損分解。
設元組t∈(T),由定義9可知t[R1]∈1(T),t[R2]∈2(T′),μ(T) ν(T′);由定義11知t[R1]∈1μ(T),t[R2]∈2μ(T),則由自然連接的定義可知t∈1μ(T) 2μ(T),因此(T) 1μ(T) 2μ(T)。
設元組t∈1μ(T) 2μ(T),則在1μ(T)和2μ(T)中分別存在t1和t2使得t[R1] = t1,t[R2] = t2。由定義11知,在1(T)和2(T′)中必存在t1和t2使得t[R1] = t1,t[R2] = t2。再由定義9知,在(T)中存在t1′使得t1′[R1] = t1,且存在T′′使(T′′)中有t2′使得t2′[R2] = t2,μ(T,T′′) ν(T′)。由R1∩R2 R1,R1∩R2 R2可知,t1′[R1∩R2] = t1[R1∩R2] =t[R1∩R2] = t2[R1∩R2] = t2′[R1∩R2]。因為R1∩R2→νR2,μ(T,T′′) ν(T′),t1′∈(T),t2′∈(T′′),可得t1′[R2] = t2′[R2]。再由t[R1] = t1= t1′[R1],t[R2]= t2 = t2′[R2] = t1′[R2]可知,t[R1∪R2] = t1′[R1∪R2],即t = t1′,所認t∈(T),1μ(T) 2μ(T) (T)。證畢。
算法1 PO_TBCNF_DECIDING(PO_TBCNF判定算法)
輸入:偏序時態模塊模式(R, μ),(R, μ)上成立的偏序TFD集F。
輸出:若(R, μ)屬于PO_TBCNF,則輸出true,否則輸出1。
PO_TBCNF _DECIDING(R, μ,F)
TK := Temporal—Candidate—keys(R, μ, F);
for 每一個TFD:X→νY∈F and Test do
if μ≠ν then [Test :=1; Violate_TFD := X→νY;]
for 每一個TFD:X→νY∈F and Test do
[Flag :=1;
for 每一個 K∈TK do
if KX then Flag:=true;
if not Flag then [Test:=1;
Violate_TFD:= X→νY;]]
return(Test);
end.
定理4算法PO_TBCNF_DECIDING能正確判定偏序時態模塊模式(R, μ)是否屬于偏序時態BC范式,并且是可終止的,其時間復雜度為O(n2p+pq+q2)。其中:n為全部時態候選關鍵字的個數;p為F中TFD的個數;q為R中的屬性個數。
證明 正確性。算法1中用到的算法Temporal—Candidate—keys[7]能正確求出(R, μ)的時態候選關鍵字集。算法1根據偏序時態BC范式的定義,對于F中的每一個TFD,先測試它的時態類型是否與偏序時態模塊模式(R, μ)的時態類型一致,再測試它的左部是否包含時態候選關鍵字,只有全部條件都滿足時,才判定為偏序時態BC范式,故算法是正確的。
終止性。由于算法Temporal—Candidate—keys是可終止的,并且F中TFD的個數和(R, μ)中時態候選關鍵字的個數都是有限的,故算法中的for循環可終止。
時間復雜度。算法Temporal—Candidate—keys的時間復雜度為O(n2p+ pq+q2),算法1中第一個for循環的時間復雜度為O(p),第二個for循環的時間復雜度為O(np),故算法總的時間復雜度為O(n2p+pq+q2)。
3 偏序時態BC范式分解方法
在一個偏序時態模塊模式(R, μ)向偏序時態BC范式分解的過程中,由于其上成立的TFD集F為偏序TFD集,當根據其子模式(Ri, μi)中使其違反PO_TBCNF條件的TFD X→vY來分解得到兩個子模式(Ri-Y, μi) 和(XY, ν)時,如果有Z→γW∈π(XY, ν) (F),ZWXY且ν與γ為偏序關系,則TFD Z→γW在分解后得到的子模式(XY, ν)上不能夠繼續成立,因而無法消除子模式(XY, ν)中由TFD Z→γW引起的時態冗余,稱這一類時態冗余為偏序時態冗余。為了消除偏序時態冗余,需首先根據子模式(Ri, μi)中的TFD Z→γW來分解得到兩個子模式(Ri-W, μi) 和(ZW, γ),然后再繼續分解。尋找造成偏序時態冗余的TFD的算法如下。
算法2 TFD_FIND(查找造成偏序時態冗余的TFD)
輸入:偏序時態模塊模式(R, μ)上成立的偏序TFD集F,F中的一個TFD X→νY。
輸出:造成偏序時態冗余的TFD。
TFD_FIND(F, X→νY)
while 存在TFD Zi→γiWi∈π(R1, type) (F) 且γi與type
為偏序關系do
[R1:=ZiWi;
type:=γi;
i:= i+1;]
if i≠0 then result :=Zi-1→γi-1Wi-1;
return(result);
end.
定理5 算法TFD_FIND能夠正確求得在偏序時態模塊模式(R, μ)向(XY, ν)子模塊上進行分解時,造成(XY, ν)子模塊中存在偏序時態冗余的TFD,并且是可終止的,其時間復雜度為O(pq)。其中p和q的含義同算法1。
證明 正確性。 算法2在while循環語句的第一次循環中,查找是否存在TFD Z0→γ0W0∈π(XY, ν) (F) 且γ0與ν為偏序關系。如果存在,則此TFD必定會造成子模塊(XY, ν)中的偏序時態冗余,但如果按照此TFD Z0→γ0W0向(Z0 W0, γ0)子模塊上進行分解,一旦存在TFD Z1→γ1W1∈π(Z0 W0, γ0) (F) 且γ0與γ1為偏序關系,則TFD Z1→γ1W1還會造成子模塊(Z0 W0, γ0)中的偏序時態冗余,依此類推。算法2在最終再也找不到會造成下一級偏序時態冗余的TFD的情況下退出while循環,此時得到的TFD Zi-1→γi-1Wi-1即為造成最終的偏序時態冗余的TFD。
終止性。由于(R, μ)中屬性個數與F中TFD的個數是有限的,while語句的循環次數是有限的,算法是可終止的。
算法時間復雜度。設p為F中TFD的個數,q為R中的屬性個數,而算法中while循環的時間復雜度為O(pq),因此算法總的時間復雜為O(pq)。
由此得到偏序時態BC范式分解方法如下:
算法3 PO_TBCNF(偏序時態BC范式分解算法)
輸入:偏序時態模塊模式(R, μ),(R, μ)上成立的偏序TFD集F。
輸出:滿足偏序連接無損性的PO_TBCNF數據庫模式ρPO_BC。
PO_TBCNF(R, μ,F)
begin
ρNBC := {(R, μ)};
ρPO_BC :=;
for ρNBC中每一個子模式(Ri, μi) do
[if PO_TBCNF_DECIDING(Ri, μi , π(Ri,μi)(F))
then ρPO_BC :=ρPO_BC∪(Ri, μi);
else [ redun_TFD := TFD_FIND(F, Violate_TFD); { Violate_TFD 為PO_TBCNF_DECIDING 算法中求得的使(Ri, μi)違反PO_TBCNF 條件的TFD }
X:= redun_TFD的左部;
Y:= redun_TFD的右部;
ν:= redun_TFD的時態類型;
ρNBC := ρNBC-(Ri, μi)∪{(Ri-Y, μi), (XY, ν) };]]
return(ρPO_BC);
end.
定理6 算法PO_TBCNF正確求得了偏序時態模塊模式(R, μ)關于偏序TFDs集F的一個滿足偏序無損連接的PO_TBCNF的分解ρPO_BC,并且是可終止的。其時間復雜度為O(mn2p+mpq+mq2)。其中:n、p和q的含義同算法1;m為(R, μ)的滿足PO_TBCNF分解的子模式個數。
證明 終止性。由于(R, μ)中屬性個數與時態類型數目是有限的,(R, μ)的子模式的個數是有限的,并且由定理4知算法PO_TBCNF_DECIDING是正確的,故算法是可終止的。
正確性。a)PO_TBCNF滿足性。算法在for循環中,對每一個不屬于PO_TBCNF的子模式都進行再次分解,直至所有的子模式都屬于PO_TBCNF為止,因此結果返回的ρPO_BC中的子模式必定都屬于PO_TBCNF,并且由于算法中考慮了分解過程中可能產生的偏序時態冗余,使得最終的分解更優化。b)偏序無損連接性。算法中對于(R, μ)的每一次分解,都是根據其子模式(Ri, μi)中使其違反PO_TBCNF條件并且會造成偏序時態冗余的TFD X→νY來分解的,分解后的兩個子模式為(Ri-Y, μi) 和(XY, ν),根據定理3,分解一定滿足偏序無損連接性。
算法時間復雜度。設(R, μ)滿足PO_TBCNF分解的子模式個數為m,由于算法PO_TBCNF_DECIDING的時間復雜度為O(n2p+pq+q2),算法TFD_FIND的時間復雜度為O(pq),算法總的時間復雜為O(mn2p+mpq+mq2 )。
4 結束語
時間粒度是所有時態數據所擁有的共同特點。已經提出的基于多時間粒度時態函數依賴的范式分解算法相當復雜,在實際應用中難以用其進行有效的時態數據庫設計。這種復雜性在很大程度上是由偏序時態類型間的復雜運算引起的。本文針對偏序時態數據庫進行研究,提出了非嚴格偏序時態類型集、偏序時態模塊模式、偏序TFD集的模式投影、偏序時態模塊投影和偏序時態BC范式(PO_TBCNF)等概念,并給出了避免時態類型間復雜操作的偏序時態BC范式的分解算法,對其正確性、可終止性進行了證明,并對算法的時間復雜度進行了分析。下一步的主要工作是涉及時態多值依賴的偏序時態模塊模式的規范化研究。
參考文獻:
[1]JENSEN C S, SNODGRASS R T, SOO M D. Extending existing dependency theory to temporal databases[J]. IEEE Trans on Know-ledge and Data Engineering, 1996, 8(4):563-582.
[2]WANG X S, BETTINI C, JAJODIA S. Logical design for temporal databases with multiple granularities[J]. ACM Trans on Database System, 1997, 22(2):115-170.
[3]WIJSEN J. Design of temporal relational databases based dynamic and temporal functional dependencies[C]// Proc of International Workshop on Recent Advances in Temporal Databases. New York:Sprin-ger-Verlag, 1995: 61-76.
[4]WIJSEN J. Temporal FDs on complex objects[J]. ACM Trans on Database System, 1999, 24(1):127-176.
[5]COMBI C, ROSSATO R. Temporal functional dependencies with multiple granularities: a logic based approach[C]//Proc of the 15th International Conference on Database and Expert Systems Applications. Berlin:Springer, 2004: 864-873.
[6]姚春龍,郝忠孝.具有全序時態類型集時態函數依賴集的研究[J].軟件學報,2003,14(2):247-252.
[7]萬靜,郝忠孝.全序時態模塊模式的TO_TSNF分解問題研究[J].計算機科學,2007,34(3):114-119.
[8]萬靜,郝忠孝.具有多時間粒度的強全序時態模式中多值依賴問題研究[J].計算機研究與發展,2008,45(6): 1064-1072.