本發(fā)明屬于計算機(jī)分布式數(shù)據(jù)庫技術(shù)領(lǐng)域,具體涉及一種基于分布式存儲的關(guān)聯(lián)信息索引方法,為一種用于提高方法分布式數(shù)據(jù)庫中關(guān)聯(lián)信息查詢效率的方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展和應(yīng)用,人類社會產(chǎn)生了越來越多的數(shù)據(jù)信息。為了存儲這些海量數(shù)據(jù),分布式數(shù)據(jù)庫應(yīng)運(yùn)而生。一般數(shù)據(jù)庫為了提高查詢效率,往往對數(shù)據(jù)庫中的元組部分屬性創(chuàng)建索引。這種方法,對于費(fèi)海量的數(shù)據(jù)查詢十分高效。由于分布式數(shù)據(jù)庫中存有海量數(shù)據(jù),因此當(dāng)數(shù)據(jù)增長到一定規(guī)模時,使用索引查詢數(shù)據(jù)也十分緩慢,難以達(dá)到預(yù)期效果。對于一些特定應(yīng)用,在數(shù)據(jù)庫中查詢關(guān)聯(lián)元組信息,這種情況將將更加耗時和低效。如果存在一種基于分布式存儲的關(guān)聯(lián)信息索引方法,那么在處理這種問題時,將會大大提高查詢效率。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于分布式存儲的關(guān)聯(lián)信息索引系統(tǒng)及其建立與使用方法,提高在分布式數(shù)據(jù)庫中查詢關(guān)聯(lián)信息的效率;它基于現(xiàn)有的數(shù)據(jù)庫索引技術(shù),提供一種策略,當(dāng)在量的分布式海數(shù)據(jù)庫中進(jìn)行關(guān)聯(lián)信息查詢時,會大幅提高查詢效率。
技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
一種基于分布式存儲的關(guān)聯(lián)信息索引系統(tǒng),分布式數(shù)據(jù)庫中所有元組按照關(guān)聯(lián)性劃分成若干分類組,設(shè)置二級索引系統(tǒng)進(jìn)行查找定位,其中,
一級索引為:每一個分類組設(shè)置一個索引,即為分類組索引;
二級索引為:一個分類組中的一個元祖的索引,即為分類組元組索引。
進(jìn)一步的,二級索引存放一個分類組中的一組具有關(guān)聯(lián)的元組信息,表示為A1(a11,a12,...,a1k),A2(a21,a22,...,a2m),...An(an1,an2,...,anl),其中,Ai是一個二級索引組,存放所述二級索引;
一級索引存放所述二級索引組的索引信息,表示為I(f(A1),f(A2),...,f(An)),其中,I是一個一級索引組,存放所述一級索引。
一種基于分布式存儲的關(guān)聯(lián)信息索引的建立方法,具體包括如下步驟:
步驟一、遍歷分布式數(shù)據(jù)庫中所有元組;
步驟二、使用算法處理所述元組,將具有關(guān)聯(lián)的元組劃分到一個分類組中,形成若干分類組;
步驟三、為一個分類組中的具有關(guān)聯(lián)的一個元組根據(jù)其屬性創(chuàng)建一組索引,即為二級索引;建立一個二級索引組,存放此分類組中的所有二級索引;
步驟四、為所述每一個二級索引組創(chuàng)建一個索引,即為一級索引;建立一個一級索引組,存放所有一級索引。
進(jìn)一步的,所述步驟二中使用關(guān)聯(lián)規(guī)則算法模型處理所述元組,對所有元組的數(shù)據(jù)進(jìn)行關(guān)聯(lián)、分類。
進(jìn)一步的,所述關(guān)聯(lián)規(guī)則算法模型的方法中進(jìn)行閾值設(shè)定,包括關(guān)聯(lián)規(guī)則中的置信度和支持度。
一種基于分布式存儲的關(guān)聯(lián)信息索引的使用方法,采用關(guān)鍵詞查詢關(guān)聯(lián)元組信息,具體步驟包括:
1.查詢所述關(guān)鍵詞所在的一級索引,再從一級索引中去查找所有滿足條件的二級索引;
2.確定了二級索引之后,直接到所述分布式數(shù)據(jù)庫中去查找所有關(guān)聯(lián)的元組信息;
3.輸出結(jié)果。
有益效果:本發(fā)明提供的基于分布式存儲的關(guān)聯(lián)信息索引系統(tǒng)及其建立與使用方法,優(yōu)點(diǎn)主要有:
1.使用高效的關(guān)聯(lián)規(guī)則算法。高效的關(guān)聯(lián)規(guī)則算法可以很好地將有強(qiáng)關(guān)聯(lián)的元組信息關(guān)聯(lián)到一起,方便之后為具有關(guān)聯(lián)的元組創(chuàng)建索引;
2.通過創(chuàng)建二級索引提高查詢效率。將具有強(qiáng)關(guān)聯(lián)的元組關(guān)聯(lián)到一起,然后為他們創(chuàng)建索引。并對每個組創(chuàng)建一個唯一標(biāo)識的索引。相當(dāng)于創(chuàng)建一個二級索引,這就大大提高了分布式數(shù)據(jù)庫的查詢效率。
3.實(shí)現(xiàn)了關(guān)聯(lián)規(guī)則和創(chuàng)建索引的實(shí)時更新。系統(tǒng)會在不受外界干擾的條件下,根據(jù)關(guān)聯(lián)規(guī)則設(shè)定的閾值,實(shí)時更新關(guān)聯(lián)后的元組信息和索引信息。這樣用戶在查詢分布式數(shù)據(jù)庫關(guān)聯(lián)元組信息時,就能根據(jù)實(shí)時信息,提高查詢的效率。
附圖說明
圖1為創(chuàng)建索引整體流程圖;
圖2為分類結(jié)果圖;
圖3為建立索引流程圖;
圖4為查詢流程圖;
圖5為一級索引和二級索引之間的邏輯關(guān)系;
圖6為本發(fā)明實(shí)施例檢索時效對比示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作更進(jìn)一步的說明。
一種基于分布式存儲的關(guān)聯(lián)信息索引系統(tǒng),分布式數(shù)據(jù)庫中所有元組按照關(guān)聯(lián)性劃分成若干分類組,設(shè)置二級索引系統(tǒng)進(jìn)行查找定位,其中,
一級索引為:每一個分類組設(shè)置一個索引,即為分類組索引;
二級索引為:一個分類組中的一個元祖的索引,即為分類組元組索引。
一級索引就是分類組的索引,我們稱之為分類組索引;二級索引就是這個分類組中的一個元祖的索引,我們稱之為分類組元組索引。
二級索引存放一個分類組中的一組具有關(guān)聯(lián)的元組信息,表示為A1(a11,a12,...,a1k),A2(a21,a22,...,a2m),...An(an1,an2,...,anl),其中,Ai是一個二級索引組,存放二級索引,即為存放一組有關(guān)聯(lián)的分類組元組索引信息;
一級索引存放二級索引組的索引信息,表示為I(f(A1),f(A2),...,f(An)),其中,I是一個一級索引組,存放一級索引。
上述的一種基于分布式存儲的關(guān)聯(lián)信息索引的建立方法,具體包括如下步驟:
步驟一、遍歷分布式數(shù)據(jù)庫中所有元組;
步驟二、使用關(guān)聯(lián)規(guī)則算法模型處理元組,將具有關(guān)聯(lián)的元組劃分到一個分類中,形成若干分類組;關(guān)聯(lián)規(guī)則算法模型的方法中進(jìn)行閾值設(shè)定,包括關(guān)聯(lián)規(guī)則中的置信度和支持度;
步驟三、為一個分類組中的具有關(guān)聯(lián)的一個元組屬性創(chuàng)建一組索引,這些索引就是即為二級索引;講這些二級索引存放在一個數(shù)組中,也就是二級索引組,存放此分類組中的所有二級索引;
為同一個分類組中具有關(guān)聯(lián)的元組屬性建立一個二級索引組,所有同一分類的元組屬性的索引都包含在這個組內(nèi),這樣形成若干個二級索引組,假設(shè)有N個分類,那么就形成N個二級索引組,這些索引被稱之二級索引。
步驟四、為這N個二級索引組中的每一個二級索引組再各自創(chuàng)建一個索引,即為一級索引;這些一級索引被存放在一個新的數(shù)組內(nèi),即為一級索引組,存放所有一級索引。
上述的一種基于分布式存儲的關(guān)聯(lián)信息索引的使用方法,采用關(guān)鍵詞查詢關(guān)聯(lián)元組信息,具體步驟包括:
1.查詢關(guān)鍵詞所在的一級索引,再從一級索引中去查找所有滿足條件的二級索引;
2.確定了二級索引之后,直接到分布式數(shù)據(jù)庫中去查找所有關(guān)聯(lián)的元組信息;
3.輸出結(jié)果。
查詢時,首先查詢一級索引,在一級索引中確定要繼續(xù)查找的二級索引。一級索引和二級索引之間的關(guān)系如圖5所示。
本發(fā)明中,使用了二級索引來提高檢索的效率。使用二級索引,可以大大加快對數(shù)據(jù)的找查與定位。二級索引中的一級索引存放具有關(guān)聯(lián)的元組的索引入口的索引信息,二級索引存放一組具有關(guān)聯(lián)的元組信息。查詢時,會首先定位到一級索引的位置,一級索引相當(dāng)于提供入口信息,然后再在該索引下繼續(xù)查找符合條件的關(guān)聯(lián)索引信息。
本發(fā)明中,為了提高關(guān)聯(lián)程度,專門使用了關(guān)聯(lián)規(guī)則算法,并通過實(shí)驗(yàn)設(shè)定閾值以期達(dá)到比較好的效果。閾值主要是指關(guān)聯(lián)規(guī)則中的置信度和支持度。由于分布式數(shù)據(jù)庫中的數(shù)據(jù)規(guī)模在不斷增加,為了取得很好的效果,我們需要不斷通過實(shí)驗(yàn),更改閾值,使得關(guān)聯(lián)效果最好。置信度和支持度往往根據(jù)經(jīng)驗(yàn)設(shè)定,具體說來就是在數(shù)據(jù)量不同時,進(jìn)行試驗(yàn),通過實(shí)驗(yàn)得到一組比較理想的置信度和支持度,由于數(shù)據(jù)庫中的數(shù)據(jù)一直在變化,因此這兩個值理論上也是在不斷發(fā)生變化的,因此,需要經(jīng)常做實(shí)驗(yàn),動態(tài)地設(shè)置置信度和支持度。
如圖1所示是本發(fā)明中的整體流程圖。首先從數(shù)據(jù)庫中讀取所有數(shù)據(jù),然后,對這些數(shù)據(jù)使用關(guān)聯(lián)規(guī)則算法,將具有強(qiáng)關(guān)聯(lián)的所有元組放劃分到一個類別中,之后為同一個類別中的所有元組的屬性創(chuàng)建索引,這些索引就是二級索引。將這些二級索引都存放在一個數(shù)組中,稱之為二級索引組。這樣,有幾個類別理論上就應(yīng)該有幾個二級索引組。之后,在為每一個二級索引組各自創(chuàng)建一個索引,稱之為一級索引,把這些一級索引存放在一個新的數(shù)組中,稱之為一級索引組。
如圖2所示,是使用關(guān)聯(lián)規(guī)則之后的結(jié)果圖。對數(shù)據(jù)庫中的所有元組使用關(guān)聯(lián)規(guī)則算法,將具有強(qiáng)關(guān)聯(lián)的元組信息進(jìn)行關(guān)聯(lián)。有關(guān)聯(lián)的元組信息存放到一個類別中,圖2就是將部分結(jié)果以圖的形式體現(xiàn)。
如圖3所示是建立索引流程圖。它詳細(xì)描述了在關(guān)聯(lián)之后如何建立索引的過程。首先獲得所有關(guān)聯(lián)的元組信息,對每一組具有關(guān)聯(lián)的元組創(chuàng)建一組索引,以供查詢關(guān)聯(lián)元組。然后為每一個索引組創(chuàng)建一個索引,可以唯一標(biāo)識這個索引組。這樣就可以減少在分布式數(shù)據(jù)庫中檢索的時間,大大提高效率。
圖4是查詢流程圖。首先由用戶輸入關(guān)鍵詞,然后系統(tǒng)會去查找該關(guān)鍵詞對應(yīng)的索引組,從索引組中找到所有與之關(guān)聯(lián)的元組信息的索引。再通過索引去查詢數(shù)據(jù),將結(jié)果輸出。
實(shí)施例
我們的數(shù)據(jù)庫中目前有190435條用戶注冊信息數(shù)據(jù),這些注冊信息數(shù)據(jù)包含了他們的個人描述和自己定義的標(biāo)簽,我們有一個需求,輸入一個情感類的字符串,比如勇敢,得到所有傾向勇敢的用戶的信息。我們一共做了10組實(shí)驗(yàn),分別輸入不同情感類的詞匯,對比使用本發(fā)明前后程序檢索的效率。結(jié)果如圖6所示。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出:對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。