发明名称 一种可扩展标记语言路径查询翻译为结构查询的方法
摘要 本发明公开了一种可扩展标记语言路径查询XPath翻译为高效结构查询SQL的方法,包括:首先,在pre/post/parent_pre编码之上,定义了针对XPath中不同操作符号的SQL翻译模板,将XPaht翻译成为等价的SQL语句;其次,如果存在DTD,则可以利用DTD的结构信息,来进一步提高所翻译SQL的执行效率,本发明根据DTD构建了DTD树自动机,根据XPath构建了XPath树自动机,在DTD树自动机和XPath树自动机之上定义了乘积操作,根据乘积获取了另一个SQL表达式,估算该表达式和原有表达式的执行代价,选择执行代价低的SQL表达式,结束翻译过程。本发明的技术方案中,一方面利用了pre/post/parent_pre编码,以空间复杂性换取SQL执行的高效性;另一个方面,利用了DTD进行XPath查询进行进一步优化,由此,提高所翻译SQL的执行高效性。
申请公布号 CN1560763B 申请公布日期 2010.05.05
申请号 CN200410004412.9 申请日期 2004.02.19
申请人 北京大学 发明人 高军;王腾蛟;杨冬青;唐世渭
分类号 G06F17/28(2006.01)I;G06F17/30(2006.01)I 主分类号 G06F17/28(2006.01)I
代理机构 北京同立钧成知识产权代理有限公司 11205 代理人 刘芳;刘薇
主权项 一种可扩展标记语言路径查询翻译为结构查询的方法,其特征在于:在结构查询的关系数据库中,包括如下步骤:步骤一、顺次扫描XPath表达式,将XPath查询分解为不包含‘[’或‘]’的XPath分段查询;步骤二、将XPath分段查询按SQL翻译模板,翻译为第一SQL语句;步骤三、根据XPath表达式分别构造DTD树自动机和XPath树自动机,并将DTD树自动机和XPath树自动机相乘,获得等价的查询表达形式,根据新的查询表达形式得出其确定的第二SQL语句,并估算所述第一SQL语句和第二SQL语句的代价;将代价低的第一或第二SQL语句作为翻译后的SQL语句;步骤四、对于每一个XPath分段,将各个分段翻译的SQL语句结果组合,得出执行该XPath的全部SQL语句;所述的数据库中关系模式具有如下的特点:一是,对于DTD定义的每一个元素,关系数据库中都存在一个与该元素对应的表,用来存储DTD定义中该元素的相关数据和结构信息;二是,对于关系数据库中的每一个表,表的名称和元素名称相关,表中包含四个表项:pre,post,parent,parent_pre,记录所对应元素的结构编码。
地址 100871 北京市海淀区颐和园路5号