[發明專利]一種基于內存的快速關系檢索方法在審
| 申請號: | 202010050321.8 | 申請日: | 2020-01-17 |
| 公開(公告)號: | CN111291134A | 公開(公告)日: | 2020-06-16 |
| 發明(設計)人: | 李立亞;閭立新;吳麗 | 申請(專利權)人: | 無錫科技職業學院 |
| 主分類號: | G06F16/28 | 分類號: | G06F16/28;G06F16/2458 |
| 代理公司: | 無錫盛陽專利商標事務所(普通合伙) 32227 | 代理人: | 顧吉云;黃瑩 |
| 地址: | 214028 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 內存 快速 關系 檢索 方法 | ||
1.一種基于內存的快速關系檢索方法,其包括以下步驟:
S1:確定需要檢索信息的對象作為待檢索實體;
其特征在于,還包括以下步驟:
S2:找到所有的與所述待檢索實體有關系的抽象實體、實物實體,都將其歸類為關系實體;
S3:確認所有的所述關系實體之間、所述關系實體與所述待檢索實體之間的關系,作為待溯源關系;
S4:構建一維關系表,所述關系表的尺寸為TAB_SIZE:
TAB_SIZE=M*(1+N%);
式中:M為所述待溯源關系的數量,N%為預留量;
S5:基于TAB_SIZE,在內存中為所述一維關系表分配內存,以數組方式組織內存空間;
所述一維關系表中的每一項為一個二元關系項,用來存儲兩個實體之間的關系;
S6:初始化所述二元關系項的各個字段的值,使其表示未使用:
所述二元關系項包括字段:
KEY_A、KEY_B、NEXT_A、NEXT_B、P_COM、P_ORD、P_REV的值;
其中:
KEY_A、KEY_B分別是兩個有關系實體的唯一身份標識;
NEXT_A、NEXT_B是兩個指針,分別指向各自實體的下一個二元關系項,下一個二元關系項記錄了各自實體與其它實體間的二元關系,這兩個指針用來構造各自實體的二元關系鏈;
P_COM、P_ORD、P_REV是三個指針,分別指向通用關系信息塊、從實體A到實體B方向的關系信息塊、從實體B到實體A方向的關系信息塊;
S7:取出所述關系實體中的一個,設為待追加關系實體;
S8:取出所述待追加關系實體與所述待檢索實體之間的所有關系中的一個,設為待追加關系;
S9:獲取所述待追加關系實體、所述待檢索實體對應的唯一身份標識;
S10:基于兩個關系實體的所述唯一身份標識,通過哈希算法計算得到位置索引INDEX;
S11:基于所述位置索引INDEX,在所述一維關系表中存儲所述待追加關系;
S12:分別構建所述待追加關系實體、所述待檢索實體的二元關系鏈,將存儲在所述一維關系表中的所述待追加關系分別加入到所述待追加關系實體、所述待檢索實體的二元關系鏈;
S13:循環執行S8~S12,直至所述待追加關系實體、所述待檢索實體之間的所有關系都被追加到所述一維關系表中;
S14:循環執行S7~S13,直至所有的所述關系實體與所述待檢索實體之間的所有關系都被追加到所述一維關系表中;所述待檢索實體對應的所述一維關系表構建完畢;
S15:基于所述一維關系表進行后續的所述待檢索實體的所有關系的追溯。
2.根據權利要求1所述一種基于內存的快速關系檢索方法,其特征在于:步驟S10中,通過哈希算法計算得到所述位置索引INDEX的方法,包括以下步驟:
a1:比較所述待追加關系實體、所述待檢索實體對應的唯一身份標識的大小;
根據比較結果,較小的唯一身份標識設置為KEY_A、較大的唯一身份標識設置為KEY_B;
a2:KEY_A在前KEY_B在后,以字符串形式拼接,并去除其中的空格;
a3:使用哈希算法計算KEY_A和KEY_B拼接后的哈希碼;
a4:以該哈希碼模上一維關系表尺寸TAB_SIZE,得到待確認位置索引;
a5:在所述一維關系表上查看所述待確認位置索引對應的表項是否已經使用:
如果未用,則所述待確認位置索引即為所述位置索引INDEX;
否則,如果所述待確認位置索引對應的表項已經被使用,則使用沖突解決算法獲取可用的位置索引,設置為所述位置索引INDEX。
3.根據權利要求2所述一種基于內存的快速關系檢索方法,其特征在于:步驟a5中的所述沖突解決算法使用拉鏈法處理沖突。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫科技職業學院,未經無錫科技職業學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/202010050321.8/1.html,轉載請聲明來源鉆瓜專利網。





