基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法
【專利摘要】本發(fā)明涉及一種基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法,屬于數(shù)據(jù)庫(kù)查詢【技術(shù)領(lǐng)域】。具體包括:(1)多個(gè)關(guān)系的可信聚類概率的查詢重寫算法;(2)無連接聚集查詢重寫算法;(3)基于聚類的有連接聚集查詢重寫算法。本發(fā)明以元組匹配所產(chǎn)生的聚類和元組概率為基礎(chǔ),提出了可信聚類概念和基于概率方法的非一致性數(shù)據(jù)庫(kù)查詢重寫方法。查詢重寫縮小了結(jié)果集中的可信聚類數(shù)量,有效地提高了查詢性能。此基礎(chǔ)上擴(kuò)展了基于概率方法的聚集查詢重寫,不但考慮連接查詢,而且考慮聚集分組SPJ查詢。
【專利說明】基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法,屬于數(shù)據(jù)庫(kù)查詢【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]聚類方法把數(shù)據(jù)集合分成若干類,使得每個(gè)類內(nèi)部的數(shù)據(jù)盡量相似,而屬于不同類的數(shù)據(jù)盡量不同?,F(xiàn)實(shí)世界中,有ー種不確定信息,信息不精確。在處理不確定性信息方面,經(jīng)典關(guān)系數(shù)據(jù)庫(kù)處理不了具有不精確的數(shù)據(jù),因而概率數(shù)據(jù)模型擴(kuò)展了關(guān)系數(shù)據(jù)模型,對(duì)數(shù)據(jù)的不確定性進(jìn)行了度量,在數(shù)據(jù)庫(kù)的關(guān)系中引入概率屬性來表示該元組的不確定性。對(duì)于實(shí)體對(duì)應(yīng)的多個(gè)元組而言,每個(gè)元組的屬性值是不確定的,表示實(shí)體的概率大小?;诰垲惖母拍?,聚類內(nèi)多個(gè)潛在的非一致性元組可以給定概率,假定ー個(gè)聚類代表ー個(gè)現(xiàn)實(shí)實(shí)體,聚類內(nèi)的姆個(gè)元組表示實(shí)體的概率和為I,認(rèn)為是元組在聚類內(nèi)概率是條件獨(dú)立的,在不同聚類之間概率是獨(dú)立的;并提出了一種候選數(shù)據(jù)庫(kù)概念,對(duì)聚類概率進(jìn)行計(jì)算和評(píng)價(jià),但考慮的候選數(shù)據(jù)庫(kù)對(duì)于實(shí)際的海量數(shù)據(jù)庫(kù)來說是不可行的,且沒有考慮查詢重寫。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法,以便縮小結(jié)果集中的可信聚類數(shù)量,有效地提高查詢性能。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下。
[0005]一種基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法,具體包括:
(I)多個(gè)關(guān)系的可信聚類概率的查詢重寫算法,詳細(xì)的步驟如下:
(Ia)在給定的ー個(gè)SPJ查詢中,首先得到查詢中的關(guān)系個(gè)數(shù)t和選擇條件個(gè)數(shù)I初始化重寫查詢皮/。外循環(huán)次數(shù)為關(guān)系個(gè)數(shù),內(nèi)循環(huán)為選擇條件個(gè)數(shù)。在外循環(huán)中,取得臨時(shí)變量存儲(chǔ)產(chǎn)生結(jié)果集的別名filter,初始化非連接合取謂詞集和連接合取謂詞屬性集AJ;
(Ib)在第I個(gè)內(nèi)循環(huán)中,如果合取選擇謂詞中的屬性是關(guān)系中的屬性,則判斷是否為連接的。如果為非連接合取謂詞,則把合取選擇謂詞中的屬性加入到非連接合取謂詞屬性集中,否則加入到連接合取謂詞屬性集中;
(Ic)在第2個(gè)內(nèi)循環(huán)中,如果合取選擇謂詞中的屬性是查詢中投影屬性,把合取選擇謂詞中的屬性加入到連接合取謂詞屬性集中;
(Id)在外循環(huán)的最后取得該次循環(huán)產(chǎn)生的過濾查詢ガブ。連接合取謂詞屬性集5^ゾ等于合取謂詞屬性集減去非連接合取謂詞屬性集SCW ;
(Ie)通過已經(jīng)取得的產(chǎn)生過濾查詢ガブ、連接合取謂詞屬性集5Tゾ和結(jié)果集別名最終輸出查詢重寫語句。注意到?jīng)]有加入非連接合取謂詞屬性集5tF,這是因?yàn)樵诋a(chǎn)生過濾查詢ノび時(shí),就已經(jīng)對(duì)本次循環(huán)的關(guān)系進(jìn)行了非連接合取謂詞過濾元組,這樣壓縮了需要連接結(jié)果集的元組,在最后的結(jié)果集進(jìn)行連接時(shí),有助于提高查詢性能。[0006](2)無連接聚集查詢重寫算法,具體算法的基本步驟如下:
(2a)首先對(duì)初始分組屬性G和聚類屬性cluster進(jìn)行分組求聚集屬性的最大值、最小值以及期望值和,得到結(jié)果集^/7ゴ;
(2b)如果同一聚類內(nèi)分組屬性值不相同,則最小值為0,因此需要去掉這種情況的元組,在產(chǎn)生的結(jié)果集cmd上對(duì)初始分組屬性G進(jìn)行分組求最小值和,得到包含最小值的結(jié)果集min_cand ;
(2c )在結(jié)果集cmd上對(duì)初始分組屬性G進(jìn)行分組求最大值和期望值和,得到包含最大值和期望值的結(jié)果集max_ cand ;
(2d)在外查詢中,對(duì)已經(jīng)產(chǎn)生的包含最大值和期望值的結(jié)果集左連接到包含最小值的的結(jié)果集如果連接得到最小值為空,則最小值為O。最終產(chǎn)生初始分組屬性G的最值和期望值。
[0007](3)基于聚類的有連接聚集查詢重寫算法,基本步驟如下:
(3a)首先初始化重寫查詢,取得SPJ聚集查詢的關(guān)系集合/?的元素個(gè)數(shù)、分組屬性集合G的元素個(gè)數(shù)、選擇謂詞集合5T的元素個(gè)數(shù)和聚集屬性集合A的元素個(gè)數(shù);
(3b)以關(guān)系集合/?的元素個(gè)數(shù)為外循環(huán)次數(shù),以選擇謂詞集合5T的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù)。在內(nèi)循環(huán)中,如果條件謂詞為關(guān)系的連接合取選擇謂詞,則過濾連接值不一致的聚類,取得該次循環(huán)中基于連接謂詞的查詢過濾子結(jié)果集;
(3c)然后再次以關(guān)系集合/?的元素個(gè)數(shù)為外循環(huán)次數(shù),初始化結(jié)果集標(biāo)記分組屬性集從、聚集值屬性集メ萬、非連接合取選擇謂詞集和非連接合取選擇謂詞集SCJ。在第I個(gè)內(nèi)循環(huán)中,以聚集屬性集合A的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果聚集值屬性在該次循環(huán)的關(guān)系中,聚集值屬性加入到聚集值屬性集W?。在第2個(gè)內(nèi)循環(huán)中,以分組屬性集合G的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果分組屬性在該次循環(huán)的關(guān)系中,分組屬性加入到分組屬性集d第3個(gè)內(nèi)循環(huán)中,以選擇謂詞集合5T的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果連接屬性在該次循環(huán)的關(guān)系中,且選擇謂詞為連接合取選擇謂詞,則選擇謂詞的連接屬性加入到分組屬性集;如果連接屬性在該次循環(huán)的關(guān)系中,且選擇謂詞為非連接合取選擇謂詞,則選擇謂詞的連接屬性加入到非連接選擇謂詞集。在外循環(huán)中,取得本次循環(huán)根據(jù)非連接選擇謂詞集和聚類存在于候選集的條件,對(duì)聚類屬性和分組屬性集分組取得概率與聚集屬性和的過濾結(jié)果集;然后連接選擇謂詞集5Tゾ為減去本次循環(huán)的非連接選擇謂詞;
(3d)在外查詢中,基于上ー步產(chǎn)生的過濾結(jié)果集進(jìn)行連接,以連接選擇謂詞為條件,對(duì)分組屬性集進(jìn)行分組聚集求聚集屬性的最小值的結(jié)果集;基于初始查詢,加入聚類屬性,對(duì)聚集屬性求最大值和期望值的候選結(jié)果集;再對(duì)最大值和期望值的候選結(jié)果集左連接最小值的結(jié)果集,取得初始查詢按照分組屬性集的最大值、最小值和期望值的重寫語句。
[0008]該發(fā)明的有益效果在于:本發(fā)明以元組匹配所產(chǎn)生的聚類和元組概率為基礎(chǔ),提出了可信聚類概念和基于概率方法的非一致性數(shù)據(jù)庫(kù)查詢重寫方法。查詢重寫縮小了結(jié)果集中的可信聚類數(shù)量,有效地提高了查詢性能。此基礎(chǔ)上擴(kuò)展了基于概率方法的聚集查詢重寫,不但考慮連接查詢,而且考慮聚集分組SPJ查詢。
【專利附圖】
【附圖說明】
[0009]圖1是本發(fā)明實(shí)施例中基于聚類的標(biāo)記圖。[0010]圖2是本發(fā)明實(shí)施例中基于聚類的無連接查詢重寫算法截圖。
【具體實(shí)施方式】
[0011]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行描述,以便更好地理解本發(fā)明。
實(shí)施例
[0012]基于聚類的非一致性數(shù)據(jù)庫(kù)查詢是基于連接圖的概念。為了更好地區(qū)分關(guān)系的聚類、連接屬性、鍵屬性和合取選擇謂詞中的屬性,直觀地表示SPJ查詢,本發(fā)明給出了基于聚類的標(biāo)記圖定義。
[0013]定義1:設(shè)^是ー個(gè)合取查詢,如果它的連接圖G是ー個(gè)標(biāo)記圖,那么^中的屬性表不方式為:(a)如果是鍵屬性,則表不為f ;如果鍵屬性是連接屬性,表不為(b)如果是非鍵屬性,表示為メ ;如果這個(gè)非鍵屬性是連接屬性,則表示為W ; (C)如果非鍵屬性是合取謂詞選擇條件中的屬性,則表示為抑;(d)聚類屬性cluster表示同一實(shí)體。
[0014]定義2:設(shè)ヴ是ー個(gè)合取查詢,它的連接圖是以K,萬〉,如果ヴ的圖采用標(biāo)記屬性來表示邊和節(jié)點(diǎn),則7的連接圖是基于聚類的標(biāo)記圖。如果7是采用標(biāo)記屬性來表示,則是基于聚類的標(biāo)記查詢。
[0015]q的基于聚類的標(biāo)記圖可以表示為圖1。
[0016]基于上述定義,本發(fā)明實(shí)施例中的基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法,具體包括:
(I)多個(gè)關(guān)系的可信聚類概率的查詢重寫算法,其詳細(xì)的步驟如下:
(Ia)在給定的ー個(gè)SPJ查詢中,首先得到查詢中的關(guān)系個(gè)數(shù)t和選擇條件個(gè)數(shù)I初始化重寫查詢皮/。外循環(huán)次數(shù)為關(guān)系個(gè)數(shù),內(nèi)循環(huán)為選擇條件個(gè)數(shù)。在外循環(huán)中,取得臨時(shí)變量存儲(chǔ)產(chǎn)生結(jié)果集的別名filter,初始化非連接合取謂詞集和連接合取謂詞屬性集AJ;
(Ib)在第I個(gè)內(nèi)循環(huán)中,如果合取選擇謂詞中的屬性是關(guān)系中的屬性,則判斷是否為連接的。如果為非連接合取謂詞,則把合取選擇謂詞中的屬性加入到非連接合取謂詞屬性集中,否則加入到連接合取謂詞屬性集中;
(Ic)在第2個(gè)內(nèi)循環(huán)中,如果合取選擇謂詞中的屬性是查詢中投影屬性,把合取選擇謂詞中的屬性加入到連接合取謂詞屬性集中;
(Id)在外循環(huán)的最后取得該次循環(huán)產(chǎn)生的過濾查詢ガブ。連接合取謂詞屬性集5^ゾ等于合取謂詞屬性集減去非連接合取謂詞屬性集SCW ;
(Ie)通過已經(jīng)取得的產(chǎn)生過濾查詢ガブ、連接合取謂詞屬性集5Tゾ和結(jié)果集別名最終輸出查詢重寫語句。注意到?jīng)]有加入非連接合取謂詞屬性集5tF,這是因?yàn)樵诋a(chǎn)生過濾查詢ノび時(shí),就已經(jīng)對(duì)本次循環(huán)的關(guān)系進(jìn)行了非連接合取謂詞過濾元組,這樣壓縮了需要連接結(jié)果集的元組,在最后的結(jié)果集進(jìn)行連接時(shí),有助于提高查詢性能。
[0017](2)無連接聚集查詢重寫算法,見圖2,具體算法的基本步驟如下:
(2a)首先對(duì)初始分組屬性G和聚類屬性cluster進(jìn)行分組求聚集屬性的最大值、最小值以及期望值和,得到結(jié)果集^/7ゴ;(2b)如果同一聚類內(nèi)分組屬性值不相同,則最小值為O,因此需要去掉這種情況的元組,在產(chǎn)生的結(jié)果集cmd上對(duì)初始分組屬性G進(jìn)行分組求最小值和,得到包含最小值的結(jié)果集min_cand ;
(2c )在結(jié)果集cmd上對(duì)初始分組屬性G進(jìn)行分組求最大值和期望值和,得到包含最大值和期望值的結(jié)果集max_ cand ;
(2d)在外查詢中,對(duì)已經(jīng)產(chǎn)生的包含最大值和期望值的結(jié)果集左連接到包含最小值的的結(jié)果集如果連接得到最小值為空,則最小值為O。最終產(chǎn)生初始分組屬性G的最值和期望值。
[0018](3)基于聚類的有連接聚集查詢重寫算法,基本步驟如下:
(3a)首先初始化重寫查詢,取得SPJ聚集查詢的關(guān)系集合/?的元素個(gè)數(shù)、分組屬性集合G的元素個(gè)數(shù)、選擇謂詞集合5T的元素個(gè)數(shù)和聚集屬性集合A的元素個(gè)數(shù);
(3b)以關(guān)系集合/?的元素個(gè)數(shù)為外循環(huán)次數(shù),以選擇謂詞集合5T的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù)。在內(nèi)循環(huán)中,如果條件謂詞為關(guān)系的連接合取選擇謂詞,則過濾連接值不一致的聚類,取得該次循環(huán)中基于連接謂詞的查詢過濾子結(jié)果集;
(3c)然后再次以關(guān)系集合/?的元素個(gè)數(shù)為外循環(huán)次數(shù),初始化結(jié)果集標(biāo)記分組屬性集從、聚集值屬性集メ萬、非連接合取選擇謂詞集和非連接合取選擇謂詞集SCJ。在第I個(gè)內(nèi)循環(huán)中,以聚集屬性集合A的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果聚集值屬性在該次循環(huán)的關(guān)系中,聚集值屬性加入到聚集值屬性集W?。在第2個(gè)內(nèi)循環(huán)中,以分組屬性集合G的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果分組屬性在該次循環(huán)的關(guān)系中,分組屬性加入到分組屬性集d第3個(gè)內(nèi)循環(huán)中,以選擇謂詞集合5T的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果連接屬性在該次循環(huán)的關(guān)系中,且選擇謂詞為連接合取選擇謂詞,則選擇謂詞的連接屬性加入到分組屬性集;如果連接屬性在該次循環(huán)`的關(guān)系中,且選擇謂詞為非連接合取選擇謂詞,則選擇謂詞的連接屬性加入到非連接選擇謂詞集。在外循環(huán)中,取得本次循環(huán)根據(jù)非連接選擇謂詞集和聚類存在于候選集的條件,對(duì)聚類屬性和分組屬性集分組取得概率與聚集屬性和的過濾結(jié)果集;然后連接選擇謂詞集5Tゾ為減去本次循環(huán)的非連接選擇謂詞;
(3d)在外查詢中,基于上ー步產(chǎn)生的過濾結(jié)果集進(jìn)行連接,以連接選擇謂詞為條件,對(duì)分組屬性集進(jìn)行分組聚集求聚集屬性的最小值的結(jié)果集;基于初始查詢,加入聚類屬性,對(duì)聚集屬性求最大值和期望值的候選結(jié)果集;再對(duì)最大值和期望值的候選結(jié)果集左連接最小值的結(jié)果集,取得初始查詢按照分組屬性集的最大值、最小值和期望值的重寫語句。
[0019]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種基于聚類的非一致性數(shù)據(jù)庫(kù)查詢方法,其特征在于:具體包括: (1)多個(gè)關(guān)系的可信聚類概率的查詢重寫算法,詳細(xì)的步驟如下: (Ia)在給定的ー個(gè)SPJ查詢中,首先得到查詢中的關(guān)系個(gè)數(shù)t和選擇條件個(gè)數(shù)I初始化重寫查詢皮/;外循環(huán)次數(shù)為關(guān)系個(gè)數(shù),內(nèi)循環(huán)為選擇條件個(gè)數(shù);在外循環(huán)中,取得臨時(shí)變量存儲(chǔ)產(chǎn)生結(jié)果集的別名filter,初始化非連接合取謂詞集和連接合取謂詞屬性集AJ; (Ib)在第I個(gè)內(nèi)循環(huán)中,如果合取選擇謂詞中的屬性是關(guān)系中的屬性,則判斷是否為連接的;如果為非連接合取謂詞,則把合取選擇謂詞中的屬性加入到非連接合取謂詞屬性集中,否則加入到連接合取謂詞屬性集中; (Ic)在第2個(gè)內(nèi)循環(huán)中,如果合取選擇謂詞中的屬性是查詢中投影屬性,把合取選擇謂詞中的屬性加入到連接合取謂詞屬性集中; (Id)在外循環(huán)的最后取得該次循環(huán)產(chǎn)生的過濾查詢ガブ;連接合取謂詞屬性集5Tゾ等于合取謂詞屬性集減去非連接合取謂詞屬性集SCW ; (Ie)通過已經(jīng)取得的產(chǎn)生過濾查詢ガブ、連接合取謂詞屬性集5Tゾ和結(jié)果集別名A7 ter,最終輸出查詢重寫語句; (2)無連接聚集查詢重寫算法,具體算法的基本步驟如下: (2a)首先對(duì)初始分組屬性G和聚類屬性cluster進(jìn)行分組求聚集屬性的最大值、最小值以及期望值和,得到結(jié)果集^/7ゴ; (2b)如果同一聚類內(nèi) 分組屬性值不相同,則最小值為O,因此需要去掉這種情況的元組,在產(chǎn)生的結(jié)果集cmd上對(duì)初始分組屬性G進(jìn)行分組求最小值和,得到包含最小值的結(jié)果集min_cand ; (2c )在結(jié)果集cmd上對(duì)初始分組屬性G進(jìn)行分組求最大值和期望值和,得到包含最大值和期望值的結(jié)果集max_ cand ; (2d)在外查詢中,對(duì)已經(jīng)產(chǎn)生的包含最大值和期望值的結(jié)果集左連接到包含最小值的的結(jié)果集;如果連接得到最小值為空,則最小值為O ;最終產(chǎn)生初始分組屬性G的最值和期望值; (3)基于聚類的有連接聚集查詢重寫算法,基本步驟如下: (3a)首先初始化重寫查詢,取得SPJ聚集查詢的關(guān)系集合/?的元素個(gè)數(shù)、分組屬性集合G的元素個(gè)數(shù)、選擇謂詞集合5T的元素個(gè)數(shù)和聚集屬性集合A的元素個(gè)數(shù); (3b)以關(guān)系集合/?的元素個(gè)數(shù)為外循環(huán)次數(shù),以選擇謂詞集合5T的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù);在內(nèi)循環(huán)中,如果條件謂詞為關(guān)系的連接合取選擇謂詞,則過濾連接值不一致的聚類,取得該次循環(huán)中基于連接謂詞的查詢過濾子結(jié)果集; (3c)然后再次以關(guān)系集合/?的元素個(gè)數(shù)為外循環(huán)次數(shù),初始化結(jié)果集標(biāo)記分組屬性集從、聚集值屬性集メ萬、非連接合取選擇謂詞集和非連接合取選擇謂詞集SCJ ;在第I個(gè)內(nèi)循環(huán)中,以聚集屬性集合A的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果聚集值屬性在該次循環(huán)的關(guān)系中,聚集值屬性加入到聚集值屬性集;在第2個(gè)內(nèi)循環(huán)中,以分組屬性集合G的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果分組屬性在該次循環(huán)的關(guān)系中,分組屬性加入到分組屬性集從;第3個(gè)內(nèi)循環(huán)中,以選擇謂詞集合5T的元素個(gè)數(shù)為內(nèi)循環(huán)次數(shù),如果連接屬性在該次循環(huán)的關(guān)系中,且選擇謂詞為連接合取選擇謂詞,則選擇謂詞的連接屬性加入到分組屬性集;如果連接屬性在該次循環(huán)的關(guān)系中,且選擇謂詞為非連接合取選擇謂詞,則選擇謂詞的連接屬性加入到非連接選擇謂詞集;在外循環(huán)中,取得本次循環(huán)根據(jù)非連接選擇謂詞集和聚類存在于候選集的條件,對(duì)聚類屬性和分組屬性集分組取得概率與聚集屬性和的過濾結(jié)果集;然后連接選擇謂詞集5Tゾ為減去本次循環(huán)的非連接選擇謂詞; (3d)在外查詢中,基于上ー步產(chǎn)生的過濾結(jié)果集進(jìn)行連接,以連接選擇謂詞為條件,對(duì)分組屬性集進(jìn)行分組聚集求聚集屬性的最小值的結(jié)果集;基于初始查詢,加入聚類屬性,對(duì)聚集屬性求最大值和期望值的候選結(jié)果集;再對(duì)最大值和期望值的候選結(jié)果集左連接最小值的結(jié)果集,取得初始查詢按`照分組屬性集的最大值、最小值和期望值的重寫語句。
【文檔編號(hào)】G06F17/30GK103605812SQ201310668188
【公開日】2014年2月26日 申請(qǐng)日期:2013年12月11日 優(yōu)先權(quán)日:2013年12月11日
【發(fā)明者】不公告發(fā)明人 申請(qǐng)人:湖南人文科技學(xué)院