[发明专利]一种基于键值数据库的层次化存储与查询方法有效
申请号: | 201410552673.8 | 申请日: | 2014-10-17 |
公开(公告)号: | CN104268280B | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 李根;卢凯;王双喜;迟万庆;周旭;唐宏伟;刘勇鹏;冯华;王小平;蒋杰;高颖慧;王睿伯;张英;樊葆华 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 赵洪,谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 键值 数据库 层次 存储 查询 方法 | ||
1.一种基于键值数据库的层次化存储与查询方法,其特征在于实施步骤如下:
1)预先在有序存储的键值数据库中构建层次化键码命名规则,所述层次化键码命名规则将键码定义为以分隔符开头、且由分隔符和子串交替组合组成,分隔符的数量表示键码的级数;确定两个合法的键码之间的大小比较方法,级数越大则键码越大,级数相同的键码则根据字符串比较确定大小;
2)接收键值数据库的访问请求,如果访问请求为数据存储请求,则跳转执行步骤3),如果访问请求为数据查询请求,则跳转执行步骤4);
3)根据所述两个合法的键码之间的大小比较方法来确定数据存储请求的键码排序位置,然后按照排序位置将数据存储请求的数据插入键值数据库,返回执行步骤2);
4)在键值数据库中按照从小到大的顺序查找第一个大于或等于数据查询请求的目标键码keydir目录下所有可能键码的下确界作为起始键码keystart,从起始键码keystart开始,按照从小到大的顺序将所有以目标键码keydir开头的键值对以及子目录作为数据查询请求的结果返回。
2.根据权利要求1所述的基于键值数据库的层次化存储与查询方法,其特征在于,所述步骤1)中确定的两个合法的键码之间的大小比较方法如下:
1.1)接收由key1和key2组成的两个合法的键码;
1.2)比较key1和key2之间的级数大小,如果key1和key2的级数不同,则跳转执行步骤1.3),否则跳转执行步骤1.4);
1.3)判断key1的级数大于key2的级数是否成立,如果成立则判定key1比key2大,否则判定key2比key1大,返回比较结果并退出;
1.4)初始化i为1;
1.5)判断key1的级数大于或等于i是否成立,如果成立则跳转执行步骤1.6);否则判定key1等于key2,返回比较结果并退出;
1.6)判断key1和key2的前i级子串是否相等,如果相等则将i增加1,跳转执行步骤1.5);否则,判断key1的第i级子串大于key2的第i级子串是否成立,如果成立则判定key1比key2大,否则判定key2比key1大,返回比较结果并退出。
3.根据权利要求2所述的基于键值数据库的层次化存储与查询方法,其特征在于,所述步骤3)的详细步骤如下:
3.1)接收用户的数据存储请求<newKey,newValue>,其中newKey表示数据存储请求的键码,newValue表示数据存储请求的键值;
3.2)判定所述键值数据库是否为空,如果键值数据库为空,则直接将所述数据存储请求的键值对<newKey,newValue>存入键值数据库并退出;如果键值数据库非空,则跳转执行下一步;
3.3)顺序查找第一个大于或等于所述数据存储请求的键码newKey的目标键码existed_key;
3.4)判断所述数据存储请求的键码newKey是否等于目标键码existed_key,如果所述数据存储请求的键码newKey等于目标键码existed_key,则判定所述数据存储请求的键码newKey在键值数据库中已经存在,将目标键码existed_key对应的键值替换为数据存储请求的键值对<newKey,newValue>中的新键值newValue并退出;否则,将所述数据存储请求的键值对<newKey,newValue>插入保存在目标键码existed_key对应的键值对前。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410552673.8/1.html,转载请声明来源钻瓜专利网。