一種可變數據結構的位移存儲方法,涉及數據存儲技術領域,所解決的是提高數據結構可擴展性的同時,保證數據庫訪問效率的技術問題。該方法的具體步驟如下:1)建立一個數據庫表,并在數據庫表中建立6個字段;2)為具體應用建立數據結構;3)將所有數據結構的結構記錄均存儲在數據庫表中,數據庫表為每條結構記錄的每個表字段建立一條庫表記錄,并為每條庫表記錄生成一個唯一的索引值。本發明專利技術提供的方法,數據結構可擴展性及數據庫訪問效率高。
【技術實現步驟摘要】
本專利技術涉及數據存儲技術,特別是涉及一種可變數據結構的位移存儲方法的技術。
技術介紹
大型數據庫系統應用對數據庫容量要求及對數據庫的訪問效率要求都較高,隨著系統應用的發展,系統中所使用的數據結構也會不斷的擴展,因此大型數據庫系統應用對數據結構可擴展性要求也高,但是數據庫系統中所采用的數據結構有很多,如何實現大容量數據庫的高效訪問和結構可擴展性是一個復雜的問題。現有的數據結構擴展時,都為每一個數據結構建立一個數據存儲表,再將數據存儲表與對應表關聯,這種數據結構擴展方式會增加數據庫設計的復雜性,而且隨著數據存·儲表數量的增多及數據存儲量的增加,會導致數據庫的訪問效率明顯降低。
技術實現思路
針對上述現有技術中存在的缺陷,本專利技術所要解決的技術問題是提供一種數據結構可擴展性及數據庫訪問效率高的可變數據結構的位移存儲方法。為了解決上述技術問題,本專利技術所提供的一種可變數據結構的位移存儲方法,其特征在于,具體步驟如下 1)建立一個數據庫表TabVar,并在數據庫表TabVar中建立6個字段分別為ID,index, table,fragment,tablerec,varvalue ; 2)為具體應用建立n個數據結構,每個數據結構均包含有至少一個表字段,這里n>0; 為每個數據結構分配一個唯一的表號,為每個表字段分配一個在該表字段所屬數據結構中唯一的表字段號; 3)設數據庫表TabVar的記錄為庫表記錄,數據結構的記錄為結構記錄,則 所有結構記錄均存儲在數據庫表TabVar中,每條結構記錄均分配有一個在該記錄所屬數據結構中唯一的記錄號;數據庫表TabVar中,為每條結構記錄的每個表字段建立一條庫表記錄,每條庫表記錄中 為ID字段分配一個在數據庫表TabVar中唯一的ID編號; 為index字段生成一個在數據庫表TabVar中唯一的索引值; table字段的值為結構記錄所屬數據結構的表號; fragment字段的值為結構記錄所屬表字段的表字段號; tablerec字段的值為結構記錄的記錄號; varvalue字段的值為結構記錄所屬表字段的值。進一步的,所述步驟3中,每條庫表記錄的index字段值生成步驟如下3. I)將該條庫表記錄中的字段table, fragment, tablerec,按照數值組合成一字符串newStr,字符串newStr中每個字段占據8個字符位,不夠8個字符的補入字符“O”,以保證所生成的字符串newStr的唯一'丨生; 3. 2)令index字段的值為24,i=0 ; 3. 3)采用位移方式生成index字段值,其生成公式為 index = ((index << kO) ' (index >> kl)) ' newStr[i]式中,index為index字段值,newStr [i]為字符串newStr中的第i個字符,index kO是指將index字段的二進制值左移kO位,index kl是指將index字段的二進制值右移kl位,符號“ ~ ”為異或操作符,kO為左操作常數,kl為右操作常數,這里k0=5, kl=27 ;3. 4)如果i值小于24,則令i遞增I后返回4. 3步驟,反之則將index字段值存入庫表記錄的index字段。 本專利技術提供的可變數據結構的位移存儲方法,先建立6字段的數據庫表,再建立數據結構,所有的數據結構都不需要另行建立數據存儲表,任意一種數據結構的數據都能保存在數據庫表中,因此對不同的數據結構具有可擴展性,僅僅需要建立一個數據庫表即可處理不同的數據結構,可以降低數據庫設計的復雜性,適應不同可變化的應用需求,同時采用位移算法來計算索引值,可以快速的進行索引,保證大容量數據的高效訪問。附圖說明圖I是本專利技術實施例的可變數據結構的位移存儲方法的流程圖。具體實施例方式以下結合附圖說明對本專利技術的實施例作進一步詳細描述,但本實施例并不用于限制本專利技術,凡是采用本專利技術的相似結構及其相似變化,均應列入本專利技術的保護范圍。如圖I所示,本專利技術實施例所提供的一種可變數據結構的位移存儲方法,其特征在于,具體步驟如下 1)建立一個數據庫表TabVar,并在數據庫表TabVar中建立6個字段分別為ID,index, table,fragment,tablerec,varvalue ; 2)為具體應用建立n個數據結構,每個數據結構均包含有至少一個表字段,這里n>0; 為每個數據結構分配一個唯一的表號,為每個表字段分配一個在該表字段所屬數據結構中唯一的表字段號; 3)設數據庫表TabVar的記錄為庫表記錄,數據結構的記錄為結構記錄,則 所有結構記錄均存儲在數據庫表TabVar中,每條結構記錄均分配有一個在該記錄所屬數據結構中唯一的記錄號; 數據庫表TabVar中,為每條結構記錄的每個表字段建立一條庫表記錄,每條庫表記錄中 為ID字段分配一個在數據庫表TabVar中唯一的ID編號; 為index字段生成一個在數據庫表TabVar中唯一的索引值; table字段的值為結構記錄所屬數據結構的表號; fragment字段的值為結構記錄所屬表字段的表字段號; tablerec字段的值為結構記錄的記錄號;varvalue字段的值為結構記錄所屬表字段的值;如,表號為Ttl的數據結構有4個表字段,分別為ID,fragl,frag2,frag3 ;如果Ttl有A條結構記錄,則將Ttl中的結構記錄全部存入數據庫表TabVar中后,在數據庫表TabVar中會產生4A條數據結構Tci的庫表記錄。本專利技術實施例的所述步驟3中,每條庫表記錄的index字段值生成步驟如下 3. I)將該條庫表記錄中的字段table, fragment, tablerec,按照數值組合成一字符串newStr,字符串newStr中每個字段占據8個字符位,不夠8個字符的補入字符“0”,以保證所生成的字符串newStr的唯一'丨生; 3. 2)令index字段的值為24,i=0 ; 3.3)采用位移方式生成index字段值,其生成公式為 index = ((index << k0) ' (index >> kl)) ' newStr[i] 式中,index為index字段值,newStr [i]為字符串newStr中的第i個字符,index k0是指將index字段的二進制值左移k0位,index kl是指將index字段的二進制值右移kl位,符號“ ~ ”為異或操作符,k0為左操作常數,kl為右操作常數,這里k0=5, kl=27 ; 3.4)如果i值小于24,則令i遞增I后返回4. 3步驟,反之則將index字段值存入庫表記錄的index字段。本專利技術實施例可根據數據庫表TabVar中各庫表記錄的table字段、fragment字段、tablerec字段訪問各個數據結構,讀取各個數據結構的結構記錄; 本專利技術實施例可根據步驟4計算出數據庫表TabVar中各庫表記錄的index字段值,再根據計算出的index字段值,從出數據庫表TabVar中快速找到對應的庫表記錄,實現對數據結構的高效訪問。本文檔來自技高網...
【技術保護點】
一種可變數據結構的位移存儲方法,其特征在于,具體步驟如下:1)建立一個數據庫表TabVar,并在數據庫表TabVar中建立6個字段分別為:ID,index,table,fragment,tablerec,varvalue;2)為具體應用建立n個數據結構,每個數據結構均包含有至少一個表字段,這里n>0;為每個數據結構分配一個唯一的表號,為每個表字段分配一個在該表字段所屬數據結構中唯一的表字段號;3)設數據庫表TabVar的記錄為庫表記錄,數據結構的記錄為結構記錄,則:所有結構記錄均存儲在數據庫表TabVar中,每條結構記錄均分配有一個在該記錄所屬數據結構中唯一的記錄號;數據庫表TabVar中,為每條結構記錄的每個表字段建立一條庫表記錄,每條庫表記錄中:為ID字段分配一個在數據庫表TabVar中唯一的ID編號;為index字段生成一個在數據庫表TabVar中唯一的索引值;table字段的值為結構記錄所屬數據結構的表號;fragment字段的值為結構記錄所屬表字段的表字段號;tablerec字段的值為結構記錄的記錄號;varvalue字段的值為結構記錄所屬表字段的值。
【技術特征摘要】
1.一種可變數據結構的位移存儲方法,其特征在于,具體步驟如下 1)建立一個數據庫表TabVar,并在數據庫表TabVar中建立6個字段分別為ID,index, table,fragment,tablerec,varvalue ; 2)為具體應用建立n個數據結構,每個數據結構均包含有至少一個表字段,這里η>0; 為每個數據結構分配一個唯一的表號,為每個表字段分配一個在該表字段所屬數據結構中唯一的表字段號; 3)設數據庫表TabVar的記錄為庫表記錄,數據結構的記錄為結構記錄,則 所有結構記錄均存儲在數據庫表TabVar中,每條結構記錄均分配有一個在該記錄所屬數據結構中唯一的記錄號; 數據庫表TabVar中,為每條結構記錄的每個表字段建立一條庫表記錄,每條庫表記錄中 為ID字段分配一個在數據庫表TabVar中唯一的ID編號; 為index字段生成一個在數據庫表TabVar中唯一的索引值; table字段的值為結構記錄所屬數據結構的表號; fragment字段的值為結構記錄所屬表字段的表字段號; tablerec字段的值為結構記錄的記錄號; varvalue字段的值為結構記錄所屬表字段的值。2....
【專利技術屬性】
技術研發人員:王曼,羅昌智,李昌,張如明,高飛,
申請(專利權)人:上海申瑞繼保電氣有限公司,四川省納溪供電有限責任公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。