发明名称 |
一种可扩展标记语言路径查询翻译为结构查询的方法 |
摘要 |
本发明公开了一种可扩展标记语言路径查询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号 |