專利名稱:一種對vlr用戶數(shù)據(jù)進行處理的方法
技術領域:
本發(fā)明涉及一種對移動通信系統(tǒng)VLR(Visitor Location Register,訪問位置寄存器)用戶數(shù)據(jù)進行處理的方法,尤其涉及一種通過內(nèi)存數(shù)據(jù)庫實現(xiàn)VLR用戶數(shù)據(jù)處理的方法。
背景技術:
VLR是移動通信系統(tǒng)中的一個重要部分,負責存儲MSC(Moblie SwitchCenter,移動交換中心)所管轄區(qū)域中移動用戶的相關數(shù)據(jù),包括用戶號碼、移動臺的位置區(qū)信息、用戶狀態(tài)和用戶可獲得的服務等參數(shù)。VLR是一個動態(tài)用戶數(shù)據(jù)庫,用戶數(shù)據(jù)會由于其移動和呼叫不斷的發(fā)生著變化。隨著移動通信系統(tǒng)的發(fā)展,移動用戶也在逐步增多,這就要求對VLR中的數(shù)據(jù)能夠快速存儲和訪問,從而進一步提高系統(tǒng)的性能。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題在于提供一種對VLR用戶數(shù)據(jù)進行處理的方法,該方法可快速地進行用戶數(shù)據(jù)的存儲和訪問,并且具有很好的擴展性。
為了實現(xiàn)上述目的,本發(fā)明提供了一種對VLR用戶數(shù)據(jù)進行處理的方法,包括如下步驟設置一采用面向對象的設計并以內(nèi)存數(shù)據(jù)庫形式設計的VLR數(shù)據(jù)庫,用于將用戶數(shù)據(jù)存儲在所述VLR數(shù)據(jù)庫中;對存儲在所述VLR數(shù)據(jù)庫中的移動用戶數(shù)據(jù)進行編輯處理;對所述VLR數(shù)據(jù)庫中的移動用戶數(shù)據(jù)進行訪問。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,對所述VLR數(shù)據(jù)庫進行設計的步驟進一步包括設計表對象、索引對象和鏈表對象,所述表對象,用于存儲包括字段信息的記錄組,擁有關于字段信息的數(shù)據(jù)字典及管理記錄忙閑記錄鏈表,并記錄著被建立索引的字段信息和索引句柄;所述索引對象,用于記錄索引類型、索引字段及索引字段的長度;所述鏈表對象,用于將存儲空間上不連續(xù)的記錄用指針串起來,形成一個鏈;創(chuàng)建表對象實例、鏈表對象實例和索引對象實例。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,在創(chuàng)建表對象實例的步驟中,首先創(chuàng)建表實例的數(shù)據(jù)字典,并根據(jù)表的容量分配空間。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,在創(chuàng)建鏈表對象實例的步驟中,創(chuàng)建空閑記錄鏈表對象實例,并為其分配空間。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,在創(chuàng)建索引對象實例的步驟中,首先向索引對象中注冊索引字段的相關信息,然后重載哈希鏈地址索引方法,并分配哈希表空間和哈希索引桶的空間。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,所述編輯處理過程,包括從內(nèi)存中刪除一條記錄;或者,修改內(nèi)存中某一條記錄中的某個字段。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,當需要刪除內(nèi)存中的一條記錄時,首先定位到該記錄在內(nèi)存中的位置,并置上刪除標志,然后將記錄號插入到空閑記錄鏈表的尾部;并在刪除記錄后進一步刪除該記錄的哈希索引。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,在存儲一條記錄到內(nèi)存中時,先在該表的空閑記錄鏈表的表頭取一個空閑記錄號,將記錄內(nèi)容存放在該位置,并將該記錄設為有效,空閑記錄鏈表頭自動移動至下一位置。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,根據(jù)索引關鍵字定位到記錄在內(nèi)存中的位置,根據(jù)數(shù)據(jù)字典計算字段的偏移量,修改字段的值。
上述對VLR用戶數(shù)據(jù)進行處理的方法,其中,在進行數(shù)據(jù)訪問的步驟中,根據(jù)索引關鍵字和哈希函數(shù)得到哈希入口地址表,再根據(jù)哈希入口地址表中存儲的沖突隊列的首地址中存儲的記錄號來定位內(nèi)存中的記錄,比較如果該記錄的索引關鍵字與給定的關鍵字值相同,則返回相關的信息,否則,繼續(xù)查找沖突隊列的首地址指向的下一個隊列元素,再進行比較,直到?jīng)_突隊列的隊列尾。
本發(fā)明的有益效果是由于移動用戶數(shù)據(jù)在VLR數(shù)據(jù)庫中更新頻繁,采用內(nèi)存數(shù)據(jù)庫和面向對象的數(shù)據(jù)管理方法,可以快速訪問某一用戶的數(shù)據(jù),并進行更新,從而達到提高系統(tǒng)性能的目的。
圖1是本發(fā)明實現(xiàn)VLR用戶數(shù)據(jù)存儲和訪問的方法的流程圖;圖2是本發(fā)明數(shù)據(jù)存儲過程中的哈希鏈地址索引表示意圖。
具體實施例方式
在圖1中,本發(fā)明揭示了一種實現(xiàn)VLR用戶數(shù)據(jù)存儲和訪問的方法的流程,其包括如下步驟步驟S100,系統(tǒng)設計了三個對象,分別是表對象、索引對象和隊列對象。這些對象有各自的屬性和方法。表對象用于存儲包含字段信息的記錄組,擁有關于字段信息的數(shù)據(jù)字典及管理記錄忙閑的空閑記錄鏈表,并記錄著被建立索引的字段信息及索引句柄;相關的方法包括對記錄的插入刪除等操作。索引對象記錄索引類型、索引字段以及索引字段的長度;相關的方法包括哈希鏈地址索引方法。鏈表對象用于將存儲空間上不連續(xù)的記錄用指針串起來,形成一個鏈,一方面可以有效利用資源,另一方面可以加速資源的申請過程。
步驟S200,數(shù)據(jù)庫中的每個表在創(chuàng)建時形成一個表實例,它繼承表對象的屬性和相應的方法,并重載表實例特有的方法(步驟S300),比如插入和刪除方法;同時還形成一個鏈表對象實例,該對象實例管理未用的空閑記錄,方便用戶可以快速的申請到空閑記錄;另外還創(chuàng)建一個索引對象實例(步驟S400),它繼承索引對象的屬性和相應的方法,并重載其特有的方法。
步驟S500,根據(jù)表實例的方法,就可以進行數(shù)據(jù)的訪問了。數(shù)據(jù)的訪問根據(jù)索引關鍵字和索引對象實例的索引方法進行查找,就可以獲得相應的記錄內(nèi)容。
下面進一步以一個表實例為例,詳細描述數(shù)據(jù)的存儲和訪問過程。在數(shù)據(jù)存儲和訪問之前,系統(tǒng)啟動時首先需要進行以下兩個步驟第一,創(chuàng)建表實例和空閑記錄鏈表對象實例在該步驟中,首先創(chuàng)建表實例的數(shù)據(jù)字典,并根據(jù)表的容量分配空間,空間大小即字節(jié)數(shù)是數(shù)據(jù)表的容量與記錄長度的乘積。接下來創(chuàng)建空閑記錄鏈表對象實例,并為之分配空間,字節(jié)數(shù)是數(shù)據(jù)表的容量的4倍,存儲的內(nèi)容是空閑記錄號。
第二,創(chuàng)建索引對象實例在該步驟中,首先向索引對象實例中注冊索引字段的相關信息,然后重載哈希鏈地址索引方法,并分配哈希表空間以及哈希索引桶的空間。
第三,進行數(shù)據(jù)的存儲,存儲步驟如下1、存儲一條記錄到內(nèi)存中當需要存儲一條記錄到內(nèi)存時,首先在該表的空閑記錄鏈表的表頭取一個空閑記錄號,將記錄內(nèi)容存放在該位置,并將該記錄置為有效,空閑記錄鏈表的表頭自動移動到下一位置。為了以后訪問數(shù)據(jù)的方便,還需要插入該記錄的哈希索引。哈希索引表是建立索引關鍵字與記錄號一一對應關系的表,見圖2。圖2的左邊是哈希入口地址表,表中元素的個數(shù)為N,N為模值,哈希入口地址表中存放的是物理記錄號,圖2的右邊部分是哈希桶,哈希桶的元素個數(shù)是表的容量,哈希桶中存放的是物理記錄號。沖突隊列是這樣形成的,如圖2所示,假設通過關鍵字取模得到哈希入口地址為i,入口地址表中存放的第一個元素是記錄號為1098的記錄,下一個沖突的記錄是哈希桶中第1098的位置上存放的物理記錄號,如果為0,表示已經(jīng)到隊列尾。
哈希索引的建立方法如下對于一索引關鍵字,假設模為100萬,首先通過模100萬哈希算法得到一0~(100萬-1)的哈希地址Ni,由Ni找到哈希入口地址表中存儲的沖突隊列的首地址Li,將該記錄號存入Li為首址的隊列的尾部。
2、從內(nèi)存中刪除一條記錄當需要刪除內(nèi)存中的一條記錄時,首先定位到該記錄在內(nèi)存中的位置,并置上刪除標志,然后將記錄號插入到空閑記錄鏈表的尾部。刪除記錄后還需要刪除該記錄的哈希索引。首先根據(jù)索引關鍵字得到哈希索引表的入口地址,再在入口地址表中找到該記錄所在的沖突隊列的地址,在沖突隊列中將該地址刪除。
3、修改內(nèi)存中某一條記錄中的某個字段根據(jù)索引關鍵字定位到記錄在內(nèi)存中的位置,根據(jù)數(shù)據(jù)字典計算字段的偏移量,修改字段的值,就完成了字段的修改。
第四,進行數(shù)據(jù)地訪問。訪問方法如下根據(jù)索引關鍵字和哈希函數(shù)得到哈希入口地址表,再根據(jù)哈希入口地址表中存儲的沖突隊列的首地址中存儲的記錄號來定位內(nèi)存中的記錄,比較如果該記錄的索引關鍵字與給定的關鍵字值相同,則返回相關的信息,否則,繼續(xù)查找沖突隊列的首地址指向的下一個隊列元素,再進行比較,直到?jīng)_突隊列的隊列尾。
使用本發(fā)明的方法,能夠快速的存儲和訪問用戶數(shù)據(jù),可以有效提高移動通信系統(tǒng)的性能。
本發(fā)明提出的方法很容易擴展到其他嵌入式系統(tǒng)使用內(nèi)存數(shù)據(jù)庫的設備中。本發(fā)明的意義在于簡單有效VLR內(nèi)存數(shù)據(jù)庫的存儲和快速訪問,并且具有很好的擴展性。
上述內(nèi)容僅為本發(fā)明的最佳實施方案,其并非用來限制本發(fā)明的具體實施方式
,凡根據(jù)本方法的主要發(fā)明構思而進行的修改和變動,均應屬于本發(fā)明權利要求書所要求的保護范圍。
權利要求
1.一種對VLR用戶數(shù)據(jù)進行處理的方法,包括如下步驟設置一采用面向對象的設計并以內(nèi)存數(shù)據(jù)庫形式設計的VLR數(shù)據(jù)庫,用于將用戶數(shù)據(jù)存儲在所述VLR數(shù)據(jù)庫中;對存儲在所述VLR數(shù)據(jù)庫中的移動用戶數(shù)據(jù)進行編輯處理;對所述VLR數(shù)據(jù)庫中的移動用戶數(shù)據(jù)進行訪問。
2.根據(jù)權利要求1所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,對所述VLR數(shù)據(jù)庫進行設計的步驟進一步包括設計表對象、索引對象和鏈表對象,所述表對象,用于存儲包括字段信息的記錄組,擁有關于字段信息的數(shù)據(jù)字典及管理記錄忙閑記錄鏈表,并記錄著被建立索引的字段信息和索引句柄;所述索引對象,用于記錄索引類型、索引字段及索引字段的長度;所述鏈表對象,用于將存儲空間上不連續(xù)的記錄用指針串起來,形成一個鏈;創(chuàng)建表對象實例、鏈表對象實例和索引對象實例。
3.根據(jù)權利要求2所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,在創(chuàng)建表對象實例的步驟中,首先創(chuàng)建表實例的數(shù)據(jù)字典,并根據(jù)表的容量分配空間。
4.根據(jù)權利要求2所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,在創(chuàng)建鏈表對象實例的步驟中,創(chuàng)建空閑記錄鏈表對象實例,并為其分配空間。
5.根據(jù)權利要求2所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,在創(chuàng)建索引對象實例的步驟中,首先向索引對象中注冊索引字段的相關信息,然后重載哈希鏈地址索引方法,并分配哈希表空間和哈希索引桶的空間。
6.根據(jù)權利要求1、2、3、4或5所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,所述編輯處理過程,包括從內(nèi)存中刪除一條記錄;向內(nèi)存中插入一條記錄;或者,修改內(nèi)存中某一條記錄中的某個字段。
7.根據(jù)權利要求6所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,當需要刪除內(nèi)存中的一條記錄時,首先定位到該記錄在內(nèi)存中的位置,并置上刪除標志,然后將記錄號插入到空閑記錄鏈表的尾部;并在刪除記錄后進一步刪除該記錄的哈希索引。
8.根據(jù)權利要求6所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,在存儲一條記錄到內(nèi)存中時,先在該表的空閑記錄鏈表的表頭取一個空閑記錄號,將記錄內(nèi)容存放在該位置,并將該記錄設為有效,空閑記錄鏈表頭自動移動至下一位置。
9.根據(jù)權利要求6所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,根據(jù)索引關鍵字定位到記錄在內(nèi)存中的位置,根據(jù)數(shù)據(jù)字典計算字段的偏移量,修改字段的值。
10.根據(jù)權利要求6所述對VLR用戶數(shù)據(jù)進行處理的方法,其特征在于,在進行數(shù)據(jù)訪問的步驟中,根據(jù)索引關鍵字和哈希函數(shù)得到哈希入口地址表,再根據(jù)哈希入口地址表中存儲的沖突隊列的首地址中存儲的記錄號來定位內(nèi)存中的記錄,比較如果該記錄的索引關鍵字與給定的關鍵字值相同,則返回相關的信息,否則,繼續(xù)查找沖突隊列的首地址指向的下一個隊列元素,再進行比較,直到?jīng)_突隊列的隊列尾。
全文摘要
本發(fā)明公開了一種對VLR用戶數(shù)據(jù)進行處理的方法,包括如下步驟設置一采用面向對象的設計方法并以內(nèi)存數(shù)據(jù)庫形式設計的VLR數(shù)據(jù)庫,用于將用戶數(shù)據(jù)存儲在所述VLR數(shù)據(jù)庫中;對存儲在所述VLR數(shù)據(jù)庫中的移動用戶數(shù)據(jù)進行編輯處理;對所述VLR數(shù)據(jù)庫中的移動用戶數(shù)據(jù)進行訪問。該方法可快速地進行用戶數(shù)據(jù)的存儲和訪問,并且具有很好的擴展性。
文檔編號H04W8/06GK1585553SQ20041000916
公開日2005年2月23日 申請日期2004年5月31日 優(yōu)先權日2004年5月31日
發(fā)明者朱成榮, 劉建華, 王紅霞 申請人:中興通訊股份有限公司