一種非確定數(shù)據(jù)庫下的Top-k查詢及執(zhí)行方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理技術領域,尤其是一種非確定數(shù)據(jù)庫下的Top-k查詢及執(zhí)行 方法。
【背景技術】
[0002] 當今世界已經(jīng)進入大數(shù)據(jù)時代,數(shù)據(jù)的規(guī)模呈現(xiàn)爆發(fā)式增長,這首先是以數(shù)據(jù)存 儲和處理能力的快速提升作為支撐,云計算、分布式處理等技術為此提供了有力保障。其次 數(shù)據(jù)產(chǎn)生的來源愈加豐富,以前被拋棄的大量機器和用戶產(chǎn)生的數(shù)據(jù)也被挖掘出巨大商業(yè) 價值從而被利用起來,由此數(shù)據(jù)的量級已經(jīng)遠遠超過了剛步入互聯(lián)網(wǎng)時代時人們所想象的 程度。另外數(shù)據(jù)的非結構性特征也日益凸顯,這意味著傳統(tǒng)的數(shù)據(jù)庫模型不能很好地滿足 當今的許多需求。不確定數(shù)據(jù)庫(Uncertain Database)是為應對概率型數(shù)據(jù)和模糊型數(shù) 據(jù)產(chǎn)生的數(shù)據(jù)庫模型。不確定數(shù)據(jù)主要指的是概率型數(shù)據(jù),概率型數(shù)據(jù)的不確定性用概率 分布表示,這與傳統(tǒng)的數(shù)據(jù)庫用確定的值表示一個元組不同。
[0003] Top-k查詢是在數(shù)據(jù)庫中應用的最廣泛的查詢之一,在紛繁龐大的數(shù)據(jù)量中查找 出用戶最需要的幾條記錄是常見的應用場景。如找出排名前500的企業(yè)、馬拉松賽的前100 名等等,在非確定數(shù)據(jù)庫中進行Top-k查詢在當下是非常具有實際意義的研宄問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是針對現(xiàn)有技術的不足而設計的一種非確定數(shù)據(jù)庫下的Top-k查 詢及執(zhí)行方法,采用定義公式的執(zhí)行算法對一個基于ULDB模型的非確定數(shù)據(jù)庫進行Top-k 查詢,由此返回的查詢結果為非確定數(shù)據(jù)庫中的k個對象而非實例,查詢結果能很好地體 現(xiàn)出各個對象之間的相對排名,具有動態(tài)規(guī)劃和深度優(yōu)先搜索的特點,實用性強,操作簡 便,查詢結果的獲得快速、精準,能較好的體現(xiàn)對象間的實際關系。
[0005] 本發(fā)明的目的是這樣實現(xiàn)的:一種非確定數(shù)據(jù)庫下的Top-k查詢及執(zhí)行方法,其 特點是采用公式定義的執(zhí)行算法對基于ULDB模型的非確定數(shù)據(jù)庫進行Top-k查詢,所述執(zhí) 行算法的公式為:Vtargmaxv e V Σ ω e PW(V) (Pr (ω)),且對于任意Vi e V, 其中:,為Top-k返回的某一查詢結果; PW= (PW1,…,PWJ為可能世界; V= IV1,…,Vn}是一個長度為k對象的向量集合; Pr(Vi)為PW中所有與其對應元素的概率之和; Vi是某個PWj的前k個實例所分別對應的對象,且V覆蓋所有PW中所有元素對應的情 況。
[0006] 所述非確定數(shù)據(jù)庫的Top-k查詢按下述步驟進行: (一)、數(shù)據(jù)庫的預處理 對數(shù)據(jù)庫中的每個元組按照值的降序進行排列。
[0007] (二)、狀態(tài)表的創(chuàng)建 將數(shù)據(jù)庫中的每個對象按其長度進行排序,建立用于Top-k查詢選擇的狀態(tài)表。
[0008] (三)、數(shù)據(jù)的讀取 按序逐一讀取數(shù)據(jù)庫預處理后的元組。
[0009] (四)、狀態(tài)表的更新 將上述讀取的元組更新狀態(tài)表中的上、下界,所述狀態(tài)表中的上、下界為狀態(tài)在某一時 刻其概率值最大和最小的可能值。
[0010] (五)、可能狀態(tài)的生成 以上述讀取的元組所對應的對象為結尾生成可能狀態(tài),并計算狀態(tài)的上、下界。
[0011] (六)、查詢結果的確定 重復進行上述步驟(三)~步驟(五),直到該狀態(tài)被確定為查詢結果,結束Top-k查詢。
[0012] 本發(fā)明與現(xiàn)有技術相比具有以下優(yōu)點: (1)、易行性:該查詢基于常見的數(shù)據(jù)庫模型:美國斯坦福大學開發(fā)的ULDB,執(zhí)行算法的 核心是動態(tài)規(guī)劃和深度優(yōu)先搜索,實現(xiàn)起來困難不大。
[0013] (2)、高效性:查詢執(zhí)行算法避免了遍歷所有可能世界,使得查詢結果可以快速獲 得。
[0014] (3)、實用性:查詢的定義具有實用價值,能較好夠體現(xiàn)出對象間實際的關系。
【具體實施方式】
[0015] 本發(fā)明采用公式定義的執(zhí)行算法對一個基于ULDB模型的非確定數(shù)據(jù)庫進行 Top-k查詢,所述執(zhí)行算法的公式為Vtargmaxv e V Σ ω e PW(V) (ΡΓ(ω)),且對于任意 Vi e V, 其中:,為Top-k返回的某一查詢結果; PW= (PW1,…,PWJ為可能世界; V= IV1,…,Vn}是一個長度為k對象的向量集合; Pr(Vi)為PW中所有與其對應元素的概率之和; Vi是某個PWj的前k個實例所分別對應的對象,且V覆蓋所有PW中所有元素對應的情 況。
[0016] 所述非確定數(shù)據(jù)庫的Top-k查詢按下述步驟進行: (一)、數(shù)據(jù)庫的預處理 對數(shù)據(jù)庫中的每個元組按照值的降序進行排列,按照值的降序排列可以保證查詢在 最快時間得到可靠結果,否則執(zhí)行算法將只能在讀取非常多元組的情況下才能得到查詢結 果。
[0017] (二)、狀態(tài)表的創(chuàng)建 將數(shù)據(jù)庫中的每個對象按其長度進行排序,建立用于Top-k查詢選擇的狀態(tài)表。狀態(tài) 指長度為k的對象序列,用以從中選擇可能的查詢結果,狀態(tài)有一個概率值屬性,其概率為 在所有可能世界中按序名列前k名實例分別對應這k個對象的概率之和,但執(zhí)行算法并不 以定義來確定這個值,否則效率極低,創(chuàng)建狀態(tài)時其概率值是未知的。
[0018] (三)、數(shù)據(jù)的讀取 按序逐一讀取數(shù)據(jù)庫預處理后的元組。
[0019] (四)、狀態(tài)表的更新 將上述讀取的元組更新狀態(tài)表中的上、下界,所述狀態(tài)的上、下界為狀態(tài)在某一時刻其 概率值最大和最小的可能值。所述下界是依據(jù)已讀取元組的情況獲得的狀態(tài)概率,在該狀 態(tài)概率不可能增加的極端情況下,狀態(tài)概率會取得下界。所述上界是當未讀取的元組是k 個分別有序對應狀態(tài)的k個對象,且可信度皆滿足與同一對象已讀取實例可信度之和為1 的情況,此時狀態(tài)概率達到可能的最大值。
[0020] (五)、可能狀態(tài)的生成 以上述讀取的元組所對應的對象為結尾生成可能狀態(tài),并計算狀態(tài)的上、下界。執(zhí)行算 法只考察可能是查詢結果的狀態(tài),從而不必遍歷所有可能的狀態(tài),而是只考察可能的狀態(tài)。 這些狀態(tài)在讀取元組的過程中生成,生成狀態(tài)采用深度優(yōu)先搜索的方法,以讀取元組所對 應的對象為結尾生成可能的狀態(tài),并計算其上、下界。
[0021] (六)、查詢結果的確定 重復進行上述步驟(三)~步驟(五),直到該狀態(tài)被確定為查詢結果后才結束Τορ-k查 詢。所述確定查詢結果是指某狀態(tài)被可以證明肯定是查詢結果,而不可能是狀態(tài)表中的其 他狀態(tài)或沒有生成出來的狀態(tài),此時便可以結束查詢過程。
[0022] 以上只是對本發(fā)明作進一步的說明,并非用以限制本專利,凡為本發(fā)明等效實施, 均應包含于本專利的權利要求范圍之內(nèi)。
【主權項】
1. 一種非確定數(shù)據(jù)庫下的Top-k查詢及執(zhí)行方法,其特征在于采用公式定義的執(zhí)行算 法對基于ULDB模型的非確定數(shù)據(jù)庫進行Top-k查詢,所述執(zhí)行算法的KSSiVtargmax-VGVEwGPW(v)(Pr(?)),且對于任意ViGV, 其中:,為Top-k返回的某一查詢結果; PW= (PW1,…,PWJ為可能世界; V=IV1,…,Vn}是一個長度為k對象的向量集合; Pr(Vi)為PW中所有與其對應元素的概率之和; Vi是某個PWj的前k個實例所分別對應的對象,且V覆蓋所有PW中所有元素對應的情 況。2. 根據(jù)權利要求1所述非確定數(shù)據(jù)庫下的Top-k查詢及執(zhí)行方法,其特征在于所述非 確定數(shù)據(jù)庫的Top-k查詢按下述步驟進行: (一) 、數(shù)據(jù)庫的預處理 對數(shù)據(jù)庫中的每個元組按照值的降序進行排列; (二)、狀態(tài)表的創(chuàng)建 將數(shù)據(jù)庫中的每個對象按其長度進行排序,建立用于Top-k查詢選擇的狀態(tài)表; (三) 、數(shù)據(jù)的讀取 按序逐一讀取數(shù)據(jù)庫預處理后的元組; (四) 、狀態(tài)表的更新 將上述讀取的元組更新狀態(tài)表中的上、下界,所述狀態(tài)表中的上、下界為狀態(tài)在某一時 刻其概率值最大和最小的可能值; (五) 、可能狀態(tài)的生成 以上述讀取的元組所對應的對象為結尾生成可能狀態(tài),并計算狀態(tài)的上、下界; (六) 、查詢結果的確定 重復進行上述步驟(三)~步驟(五),直到該狀態(tài)被確定為查詢結果,結束Top-k查詢。
【專利摘要】本發(fā)明公開了一種非確定數(shù)據(jù)庫下的Top-k查詢及執(zhí)行方法,其特點是采用公式定義的執(zhí)行算法對基于ULDB模型的非確定數(shù)據(jù)庫進行Top-k查詢,所述執(zhí)行算法的公式為:V*=argmax-v∈V∑ω∈PW(v)(Pr(ω)),且對于任意Vi∈V;所述非確定數(shù)據(jù)庫的Top-k查詢具體包括:數(shù)據(jù)庫的預處理、狀態(tài)表的創(chuàng)建、數(shù)據(jù)的讀取、狀態(tài)表的更新、可能狀態(tài)的生成和查詢結果的確定步驟。本發(fā)明與現(xiàn)有技術相比具有動態(tài)規(guī)劃和深度優(yōu)先搜索的優(yōu)點,避免了遍歷所有可能世界,快速獲得查詢結果,能夠很好的體現(xiàn)出對象間的實際關系,實用價值高。
【IPC分類】G06F17/30
【公開號】CN104915424
【申請?zhí)枴緾N201510321642
【發(fā)明人】林欣, 邱鑫, 周慧君, 王楨, 陳黎, 陳晨
【申請人】華東師范大學
【公開日】2015年9月16日
【申請日】2015年6月12日