專利名稱:在數(shù)據(jù)模型中查找參數(shù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)庫管理方法,尤其是關(guān)于一種在數(shù)據(jù)模型中查找參數(shù)的方法。
背景技術(shù):
TR-069全稱為“CPE廣域網(wǎng)管理協(xié)議”,其規(guī)定了家庭網(wǎng)關(guān)進行遠程管理配置時的通用框架和協(xié)議。TR-098定義了通過TR-069管理的所有網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)模型(data model)0TR-098定義的一個網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)模型包括各種類型的數(shù)據(jù)對象(data object) 及配置參數(shù)(configuration parameters)。在TR-098中,所有的數(shù)據(jù)對象及配置參數(shù)都是以目錄樹(directory tree)的形式分等級命名的(例如A. D. F. L),每一等級由字符串 (string)組成。每個數(shù)據(jù)模型的根節(jié)點(root node)只有一個,而數(shù)據(jù)對象可以看做是數(shù)據(jù)模型中的一個群組,每個數(shù)據(jù)對象又可以包含其它數(shù)據(jù)對象或配置參數(shù)。配置參數(shù)必定是目錄樹中最末端的葉子節(jié)點,用戶根據(jù)每個配置參數(shù)的數(shù)據(jù)路徑可以找到其相對應的訪問函數(shù) (access function)0目前,在網(wǎng)絡(luò)服務器中查找配置參數(shù)的方法是接收用戶輸入的字符串,以字符串中的字符為關(guān)鍵字并依據(jù)出現(xiàn)的先后順序在網(wǎng)絡(luò)服務器中查找匹配的配置參數(shù)。由于數(shù)據(jù)模型中的許多配置參數(shù)的名稱中包括相同的字符,當查找的配置參數(shù)的名稱較長時,這種查找方法較為費時。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提出一種在數(shù)據(jù)模型中查找參數(shù)的方法,可以節(jié)省查找時間,提高查找效率。—種在數(shù)據(jù)模型中查找參數(shù)的方法,該方法包括以下步驟提供第一哈希表,用于儲存數(shù)據(jù)模型中所有葉子節(jié)點處的配置參數(shù)名稱的索引值;提供第二哈希表,用于儲存數(shù)據(jù)模型中重復配置參數(shù)的完整數(shù)據(jù)路徑的索引值;接收用戶輸入的字符串并讀取字符串中最后一個字符;在第一哈希表中查找與該最后一個字符對應的索引值;及若在第一哈希表中查找到該字符有不重復的索引值,則將所述字符串中的余下字符依出現(xiàn)順序自后向前與數(shù)據(jù)模型中對應的葉子節(jié)點的父節(jié)點自下向上逐級進行比較,以查找與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑,或者,若在第一哈希表中查找到該字符有重復的索引值,則在第二哈希表中查找所述字符串對應的索引值,根據(jù)該第二哈希表中該字符串對應的索引值查找與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑。
相較于現(xiàn)有技術(shù),本發(fā)明提供的在數(shù)據(jù)模型中查找參數(shù)的方法,根據(jù)葉子節(jié)點查找父節(jié)點的方式在數(shù)據(jù)模型中查找與用戶輸入的字符串匹配的配置參數(shù)的完整數(shù)據(jù)路徑。 對于重復的配置參數(shù),則根據(jù)其不同的數(shù)據(jù)路徑進行查找。由于每個葉子節(jié)點的每一級父節(jié)點都是唯一的,故該方法可以有效減少查找時間,提高查找效率。
圖1是本發(fā)明在數(shù)據(jù)模型中查找參數(shù)的方法較佳實施例的流程圖。圖2是一個數(shù)據(jù)模型的樹狀結(jié)構(gòu)圖。圖3是第一哈希表的示意圖。圖4是第二哈希表的示意圖。圖5是在第一哈希表中查找配置參數(shù)的結(jié)果示意圖。圖6是在第二哈希表中查找重復配置參數(shù)的完整數(shù)據(jù)路徑的結(jié)果示意圖。
具體實施例方式參閱圖1所示,是本發(fā)明在數(shù)據(jù)模型中查找參數(shù)的方法較佳實施例的流程圖。該方法可以應用在類似于TR-98的數(shù)據(jù)模型中。步驟S101,提供第一哈希表,用于儲存數(shù)據(jù)模型中所有葉子節(jié)點處的配置參數(shù)名稱的索引值。該第一哈希表儲存在存儲裝置,例如內(nèi)存或外部存儲器。在該第一哈希表中, 代表配置參數(shù)名稱的字符為關(guān)鍵字,每個關(guān)鍵字映射到一個索引值,每個索引值映射到一個數(shù)據(jù)路徑記錄。在TR-098數(shù)據(jù)模型中,數(shù)據(jù)路徑由字符和數(shù)字構(gòu)成。參閱圖2所示,是一個參數(shù)模型(data model)的樹狀結(jié)構(gòu)圖。其中,圓形代表該參數(shù)模型中的數(shù)據(jù)對象(data object),方形代表該參數(shù)模型中的配置參數(shù)(configuration parameter),三角形代表名稱相同的數(shù)據(jù)對象的編號(instance)。在數(shù)據(jù)模型中,具有唯一性的數(shù)據(jù)對象稱作靜態(tài)對象(static object),同一數(shù)據(jù)路徑下具有不同編號相同名稱的數(shù)據(jù)對象是根據(jù)用戶需要動態(tài)產(chǎn)生的,故稱做動態(tài)對象(dynamicobject)。相應地,靜態(tài)對象的配置參數(shù)稱作靜態(tài)參數(shù)(staticparameter),動態(tài)對象的配置參數(shù)稱作動態(tài)參數(shù) (dynamic object) 0例如,在圖2所示的數(shù)據(jù)模型中,配置參數(shù)包括B,G,I,J,K,M,N,0,其中靜態(tài)參數(shù)包括B,G,I,J,K,動態(tài)參數(shù)包括M,N, 0,重復的參數(shù)包括G,K,M ;數(shù)據(jù)對象包括 A,C,D,E,H,F(xiàn),L,靜態(tài)對象包括A,C,D,E,F(xiàn),動態(tài)對象包括H,L,重復的對象包括F,H。參閱圖3所示,是對圖2中所示參數(shù)模型的所有葉子節(jié)點處的配置參數(shù)構(gòu)建的第一哈希表的示意圖。步驟S103,提供第二哈希表,用于儲存數(shù)據(jù)模型中重復配置參數(shù)的完整數(shù)據(jù)路徑的索引值。該第二哈希表儲存在存儲裝置。在該第二哈希表中,代表配置參數(shù)完整數(shù)據(jù)路徑的字符串為關(guān)鍵字,每個關(guān)鍵字映射到一個索引值,每個索引值映射到一個數(shù)據(jù)路徑記錄。由于參數(shù)模型中存在重復的配置參數(shù),所以在第一哈希表中存在相同的索引值。 例如圖2中所示的數(shù)據(jù)模型包括重復的參數(shù)G,K,M,則在圖3所示的第一哈希表中存在重復的索引值2,5,6。故當用戶輸入這些重復的參數(shù)時,無法從第一哈希表查找到唯一的索引值,進而無法從存儲裝置中找到唯一的數(shù)據(jù)路徑記錄。然而,這些重復參數(shù)在數(shù)據(jù)模型中的數(shù)據(jù)路徑是不相同的,例如,重復參數(shù)G在圖2所示的數(shù)據(jù)模型中有兩個不同的數(shù)據(jù)路徑A. C. G及A. D. G,重復參數(shù)K有兩個不同的數(shù)據(jù)路徑A. C. F. K及A. D. F. K。參閱圖3所示,是對圖2中所示數(shù)據(jù)模型的重復配置參數(shù)的完整數(shù)據(jù)路徑構(gòu)建的第二哈希表的示意圖。步驟S105,接收用戶輸入的字符串并讀取字符串中最后一個字符。例如,用戶輸入字符串“A. D. F. J”,則讀取最后一個字符J ;若用戶輸入字符串“A. C. G”,則讀取最后一個字符G。步驟S107,在第一哈希表中查找與該最后一個字符對應的索引值。步驟S109,判斷是否在第一哈希表中查找到與該最后一個字符對應的索引值。如果未在第一哈希表中查找到與該最后一個字符對應的索引值,則提示用戶輸入錯誤,流程結(jié)束。若在第一哈希表中查找到與該最后一個字符對應的索引值,則進入步驟sill。步驟S111,判斷是否在第一哈希表中查找到重復的索引值。如果未在第一哈希表中查找到重復的索引值,例如字符J在第一哈希表中有唯一的索引值4,則流程進入步驟 S113。步驟S113,將字符串中的余下字符依出現(xiàn)順序自后向前與第一哈希表中該索引值對應的數(shù)據(jù)模型中的葉子節(jié)點的父節(jié)點逐級進行比較。例如,將字符串中“A. D. F. J”的余下字符A,D,F(xiàn)按照自后向前的順序F,D,A與圖2所示的數(shù)據(jù)模型中葉子節(jié)點J自下向上的父節(jié)點F,D,A分別進行比較。步驟S115,判斷該字符串中的余下字符自后向前是否分別與該葉子節(jié)點自下向上的父節(jié)點一一匹配。若不一一匹配,則提示用戶輸入錯誤,流程結(jié)束。若一一匹配,則進入步驟S117,判斷查找到與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑。如圖5 所示,所有非重復的配置參數(shù),例如B,I,J,N, 0,可以根據(jù)其在第一哈希表中的唯一索引值找到唯一的數(shù)據(jù)路徑記錄。例如,配置參數(shù)J在第一哈希表中的索引值4指向數(shù)據(jù)路徑記錄 “Mo_A_D_F_J_Ptr,,。如果在步驟Slll中,判斷在第一哈希表中查找到重復的索引值,則流程進入步驟 S119。如圖5所示,重復的配置參數(shù),例如G,K,M,由于其在第一哈希表中有重復的索引值, 故根據(jù)該重復的索引值無法找到唯一的數(shù)據(jù)路徑記錄。例如,重復配置參數(shù)G在第一哈希表中的索引值2指向的數(shù)據(jù)路徑記錄為“NULL”。步驟S119,在第二哈希表中查找該字符串對應的索引值。步驟S121,判斷是否從第二哈希表中查找該字符串對應的索引值。如果未從第二哈希表中查找該字符串對應的索引值,則提示用戶輸入錯誤,流程結(jié)束。如果從第二哈希表中查找該字符串對應的索引值,則進入步驟S117,根據(jù)第二哈希表中該字符串對應的索引值查找到與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑。如圖6所示,表示重復配置參數(shù)的完整數(shù)據(jù)路徑的字符串可以根據(jù)其在第二哈希表中的索引值找到唯一的數(shù)據(jù)路徑記錄。例如字符串“A. C. G”在第二哈希表中的索引值1指向數(shù)據(jù)路徑記錄Mo_A_C_ G_Ptr。由于在TR-98的數(shù)據(jù)模型中,所有的元素,例如數(shù)據(jù)對象、配置參數(shù)都是已知的、 固定的,所以本實施例給出的在數(shù)據(jù)模型中查找參數(shù)的方法可以應用在數(shù)據(jù)模型的編譯階段,從而優(yōu)化后續(xù)的查找功能。
權(quán)利要求
1.一種在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,該方法包括提供第一哈希表,用于儲存數(shù)據(jù)模型中所有葉子節(jié)點處的配置參數(shù)名稱的索引值;提供第二哈希表,用于儲存數(shù)據(jù)模型中重復配置參數(shù)的完整數(shù)據(jù)路徑的索引值;接收用戶輸入的字符串并讀取字符串中最后一個字符;在第一哈希表中查找與該最后一個字符對應的索引值;及若在第一哈希表中查找到該字符有不重復的索引值,則將所述字符串中的余下字符依出現(xiàn)順序自后向前與數(shù)據(jù)模型中對應的葉子節(jié)點的父節(jié)點自下向上逐級進行比較,以查找與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑,或者,若在第一哈希表中查找到該字符有重復的索引值,則在第二哈希表中查找所述字符串對應的索引值,根據(jù)該第二哈希表中該字符串對應的索引值查找與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑。
2.如權(quán)利要求1所述的在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,所述第一哈希表儲存在存儲裝置,該第一哈希表中每個配置參數(shù)名稱的索引值映射到一個數(shù)據(jù)路徑記錄。
3.如權(quán)利要求1所述的在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,所述第二哈希表儲存在存儲裝置,該第二哈希表中每個字符串的索引值映射到一個數(shù)據(jù)路徑記錄。
4.如權(quán)利要求1所述的在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,該方法還包括若在第一哈希表中未查找到該字符對應的索引值,則提示用戶輸入錯誤。
5.如權(quán)利要求1所述的在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,該方法還包括當該字符在第一哈希表中有不重復的索引值時,若所述字符串中的余下字符依出現(xiàn)順序自后向前與數(shù)據(jù)模型中對應的葉子節(jié)點的父節(jié)點自下向上逐級進行比較的結(jié)果不一一匹配,則提示用戶輸入錯誤。
6.如權(quán)利要求1所述的在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,該方法還包括若在第二哈希表中未查找到該字符串對應的索引值,則提示用戶輸入錯誤。
7.如權(quán)利要求2或3所述的在數(shù)據(jù)模型中查找參數(shù)的方法,其特征在于,所述存儲裝置為計算機內(nèi)存或外部存儲器。
全文摘要
本發(fā)明提供一種在數(shù)據(jù)模型中查找參數(shù)的方法。該方法接收用戶輸入的字符串并讀取字符串中最后一個字符,在第一哈希表中查找與該最后一個字符對應的索引值。若在第一哈希表中查找到該字符有不重復的索引值,則將所述字符串中的余下字符依出現(xiàn)順序自后向前與數(shù)據(jù)模型中對應的葉子節(jié)點的父節(jié)點自下向上逐級進行比較,以查找與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑?;蛘?,若在第一哈希表中查找到該字符有重復的索引值,則在第二哈希表中查找所述字符串對應的索引值,根據(jù)該第二哈希表中該字符串對應的索引值查找與該字符串匹配的配置參數(shù)在數(shù)據(jù)模型中的完整數(shù)據(jù)路徑。
文檔編號G06F17/30GK102346747SQ20101024505
公開日2012年2月8日 申請日期2010年8月4日 優(yōu)先權(quán)日2010年8月4日
發(fā)明者陳炳榮, 黃智源 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司