專利名稱:一種復合字段的數據存儲及查詢方法
技術領域:
本發明屬于數據存儲及查詢技術領域,尤其是涉及一種復合字段的數據存儲及查詢方法。
背景技術:
日常工作、生產和學習中會接觸到大量的復合數據的處理問題,以下列舉幾個實例進行說明例1 為了滿足關系型數據庫的要求,對某高校教師的建檔信息進行存儲時,通常均按照如表1所示的信息存儲表進行存儲表1某高校教師建檔信息存儲表
權利要求
1. 一種復合字段的數據存儲及查詢方法,其特征在于該方法包括以下步驟步驟一、數據存儲采用PC機且按常規數據存儲方法對需要存儲的多個數據分別進行存儲,并將所存儲的多個所述數據均存儲至所述PC機的存儲設備內預先建立的數據表中; 所述數據表滿足第三范式要求,且所述數據表的數量為一個或多個;各數據表的數據存儲方法均相同;實際進行存儲時,所有數據的存儲方式均相同且以字符串形式對各數據分別進行存儲;所存儲的每一個數據均包括字段名稱信息、與字段名稱信息相對應的具體數值和對數據進行唯一區分的主鍵編號三類信息,且所述字段名稱信息和所述具體數值一一對應;所述字段名稱信息、具體數值和主鍵編號均以單字段的存儲方式進行存儲,且實際存儲時同一數據的字段名稱信息、具體數值和主鍵編號均分別存儲于單一的一個字段內,同一數據中的具體數值與字段名稱信息和主鍵編號之間均通過關聯單元進行關聯且同一數據中的具體數值分別與該數據的字段名稱信息和主鍵編號相對應;與同一個主鍵編號相關聯的所有字段名稱信息和與各字段名稱信息相對應的具體數值組成一個獨立的存儲記錄;實際進行存儲時,各數據表中的存儲方法均相同,均以主鍵編號為單位進行存儲;對于任一個數據表來說,存儲之前,先人為按照存儲先后順序對本數據表中需存儲的所有主鍵編號進行前后排序,之后再開始進行存儲;實際存儲時,按照主鍵編號的排序,先對前一個主鍵編號及與其相關聯的所有字段名稱信息和與各字段名稱信息相對應的具體數值進行存儲,且待前一個主鍵編號及與其相關聯的所有字段名稱信息和與各字段名稱信息相對應的具體數值均存儲完成并形成一個獨立的存儲記錄后,再對后一個主鍵編號及與其相關聯的所有字段名稱信息和與各字段名稱信息相對應的具體數值進行存儲;實際存儲時,各存儲記錄的存儲方法均相同;且對任一個存儲記錄進行存儲時,均需人為判斷該存儲記錄中是否包含復合字段當判斷得出包含復合字段時,需在所述存儲設備內存儲與各復合字段相對應的查詢數量字段,并將與各復合字段相對應的復合字段屬性存入所述存儲設備內預先建立的屬性信息庫內,所述查詢數量字段和所述復合字段屬性均與該存儲記錄中的主鍵編號相關聯,且各復合字段的查詢數量字段和復合字段屬性均相關聯;所述復合字段的數量為一個或多個;所述復合字段包括屬性相同的多個字段名稱信息,所述查詢數量字段內存儲有查詢數量η且η為所述復合字段中所包括字段名稱信息的數量,所述復合字段屬性為屬性相同的多個字段名稱信息的共同屬性;步驟二、數據查詢,其數據查詢過程如下.201、查詢關鍵字輸入采用PC機的參數輸入裝置輸入所要查詢的查詢關鍵字;.202、查詢操作字段分析判斷所述PC機的中央處理器調用查詢操作字段判斷模塊判斷所輸入查詢關鍵字中包含的查詢操作字段是否為存儲有主鍵編號的主鍵字段當判斷得出查詢操作字段為主鍵字段時,則轉入步驟204;否則,進入步驟203 ;.203、非主鍵編號查詢所述中央處理器調用詞法分析模塊對所輸入的查詢關鍵字進行分析,并結合所述屬性信息庫內所存儲信息,判斷所述查詢關鍵字中的需查詢字段是否包括屬性為復合字段屬性的字段名稱信息當判斷得出需查詢字段包括屬性為復合字段屬性的字段名稱信息時,轉入步驟2031,且需查詢字段中所包括的復合字段屬性為需查詢復合字段屬性;否則,轉入步驟2032;.2031、復合字段查詢所述中央處理器調用復合字段信息查詢模塊對需查詢的所有數據表分別進行查詢,且進行查詢時按照各數據表在存儲器內的存儲位置的先后順序進行查詢;查詢時,對所有數據表的查詢方法均相同且對數據表中存儲的所有存儲記錄的查詢方法均相同,均按照存儲位置的前后順序進行查詢;對于其中任一個需查詢的數據表而言,其具體查詢過程如下.20311、待查詢存儲記錄調取所述復合字段信息查詢模塊按照存儲位置的先后順序, 調取出需查詢數據表中存儲的一個存儲記錄;.20312、信息查詢所述復合字段信息查詢模塊按照存儲位置的先后順序,且按照常規數據查詢方法對所調取存儲記錄中所包含的字段名稱信息逐一進行查詢,并對符合查詢結果的字段名稱信息進行標記;標記過程中,所述中央處理器對當前所標記字段名稱信息的總數量m進行同步統計,并將數量m與查詢數量字段內所存儲的查詢數量η進行差值比較, 且當比較得出m > η時,完成所調取存儲記錄的查詢過程;本步驟中,所述查詢數量字段為與步驟203中所述需查詢復合字段屬性相關聯的查詢數量字段;.20313、查詢結果保存將所調取存儲記錄的主鍵編號,同步存入查詢結果集內;.20314、按照步驟20311至20313中所述的調取與查詢方法,且按照存儲位置的先后順序對需查詢數據表中所存儲的下一個存儲記錄進行調取與查詢;.20315、多次重復步驟20314,直至需查詢數據表中所存儲的所有存儲記錄均查詢完畢, 并轉入步驟20316 ;.20316、將步驟20315中所述查詢結果集內所保存的所有信息存儲至所述存儲設備內預先建立的查詢結果數據表中;.20317、多次重復步驟20311至20316,且按照存儲位置的先后順序對需查詢的其它數據表依次進行查詢,直至需查詢的所有數據表均查詢完畢;.2032、非復合字段查詢所述中央處理器采用常規數據查詢方法,且按照各數據表在存儲器內的存儲位置的先后順序,對需查詢的所有數據表進行查詢,直至需查詢的所有數據表均查詢完畢并獲得查詢結果數據表;.204、主鍵編號查詢所述中央處理器調用數值型數據查詢模塊,并按照常規數值型數據的查詢方法對需查詢的所有數據表分別進行查詢,且實際查詢時按照各數據表在存儲設備內的存儲位置的先后順序進行查詢;且進行查詢時,對所有數據表的查詢方法均相同,均需按照存儲位置的先后順序對各數據表中所存儲的所有存儲記錄進行查詢且對所有存儲記錄的查詢方法均相同,對于其中任一個需查詢的數據表而言,其查詢過程如下.2041、待查詢存儲記錄調取所述數值型數據查詢模塊按照存儲位置的先后順序,調取出需查詢數據表中存儲的一個待查詢存儲記錄;.2042、單字段數據查詢及主鍵編號保存所述數值型數據查詢模塊先調取出待查詢存儲記錄中所包括的主鍵編號,再采用將所輸入的查詢關鍵字與所調取的主鍵編號進行差值比較的方法進行查詢當判斷得出所調取的主鍵編號與查詢關鍵字相同時,則將所調取存儲記錄中包含的主鍵編號保存至查詢結果集內,之后進入步驟2043 ;否則,直接進入步驟 2043 ;.2043、按照步驟2041和步驟2042中所述的調取與查詢方法,且按照存儲位置的先后順序對需查詢數據表中所存儲的下一個存儲記錄進行調取與查詢;.2044、多次重復步驟2043,直至需查詢數據表中所存儲的所有存儲記錄均查詢完畢,并轉入步驟2045 ;·2045、將步驟2044中所述查詢結果集內所保存的所有主鍵編號存儲至所述存儲設備內預先建立的查詢結果數據表中;·2046、多次重復步驟2041至2045,且按照存儲位置的先后順序對需查詢的其它數據表依次進行查詢,直至需查詢的所有數據表均查詢完畢。
2.按照權利要求1所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟 20313中進行查詢結果保存時,將所調取存儲記錄的主鍵編號以及步驟20312中標記出的所有字段名稱信息和與標記出的各字段名稱信息相對應的具體數值,均存入查詢結果集內。
3.按照權利要求1或2所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟20313中進行查詢結果保存時,將當前所調取的存儲記錄全部存入查詢結果集內。
4.按照權利要求1或2所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟20317、步驟2032和步驟2046中所述需查詢的所有數據表均查詢完畢后,還需通過所述 PC機的顯示器對查詢獲得的查詢結果數據表進行同步顯示。
5.按照權利要求1或2所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟20312中按照常規數據查詢方法對所調取存儲記錄中所包含的字段名稱信息逐一進行查詢之前,需先判斷所述查詢關鍵字中的需查詢字段是否包括與所述需查詢復合字段屬性相對應的具體數值信息,當判斷得出需查詢字段包括與所述需查詢復合字段屬性相對應的具體數值信息時,需按照存儲位置的先后順序對所調取存儲記錄中所存儲的字段名稱信息及相對應的具體數值分別進行查詢,且對各字段名稱信息及相對應的具體數值的查詢方法均相同,此時與所述需查詢復合字段屬性相對應的具體數值信息為需查詢數據信息;對于其中任一個字段名稱信息及相對應的具體數值進行查詢時,其查詢過程如下I、字段名稱信息屬性查詢所述復合字段信息查詢模塊按照常規數據查詢方法,對所查詢字段名稱信息的屬性進行查詢當查詢得出所查詢字段名稱信息的屬性與需查詢復合字段屬性相同時,進入步驟II ;否則,進入步驟VI ;II、符合屬性查詢條件的字段名稱信息數量統計步驟I中,當查詢得出所查詢字段名稱信息的屬性與需查詢復合字段屬性相同時,所述中央處理器還需對當前查詢到的與需查詢復合字段屬性相同的所有字段名稱信息數量m進行同步統計;III、具體數值查詢所述中央處理器調用數值處理模塊,且按照常規數值查詢方法,對與所查詢字段名稱信息相對應的具體數值進行查詢當查詢得出所查詢的具體數值與需查詢數據信息相同時,則所述中央處理器對所查詢字段名稱信息及相對應的具體數值分別進行標記,進入步驟IV ;否則,進入步驟V ;步驟IV、查詢結果保存將所查詢字段名稱信息相關聯的主鍵編號,同步存入查詢結果集內;步驟V、查詢數量差值比較所述中央處理器對步驟II中統計得出的數量m與查詢數量字段內所存儲的查詢數量η進行差值比較當比較得出m > η時,完成所調取存儲記錄的查詢過程,進入步驟VII ;否則,進入步驟VI ;本步驟中,所述查詢數量字段為與步驟203中所述需查詢復合字段屬性相關聯的查詢數量字段;VI、按照步驟I至V中所述的調取與查詢方法,且按照存儲位置的先后順序對所查詢存儲記錄中所存儲的下一個字段名稱信息及相對應的具體數值進行調取與查詢;VII、多次重復步驟VI,直至所查詢存儲記錄中所存儲的所有字段名稱信息及相對應的具體數值均查詢完畢。
6.按照權利要求5所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟IV 中進行查詢結果保存時,將所查詢字段名稱信息相關聯的主鍵編號以及步驟III中標記出的所查詢字段名稱信息及相對應的具體數值,均存入查詢結果集內。
7.按照權利要求5所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟IV 中進行查詢結果保存時,將當前所調取的存儲記錄均存入查詢結果集內。
8.按照權利要求1或2所述的一種復合字段的數據存儲及查詢方法,其特征在于步驟一中對多個所述數據進行存儲的同時,將各數據的主鍵編號均存儲至主鍵編號數據庫中。
全文摘要
本發明公開了一種復合字段的數據存儲及查詢方法,包括以下步驟一、數據存儲并多個數據均存儲至滿足第三范式要求的數據表中,各存儲記錄均包括字段名稱信息、具體數值和主鍵編號三類信息;存儲復合字段時,增加與主鍵編號相關聯的查詢數量字段和復合字段屬性;二、數據查詢;對復合字段進行查詢時,對于任一存儲記錄,先讀取查詢數量字段中的查詢數量n,查詢過程中統計符合查詢條件的字段名稱信息數量m,當m≥n時完成一個存儲記錄的查詢過程;之后,繼續進行查詢直至所有數據表均查詢完畢。本發明設計合理、存儲及查詢方便且數據處理量小、查詢效率高,能解決復合字段查詢時存在的查詢效率低、花費時間長、不能快速且高效查找等問題。
文檔編號G06F17/30GK102243664SQ201110241029
公開日2011年11月16日 申請日期2011年8月22日 優先權日2011年8月22日
發明者關博通, 張玉成, 徐司雨, 李康, 李玉芹, 江靜, 牛曉霞, 王冰, 王博, 王浩, 耿國華, 胡榮祖, 趙鳳起, 趙宏安, 陳林, 雷元元, 高紅旭 申請人:西北大學, 西安近代化學研究所