[发明专利]一种面向对象代理数据库的虚属性查询优化方法有效
申请号: | 201310139781.8 | 申请日: | 2013-04-22 |
公开(公告)号: | CN103218439A | 公开(公告)日: | 2013-07-24 |
发明(设计)人: | 彭智勇;王梁;付祖发;彭煜玮 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向对象代理数据库的虚属性查询优化方法,在方法中提出了基于表达式提升的优化方案。在基于表达式提升的优化方案中,根据代理类独特的特性,对不同代理类对应的源类上查询进行了代价估计,提出了代价估计函数。通过代价估计函数可以很好地对源类和代理类扫描的代价进行衡量,从而判断是否能够进行表达式提升。当满足条件后,采用类似于视图的处理方式,将对代理类的查询提升为对源类的查询,从而减少切换表达式的计算次数,达到优化的目的。通过对虚属性的查询进行优化,可以极大地提高对象代理数据库的实用性。 | ||
搜索关键词: | 一种 面向 对象 代理 数据库 属性 查询 优化 方法 | ||
【主权项】:
一种面向对象代理数据库的虚属性查询优化方法,其特征在于,基于以下定义:在对象代理数据库中,代理类类似于特殊的视图,但又不等同关系型数据库的视图;代理类能够继承源类的属性和方法,同时又可扩展相应的属性;在处理代理类上的查询时,能够借鉴关系型数据库处理视图的方法,即将代理类上的查询表达式提升到源类上,这个过程称之为表达式提升;在创建代理类时,需要将代理规则部分抽取出来,代理规则与创建视图的形式相同,采用系统创建视图的方式,将代理类以视图的形式注册到系统中;所述表达式提升包括以下步骤:步骤1,建立代理类列表DeputyList,扫描查询涉及到的范围表列表,判断当前类是否是代理类,如果当前类是代理类,而且在查询中不涉及到该类的实属性,则加入到DeputyList中; 若当前类不是代理类,则无需进行表达式提升,结束整个步骤;步骤2,对于步骤1中生成的DeputyList中的每个代理类,设其查询需要的代价为cost1,同时设代理类提升后对应的源类上的查询代价为cost2,若cost1 > cost2,则标记该代理类为能够提升;若cost1 <= cost2,则提升表达式后的代价不小于未提升的代价,标记该代理类为不能提升;步骤3,对于DeputyList中标记为能够提升的代理类,采用查询重写的方式,对该代理类出现的地方进行重写,用源类和代理规则来重写查询,从而实现表达式提升;步骤4,将查询表达式提升至源类后,若该源类是代理类,转至步骤2,若该源类不是代理类,则结束整个过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310139781.8/,转载请声明来源钻瓜专利网。