基于隸屬關(guān)系的數(shù)據(jù)系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種基于隸屬關(guān)系的數(shù)據(jù)系統(tǒng)及方法。
【背景技術(shù)】
[0002]車聯(lián)網(wǎng)業(yè)務拓展和個性化服務對數(shù)據(jù)庫負載造成了巨大壓力,以redis為代表的nosql數(shù)據(jù)庫很好的解決了負載問題。但與此同時,redis數(shù)據(jù)結(jié)構(gòu)并不支持隸屬關(guān)系,各個數(shù)據(jù)之間無法判斷相互關(guān)系,因此各個數(shù)據(jù)只能單獨查詢。如在單位車輛查詢業(yè)務中,要顯示某部門及其下屬部門車輛狀態(tài)數(shù)據(jù),現(xiàn)有技術(shù)中,存儲方案有如下兩種方式:
[0003]第一,將該部門所屬車輛狀態(tài)數(shù)據(jù)以及下屬部門所屬車輛狀態(tài)數(shù)據(jù)存儲在該部門的哈希表或者集合中,查詢時讀取。此種存儲方式在查詢時擁有良好的響應能力,但實際上,造成了數(shù)據(jù)的重復存儲,浪費大量存儲空間。
[0004]第二,將各個部門所屬車輛狀態(tài)數(shù)據(jù)存儲在各個部門的哈希表或集合中,查詢時,首先確定該部門的下屬部門,然后分別查詢該部門所屬車輛狀態(tài)數(shù)據(jù)以及下屬部門所屬車輛狀態(tài)數(shù)據(jù),將結(jié)果匯總。此種存儲方式不需要重復存儲,但在進行查詢操作時需要分別查詢存在隸屬關(guān)系的各個部門所屬車輛狀態(tài)數(shù)據(jù),增加了查詢時間和使用者的工作量。
【發(fā)明內(nèi)容】
[0005]針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供一種基于隸屬關(guān)系的數(shù)據(jù)系統(tǒng)及方法,用于有效處理隸屬關(guān)系數(shù)據(jù),既不會造成數(shù)據(jù)的重復存儲,同時擁有良好的響應能力。
[0006]第一方面,本發(fā)明提供一種基于隸屬關(guān)系的數(shù)據(jù)系統(tǒng),包括關(guān)系數(shù)據(jù)單元、存儲數(shù)據(jù)單元、代理單元,
[0007]所述關(guān)系數(shù)據(jù)單元,用于存儲至少兩個關(guān)鍵詞以及所述至少兩個關(guān)鍵詞的隸屬關(guān)系;
[0008]所述存儲數(shù)據(jù)單元,用于存儲所述關(guān)系數(shù)據(jù)單元中的每個關(guān)鍵詞以及所述每個關(guān)鍵詞對應的直屬數(shù)據(jù);
[0009]所述代理單元,用于根據(jù)接收的檢索關(guān)鍵詞,獲取所述檢索關(guān)鍵詞的下屬關(guān)鍵詞,并通過所述存儲數(shù)據(jù)單元獲取所述檢索關(guān)鍵詞的直屬數(shù)據(jù)及所述下屬關(guān)鍵詞的直屬數(shù)據(jù);
[0010]其中,所述檢索關(guān)鍵詞為所述關(guān)系數(shù)據(jù)單元中的一個關(guān)鍵詞。
[0011]優(yōu)選地,所述關(guān)系數(shù)據(jù)單元中的每個關(guān)鍵詞和其下屬關(guān)鍵詞通過集合set結(jié)構(gòu)存儲。
[0012]優(yōu)選地,所述每個關(guān)鍵詞和所述每個關(guān)鍵詞對應的直屬數(shù)據(jù)通過鍵值對key-value結(jié)構(gòu)存儲。
[0013]優(yōu)選地,所述鍵值對key-value結(jié)構(gòu)存儲為哈希表hash。
[0014]優(yōu)選地,所述集合set或所述哈希表hash為redis數(shù)據(jù)結(jié)構(gòu)。
[0015]第二方面,本發(fā)明提供一種處理隸屬關(guān)系數(shù)據(jù)的方法,包括數(shù)據(jù)讀取階段,所述數(shù)據(jù)讀取階段包括以下步驟:
[0016]接收客戶端發(fā)送的檢索關(guān)鍵詞,所述檢索關(guān)鍵詞為關(guān)系數(shù)據(jù)單元中的一個關(guān)鍵詞;
[0017]根據(jù)所述檢索關(guān)鍵詞獲取的關(guān)鍵詞,獲取該關(guān)鍵詞的每個下屬關(guān)鍵詞;
[0018]根據(jù)所述關(guān)鍵詞和所述每個下屬關(guān)鍵詞,獲取該關(guān)鍵詞的直屬數(shù)據(jù)和所述每個下屬關(guān)鍵詞的直屬數(shù)據(jù)。
[0019]優(yōu)選地,所述數(shù)據(jù)讀取階段之前,還包括數(shù)據(jù)寫入階段,所述數(shù)據(jù)寫入階段包括以下步驟:
[0020]接收客戶端發(fā)送的至少兩個關(guān)鍵詞,以及每個關(guān)鍵詞對應的直屬數(shù)據(jù),所述至少兩個關(guān)鍵詞存在隸屬關(guān)系;
[0021]將所述關(guān)鍵詞和其對應的下屬關(guān)鍵詞存儲至關(guān)系數(shù)據(jù)單元,將每個關(guān)鍵詞和其對應的直屬數(shù)據(jù)存儲至存儲數(shù)據(jù)單元;
[0022]讀取代理單元的配置信息,根據(jù)所述配置信息建立關(guān)系數(shù)據(jù)單元、數(shù)據(jù)存儲單元的連接。
[0023]優(yōu)選地,所述數(shù)據(jù)寫入階段之前,還包括初始化階段,所述初始化階段包括初始化代理單元、關(guān)系數(shù)據(jù)單元、存儲數(shù)據(jù)單元以及數(shù)據(jù)庫集群連接。
[0024]優(yōu)選地,所述數(shù)據(jù)讀取階段之后,還包括數(shù)據(jù)顯示階段,所述數(shù)據(jù)顯示階段包括以下步驟:
[0025]顯示依據(jù)檢索關(guān)鍵詞獲取的關(guān)鍵詞的直屬數(shù)據(jù)以及該關(guān)鍵詞的每個下屬關(guān)鍵詞的直屬數(shù)據(jù)。
[0026]由上述技術(shù)方案可知,本發(fā)明提供一種基于隸屬關(guān)系的數(shù)據(jù)系統(tǒng)及方法,通過關(guān)系數(shù)據(jù)單元存儲至少兩個關(guān)鍵詞以及所述至少兩個關(guān)鍵詞的隸屬關(guān)系,通過存儲數(shù)據(jù)單元存儲每個關(guān)鍵詞以及所述每個關(guān)鍵詞對應的直屬數(shù)據(jù),并通過代理單元存儲的配置信息建立關(guān)系數(shù)據(jù)單元、存儲數(shù)據(jù)單元的連接,實現(xiàn)對隸屬關(guān)系數(shù)據(jù)的有效處理。對于整個的數(shù)據(jù)處理過程來說,一方面,既不會造成數(shù)據(jù)的重復存儲,節(jié)省存儲空間,另一方面,又擁有良好的響應能力和易于擴展的特性。與此同時,操作簡便,不需要分別查詢,減少使用者的工作量。
【附圖說明】
[0027]為了更清楚地說明本公開實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本公開的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些圖獲得其他的附圖。
[0028]圖1為本發(fā)明一實施例關(guān)鍵詞的隸屬關(guān)系不意圖;
[0029]圖2為本發(fā)明一實施例處理隸屬關(guān)系數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)示意圖;
[0030]圖3為本發(fā)明另一實施例處理隸屬關(guān)系數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)示意圖;
[0031]圖4為本發(fā)明一實施例處理隸屬關(guān)系數(shù)據(jù)方法的流程示意圖;
[0032]圖5為本發(fā)明另一實施例處理隸屬關(guān)系數(shù)據(jù)方法的流程示意圖。
【具體實施方式】
[0033]下面結(jié)合附圖和實施例,對本發(fā)明的【具體實施方式】作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0034]圖2為本發(fā)明一實施例提供的處理隸屬關(guān)系數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)示意圖,如圖2所示,本實施例中的處理隸屬關(guān)系數(shù)據(jù)系統(tǒng)20包括關(guān)系數(shù)據(jù)單元21、存儲數(shù)據(jù)單元22、代理單元23,
[0035]關(guān)系數(shù)據(jù)單元21,用于存儲至少兩個關(guān)鍵詞以及所述至少兩個關(guān)鍵詞的隸屬關(guān)系;
[0036]存儲數(shù)據(jù)單元22,用于存儲所述關(guān)系數(shù)據(jù)單元21中的每個關(guān)鍵詞以及所述每個關(guān)鍵詞對應的直屬數(shù)據(jù);
[0037]代理單元23,用于根據(jù)接收的檢索關(guān)鍵詞,獲取所述檢索關(guān)鍵詞的下屬關(guān)鍵詞,并通過所述存儲數(shù)據(jù)單元22獲取所述檢索關(guān)鍵詞的直屬數(shù)據(jù)及所述下屬關(guān)鍵詞的直屬數(shù)據(jù);
[0038]其中,所述檢索關(guān)鍵詞為關(guān)系數(shù)據(jù)單元中的一個關(guān)鍵詞。
[0039]可理解的是,隸屬關(guān)系是指在類目表中下位類帶有上位類的屬性,上位類包含它所屬的各級下位類。在本實施例中,關(guān)鍵詞存在隸屬關(guān)系是指關(guān)鍵詞之間存在直接或間接從屬的關(guān)系。除了頂層關(guān)鍵詞以外,每個關(guān)鍵詞存在直接上屬關(guān)鍵詞,除了底層關(guān)鍵詞外,每個關(guān)鍵詞存在直接下屬關(guān)鍵詞。
[0040]舉例來說,如圖1所示,關(guān)鍵詞A為頂層關(guān)鍵詞,關(guān)鍵詞AAA、AAB、ABA、ABB和ABC為底層關(guān)鍵詞。關(guān)鍵詞A的直接下屬關(guān)鍵詞是關(guān)鍵詞AA、AB,關(guān)鍵詞AA、AB的直接上屬關(guān)鍵詞是關(guān)鍵詞A。
[0041]圖3為本發(fā)明另一實施例提供的處理隸屬關(guān)系數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)示意圖,如圖3所示,本實施例中的處理隸屬關(guān)系數(shù)據(jù)系統(tǒng)30包括關(guān)系數(shù)據(jù)庫Redis31、存儲數(shù)據(jù)庫Redis32、代理單元33,
[0042]關(guān)系數(shù)據(jù)庫Redis31,用于存儲至少兩個關(guān)鍵詞以及所述至少兩個關(guān)鍵詞的隸屬關(guān)系;
[0043]存儲數(shù)據(jù)庫Redis32,用于存儲所述關(guān)系數(shù)據(jù)庫Redis31中的每個關(guān)鍵詞以及所述每個關(guān)鍵詞對應的直屬數(shù)據(jù);
[0044]代理單元33,用于根據(jù)接收的檢索關(guān)鍵詞,獲取所述檢索關(guān)鍵詞的下屬關(guān)鍵詞,并通過所述存儲數(shù)據(jù)庫Redis32獲取所述檢索關(guān)鍵詞的直屬數(shù)據(jù)及所述下屬關(guān)鍵詞的直屬數(shù)據(jù);
[0045]其中,所述檢索關(guān)鍵詞為關(guān)系數(shù)據(jù)單元中的一個關(guān)鍵詞。
[0046]在具體實現(xiàn)過程中,可以理解的是,關(guān)系數(shù)據(jù)庫Redis31,用于存儲至少兩個關(guān)鍵詞以及所述至少兩個關(guān)鍵詞的隸屬關(guān)系,由于每個關(guān)鍵詞和其對應的下屬關(guān)鍵詞存在唯一對應關(guān)系,為了方便存儲與讀取,關(guān)系數(shù)據(jù)庫Redis31中的關(guān)鍵詞和其對應的下屬關(guān)鍵詞通過集合set結(jié)構(gòu)存儲。
[0047]優(yōu)選地,為了擁有良好的響應能力,所述集合set結(jié)構(gòu)存儲為Redis數(shù)據(jù)結(jié)構(gòu)。
[0048]可以理解的是,關(guān)鍵詞對應的下屬關(guān)鍵詞包括該關(guān)鍵詞的直接下屬關(guān)鍵詞和間接下屬關(guān)鍵詞。直接下屬關(guān)鍵詞是具有直接從屬關(guān)系的下屬關(guān)鍵詞,間接下屬關(guān)鍵詞是具有間接從屬關(guān)系的下屬關(guān)鍵詞。
[0049]舉例來說,如圖1所示,關(guān)鍵詞A的直接下屬關(guān)鍵詞是關(guān)鍵詞AA、AB,關(guān)鍵詞A的間接下屬關(guān)鍵詞是關(guān)鍵詞444、448、484、488和々8(:。關(guān)鍵詞4的下屬關(guān)鍵詞是44、444、448、八8、ABA、ABB和ABC,通過集合set存儲于Redis緩存系統(tǒng),通過關(guān)鍵詞A可以獲取對應的下屬關(guān)鍵詞AA、AB、AAA、AAB、ABA、ABB、ABC。
[0050]在具體實現(xiàn)過程中,可以理解的是,存儲數(shù)據(jù)庫Redis32,用于存儲每個關(guān)鍵詞以及所述每個關(guān)鍵詞對應的直屬數(shù)據(jù),由于每個關(guān)鍵詞和其對應的直屬數(shù)據(jù)存在唯一對應關(guān)系,為了方便存儲與讀取,關(guān)鍵詞和其對應的直屬數(shù)據(jù)通過鍵值對key-value結(jié)構(gòu)存儲。