[发明专利]一种支持多属性复合条件查询的虚拟表索引机制及方法有效

专利信息
申请号: 201210553946.1 申请日: 2012-12-19
公开(公告)号: CN103049521A 公开(公告)日: 2013-04-17
发明(设计)人: 李晓林;谢毅;徐志伟 申请(专利权)人: 广东电子工业研究院有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京科亿知识产权代理事务所(普通合伙) 11350 代理人: 汤东凤
地址: 523808 广东省东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 支持 属性 复合 条件 查询 虚拟 索引 机制 方法
【权利要求书】:

1.一种支持多属性复合条件查询的虚拟表索引机制,其特征在于:所述的机制由三个关键部件索引管理器、条件分析器和预执行引擎构成;

所述的索引管理器,管理虚拟表属性的索引键值,支持虚拟表多个属性的单个键值、区间键值的管理;

所述的条件分析器,对施加在虚拟表上的查询条件分解并对谓词分析;依次对有索引的属性按照SQL语法分析整个查询条件,用真值true替换屏蔽掉含其他属性的谓词表达式后,只留下该属性的查询谓词条件,以便判断该属性索引是否满足此条件;此时,如果某属性的索引键值是区间,条件分析器进一步通过该区间值再计算被真值替换后的查询条件中关于该属性的谓词的真/假,并用布尔结果(true/false)替换该谓词;如果该步骤无法计算,则表示直接返回需要对该虚拟表执行查询的推断结果;

所述的预执行引擎,通过相应属性的索引键值判断部分被真值表达式(true)和布尔结果替换后的查询条件的真/假,确定相应属性的索引是否满足查询条件;如果不满足,则直接返回不对该虚拟表执行查询的推断结果;否则,继续判断其他属性索引;一些特殊情况,默认为满足执行条件;索引键值为区间值时只取开始和结束值。

2.一种支持多属性复合条件查询的虚拟表索引方法,其特征在于:在虚拟表上构建针对多个属性的索引键值;在执行查询时,计算施加到该虚拟表的查询条件;依据键值索引,预先针对各个属性独立判断是否需要执行该虚拟表映射的物理实体表,从而确保将查询只施加到满足相应键值条件的子虚拟表上执行。

3.根据权利要求2所述的虚拟表索引方法,其特征在于:所述的预先确定哪些子表含有满足该查询条件的数据记录是:在虚拟层,通过在各个子表上基于子表的索引,预先判断该子表的数据集合是否满足查询条件,只定位到满足条件的子表进行查询;而对于无查询过滤条件、未建立索引或者基于索引难于判断等特例,直接对子表施加查询。

4.根据权利要求2所述的虚拟表索引方法,其特征在于:按照某个属性键值建立类似B+树的子表索引结构,B+树的每个叶子节点代表一个子表;在叶子节点对子表建立1个或多个(其他)属性的索引,索引值可以是单值和区间值。

5.根据权利要求3所述的虚拟表索引方法;其特征在于:按照某个属性键值建立类似B+树的子表索引结构,B+树的每个叶子节点代表一个子表;在叶子节点对子表建立1个或多个(其他)属性的索引,索引值可以是单值和区间值。

6.根据权利要求2至5任一项所述的虚拟表索引方法,其特征在于:两次对查询条件的替换是通过对SQL查询条件分析形成的语法树,针对每个索引属性,进行单独分析判断。

7.根据权利要求2至5任一项所述的虚拟表索引方法,其特征在于:对区间内的值通过代入区间值将谓词表达式转化成比较逻辑计算布尔结果。

8.根据权利要求6所述的虚拟表索引方法,其特征在于:对区间内的值通过代入区间值将谓词表达式转化成比较逻辑计算布尔结果。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东电子工业研究院有限公司,未经广东电子工业研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210553946.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top