一種數(shù)據(jù)處理方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)庫應用領域,特別涉及一種數(shù)據(jù)處理方法及裝置。
【背景技術】
[0002]隨著非關系型數(shù)據(jù)庫的概念被廣泛接受后,產生了許多的鍵值形式的非關系型數(shù)據(jù)庫,這些已經被各大互聯(lián)網(wǎng)公司以及眾多的數(shù)據(jù)庫廠商所接受并廣泛的使用在現(xiàn)有的系統(tǒng)中。Key-value對于傳統(tǒng)的數(shù)據(jù)庫,其結構簡單,適用于當今眾多的互聯(lián)網(wǎng)需求,但是這些key-value NoSQL數(shù)據(jù)庫所使用的查詢語句,相對于傳統(tǒng)的SQL描述性查詢語句來說其存在著使用繁瑣復雜,無法直觀的描述用戶操作行為,例如:MongoDB等,給用戶帶來極大的不便。
【發(fā)明內容】
[0003]本發(fā)明的目的在于提供一種數(shù)據(jù)處理方法及裝置,用以解決現(xiàn)有非關系型數(shù)據(jù)庫所使用的查詢語句繁瑣復雜,無法直觀描述用戶操作行為的問題。
[0004]為了實現(xiàn)上述目的,本發(fā)明提供了一種數(shù)據(jù)處理方法,應用于鍵值形式的非關系型數(shù)據(jù)庫,包括:
[0005]根據(jù)數(shù)據(jù)間的邏輯關系,創(chuàng)建所述非關系型數(shù)據(jù)庫中的數(shù)據(jù)集合;
[0006]根據(jù)用戶輸入的描述性操作語句,生成相應的語法樹,其中,所述描述性操作語句包括:待操作數(shù)據(jù)的目標路徑地址,所述目標路徑地址指向所述待操作數(shù)據(jù)所在的集合;
[0007]根據(jù)所述語法樹,生成相應的查詢計劃;
[0008]根據(jù)所述查詢計劃,生成操作指令,并對所述集合中的數(shù)據(jù)進行相應的操作。
[0009]其中,所述根據(jù)數(shù)據(jù)間的邏輯關系,創(chuàng)建所述非關系型數(shù)據(jù)庫中的數(shù)據(jù)集合的步驟具體為:
[0010]用Create語句,將邏輯上相同的數(shù)據(jù),創(chuàng)建為所述非關系型數(shù)據(jù)庫的一個數(shù)據(jù)集入口 ο
[0011]其中,所述描述性操作語句包括:描述性查詢語句;
[0012]所述根據(jù)所述查詢計劃,生成操作指令,并對所述集合中的數(shù)據(jù)進行相應的操作的步驟包括:
[0013]根據(jù)所述查詢計劃,生成查詢操作指令,并從所述目標路徑地址指向的集合中,依據(jù)查詢條件獲取相應的數(shù)據(jù)。
[0014]其中,所述描述性操作語句包括:描述性刪除語句;
[0015]所述根據(jù)所述查詢計劃,生成操作指令,并對所述集合中的數(shù)據(jù)進行相應的操作的步驟包括:
[0016]根據(jù)所述查詢計劃,生成刪除操作指令,并從所述目標路徑地址指向的集合中,依據(jù)刪除條件刪除所述待操作數(shù)據(jù)。
[0017]其中,所述描述性操作語句包括:描述性增加語句;
[0018]所述根據(jù)所述查詢計劃,生成操作指令,并對所述集合中的數(shù)據(jù)進行相應的操作的步驟包括:
[0019]根據(jù)所述查詢計劃,生成增加操作指令,并將所述待操作數(shù)據(jù),根據(jù)增加條件增加到所述目標路徑地址指向的集合中。
[0020]其中,所述描述性操作語句包括:描述性修改語句;
[0021]所述根據(jù)所述查詢計劃,生成操作指令,并對所述集合中的數(shù)據(jù)進行相應的操作的步驟包括:
[0022]根據(jù)所述查詢計劃,生成修改操作指令,并根據(jù)所述修改操作指令和修改條件對所述目標路徑地址指向的集合中的數(shù)據(jù)進行修改。
[0023]對所述描述性查詢語句進行掃描,生成一語句對象;
[0024]根據(jù)所述描述性操作語句中操作子語句的處理順序,對每個操作子語句進行語義解析處理,得到操作語法樹節(jié)點;
[0025]將每個所述操作語法樹節(jié)點鏈接到所述語句對象中,得到原始語法樹;
[0026]對所述原始語法樹進行優(yōu)化處理,生成相應的語法樹。
[0027]其中,所述對所述原始語法樹進行優(yōu)化處理,生成相應的語法樹的步驟具體為:
[0028]將所述操作語法樹節(jié)點中的表達式替換為所述表達式對應的最終結果。
[0029]本發(fā)明的實施例還提供了一種數(shù)據(jù)處理裝置,包括:
[0030]創(chuàng)建模塊,用于根據(jù)數(shù)據(jù)間的邏輯關系,創(chuàng)建所述非關系型數(shù)據(jù)庫中的數(shù)據(jù)集合;
[0031]第一生成模塊,用于根據(jù)用戶輸入的描述性操作語句,生成相應的語法樹,其中,所述描述性操作語句包括:待操作數(shù)據(jù)的目標路徑地址,所述目標路徑地址指向所述待操作數(shù)據(jù)所在的集合;
[0032]第二生成模塊,用于根據(jù)所述語法樹,生成相應的查詢計劃;
[0033]執(zhí)行模塊,用于根據(jù)所述查詢計劃,生成操作指令,并對所述集合中的數(shù)據(jù)進行相應的操作。
[0034]其中,所述創(chuàng)建模塊用Create語句,將邏輯上相同的數(shù)據(jù),創(chuàng)建為所述非關系型數(shù)據(jù)庫的一個數(shù)據(jù)集合。
[0035]其中,所述描述性操作語句包括:描述性查詢語句、描述性刪除語句、描述性增加語句、描述性修改語句。
[0036]其中,所述執(zhí)行模塊包括:
[0037]所述執(zhí)行模塊包括:
[0038]第一執(zhí)行單元,用于當描述性操作語句為描述性查詢語句時,根據(jù)所述查詢計劃,生成查詢操作指令,并從所述目標路徑地址指向的集合中,依據(jù)查詢條件獲取相應的數(shù)據(jù);
[0039]第二執(zhí)行單元,用于當描述性操作語句為描述性刪除語句時,根據(jù)所述查詢計劃,生成刪除操作指令,并從所述目標路徑地址指向的集合中,依據(jù)刪除條件刪除所述待操作數(shù)據(jù);
[0040]第三執(zhí)行單元,用于當描述性操作語句為描述性增加語句時,根據(jù)所述查詢計劃,生成增加操作指令,并將所述待操作數(shù)據(jù),根據(jù)增加條件增加到所述目標路徑地址指向的集合中;
[0041]第四執(zhí)行單元,用于當描述性操作語句為描述性修改語句時,根據(jù)所述查詢計劃,生成修改操作指令,并根據(jù)所述修改操作指令和修改條件對所述目標路徑地址指向的集合中的數(shù)據(jù)進行修改。
[0042]其中,所述第一生成模塊包括:
[0043]生成單元,用于對所述描述性操作語句進行掃描,生成一語句對象;
[0044]解析單元,用于根據(jù)所述描述性操作語句中操作子語句的處理順序,對每個操作子語句進行語義解析處理,得到操作語法樹節(jié)點;
[0045]鏈接單元,用于將每個所述操作語法樹節(jié)點鏈接到所述語句對象中,得到原始語法樹;
[0046]優(yōu)化單元,用于對所述原始語法樹進行優(yōu)化處理,生成相應的語法樹。
[0047]其中,所述優(yōu)化單元具體用于將所述原始語法樹的操作語法樹節(jié)點中的表達式替換為所述表達式對應的最終結果。
[0048]本發(fā)明實施例具有以下有益效果:
[0049]本發(fā)明實施例的數(shù)據(jù)處理方法,根據(jù)數(shù)據(jù)間的邏輯關系,創(chuàng)建非關系型數(shù)據(jù)庫的數(shù)據(jù)集合;根據(jù)用戶輸入的描述性操作語句,生成語法樹;根據(jù)語法書生成查詢計劃;根據(jù)查詢計劃,生成操作指令,并對集合中的數(shù)據(jù)進行相應的操作。本發(fā)明用描述性查詢語言來替代傳統(tǒng)非關系型數(shù)據(jù)庫中的查詢函數(shù),簡潔明了,能更好的描述用戶操作意圖,保留了關系型數(shù)據(jù)庫用戶的結構化查詢語言習慣,使得用戶能夠更加方便地使用key-value數(shù)據(jù)庫。
【附圖說明】
[0050]圖1為本發(fā)明實施例的方法流程圖;
[0051 ] 圖2為本發(fā)明實施例的原始查詢語法樹;
[0052]圖3為本發(fā)明實施例的結構框圖。
【具體實施方式】
[0053]為使本發(fā)明要解決的技術問題、技術方案和優(yōu)點更加清楚,下面將結合具體實施例及附圖進行詳細描述。
[0054]本發(fā)明實施例解決現(xiàn)有非關系型數(shù)據(jù)庫所使用的查詢語句繁瑣復雜,無法直觀描述用戶操作行為的問題,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法,如圖1所示,所述數(shù)據(jù)處理方法包括:
[0055]步驟10:根據(jù)數(shù)據(jù)間的邏輯關系,創(chuàng)建所述非關系型數(shù)據(jù)庫中的數(shù)據(jù)集合;
[0056]在本發(fā)明的具體實施例中,