CN101667190A - 基于XQuery的查询引擎系统 - Google Patents
基于XQuery的查询引擎系统 Download PDFInfo
- Publication number
- CN101667190A CN101667190A CN200910070718A CN200910070718A CN101667190A CN 101667190 A CN101667190 A CN 101667190A CN 200910070718 A CN200910070718 A CN 200910070718A CN 200910070718 A CN200910070718 A CN 200910070718A CN 101667190 A CN101667190 A CN 101667190A
- Authority
- CN
- China
- Prior art keywords
- xquery
- query
- data source
- node
- wrapper
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于XQuery的查询引擎系统,包括中介器和包装器,中介器包括:词法分析模块,将XQuery语句分割为携带属性的令牌;语法分析模块,依据XQuery语法规范将令牌组织为抽象语法树;正规化模块,对语法树进行整理,产生形式良好的语法树;查询分解模块,遍历语法树,产生针对底层数据源的子查询,调用相应包装器;结果处理模块接收包装器传来的查询结果,并以XML形式将查询结果返回用户。包装器包括关系型数据源包装器和XML数据源包装器,接收中介器传来的XQuery子查询,转换为数据源支持的查询语言进行底层数据源查询,最终结果重构为XML格式传给结果处理模块。本发明提高了查询效率,对抽象语法树的正规化使得构造出的查询子句结构良好,可读性增强。
Description
技术领域
本发明涉及数据集成技术领域,特别涉及一种以XML作为数据模型,XQuery作为查询语言的数据集成平台实现。
背景技术
信息社会的发展,导致海量异构数据的出现,使得数据共享成为瓶颈。随着XML技术成为数据交换的标准,以XML作为数据摸型的数据集成平台引起人们的关注。
比较有代表性的针对XML的查询语言包括:
1)W3C提出的XSL可扩展样式表语言,专用于处理XML文档,但只能读取文档内容,不能更改或编辑文档;
2)XQL语言,用于定位和过滤XML文档中元素和文本的符号,但适用范围仅限于XML文档,因而可扩展性差;
3)Alin Denutsh等人在《A Query Language for XML》中提到的XML-QL,能对XML文档进程查询、构造、转换和集成,在查询条件中加入模式匹配时它与其他半结构化查询语言最大的不同,但是不执行全称量词,且通用性较差;
4)Serge Abiteboul等人在The Lorel Query Language for Semistructured Data中提到Lorel将XML文档映射成图,将XML元素映射为图中的节点,将元素间关系映射为图中的边,这种查询语言结构复杂,表达式冗长。
面对现有XML查询语言通用性的不足,万维网协会在2001年2月提出XQuery第一个草案。XQuery语言操作的是针对XML文档的抽象、逻辑结构的,从XML-QL中吸取了变量绑定和用被绑定变量构造新的文档结构的方法;从SQL中获得了用一组关键字(select-from-where)构成查询语句的思想,扩展了XPath2.0规范,能在XML文档中定位节点,并使用扩展了的XML Schema规范中的类型系统。
针对XQuery规范的查询引擎有XQEngine、Saxon、Galax及Aqualogic。XQEngine是对XQuery规范的最基本实现,对查询的处理流程做了很好的实现,但却仅能实现规范定义的几个核心函数。Saxon能同时作为XSLT与XQuery的查询引擎,实现了XQuery的标准并做出了扩展,并对关系数据数据的集成实现了自己的扩展,但是这也使得它的结构异常复杂。Galax是对XQuery规范的忠实实现,它使用O’Caml语言实现,对XQuery语法树的处理严格按照XQuery规范的定义实现,对外提供C、Java、O’Caml调用接口,但该语言的特点限制了该引擎的扩展性,不利于对异构数据实现适配器模块。Aqualogic是BEA公司推出的,对XQuery规范做出了扩展,在XQuery查询语句中加入大量描述数据源的元数据信息,基于Weblogic Platform实现了GUI界面,图形化的操作界面屏蔽了底层数据的具体信息,便利了数据集成的操作,由于其强大的功能使得查询语句的书写存在困难。
因此,现有技术中的基于XQuery的查询引擎各有不足,如何更好地解决数据集成中异构数据源查询问题,正是本发明所要解决的问题
发明内容
本发明旨在为克服上述现有技术存在的问题,而提出一种基于XQuery的查询引擎系统。在以XML为数据模型,XQuery作为查询语句的基于中介模式的数据集成平台上,借由中介器将XQuery全局查询分解为针对每个数据源的子查询,调用相应的包装器进行底层数据源的查询,接收查询结果,将查询结果重组为XML数据形式传递给用户,能够解决数据集成中异构数据源查询问题。
本发明还提供了一种基于XQuery的查询引擎系统,该系统包括中介器和包装器,其中,中介器包括五个模块,即词法分析模块,用于将XQuery语句分割为携带属性的令牌(tokens);语法分析模块,用于将令牌(tokens)组织为抽象语法树;正规化模块,用于对语法树进行整理,以产生形式良好的语法树;查询分解模块,用于遍历该语法树,产生针对底层数据源的子查询,调用相应的包装器;结果处理模块接收包装器返回的查询结果,将中间结果以resultsequence类型的格式缓存在MAP中,以XML形式构建最终的查询结果返回给用户;包装器包括XML数据源包装器、关系型数据源包装器;包装器接收中介器传来的针对每个数据源的XQuery子查询,将其转变为数据源能够支持的查询语句进行底层数据源查询,将查询结果构造成XML形式返还给结果处理模块。
所述词法分析模块,包括以下操作:
在XQStaticContext中加入记录变量信息的MAP,每出现一个变量,通过XQStaticContext中的MAP查找该变量类型是否出现过,若出现过,用已存在的变量名替代新出现的变量名,若该变量名未出现过,则将该变量名及变量类型信息存入变量MAP。
所述语法分析模块,包括以下操作:
借助语法树构造工具JJTree,完成将词法分析后的令牌tokens依照规定的XQuery语法规范组织成一棵语法树。
所述正规化模块,包括以下操作:
在XQuery语句中每遇到For或Let子句,就重新构造一个FLWOR语句嵌套在当前FLWOR语句的return子句内,将遇到的For或Let子句提取出来作为新构造的FLWOR语句的For或Let子句。
所述查询分解模块,包括以下操作:
将当前节点指针指向根节点,由根向下深度优先遍历语法树,判断当前节点是否为叶子节点,若为叶子节点,直接取出属性值,返回父节点即可,否则,判断当前节点是否有未遍历的子节点,若有,则遍历以该子节点为根的子树,否则,根据对当前节点执行dump算法,获得FLWOR语句片段,返回父节点,若父节点为空,表明整棵语法树处理完成,操作结束。
所述XML数据源包装器,包括以下操作:
接收中介器传递过来的针对XML数据源的XQuery子查询,对XML数据源进行查询,将查询结果直接传递给结果处理模块。
所述关系型数据源包装器,包括以下操作:
接收包装器传递过来的针对关系型数据源的XQuery子查询,将其转换为等价的SQL语句查询关系型数据源,将查询结果构建成XML格式传给结果处理模块。
与现有技术相比,本发明能将平台内全局XQuery查询语句查询等价的分解为针对每一数据源的子查询语句,在词法分析模块已将要查询的数据源相关信息以变量形式记录在MAP中,有效的防止将针对相同变量类型、不同变量名的变量的子查询多次提取后传给包装器,提高了效率,XQuery抽象语法树又经过正规化模块处理,结构良好,使得构造的子查询格式良好,统一;将查询中间结果存储在MAP中,防止多次连接底层数据源,将针对关系型数据源的子查询采用“SQL”下推交给DBMS进行查询,都使得查询效率有所提高。
附图说明
图1为本发明的查询引擎系统结构示意图;
图2为本发明的查询分解模块的流程示意图。
具体实施方式
以中介方式实现的查询引擎系统设计如图1所示。该系统包括中介器和包装器,其中中介器包括五个模块,词法分析模块,用于将XQuery语句分割为携带属性的令牌(tokens);语法分析模块,用于将令牌(tokens)组织为抽象语法树;正规化模块,用于对语法树进行整理,以产生形式良好的语法树;查询分解模块,用于遍历该语法树,产生针对底层数据源的子查询,调用相应的包装器;结果处理模块接收包装器传来的查询结果,并以XML形式将最终查询结果返回给用户;
词法分析模块的操作为,词法分析借助XQJ提供的编程接口XQStaticContext,即XQJ提供的用于记录变量或函数定义等信息的静态环境。通过在XQStaticContext中加入记录变量信息的MAP,每出现一个变量,通过XQStaticContext中的MAP查找该变量类型是否出现过,若出现过,用已存在的变量名替代新出现的变量名,表示这是同一个变量的两个不同变量名。若该变量名未出现过,则将该变量信息存入变量MAP。
正规化模块的操作为:在XQuery语句中每遇到For或Let子句,就重新构造一个FLWOR语句嵌套在当前FLWOR语句的return子句内,将遇到的For或Let子句提取出来作为新构造的FLWOR语句的For或Let子句。如此操作将符合XQuery语法规范的XQuery语句正规化为XQuery1.1 and Xpath2.0 Formal Semantics中定义的格式。
包装器包括XML数据源包装器、关系型数据源包装器。根据数据源类型的不同将子查询传递给不同的包装器,包装器接收子查询,将其转换数据源支持的查询语言进行底层数据源查询,将查询结果以XML格式传递给包装器的结果处理模块。各组成模块介绍如下:
首先,需要给出本发明依赖的XQuery规范,它是w3c提供的XQuery语言规范的一个子集,用于完成本发明的基本功能。
Expr::=ExprSingle(″,″ExprSingle)*
EnclosedExpr::=″{″Expr″}″
ExprSingle::=FLWORExpr|OrExpr
FLWORExpr::=(ForClause|LetClause)+WhereClause?″return″ExprSingle
ForClause::=″for″″$″VarName″in″ExprSingle
LetClause::=″let″″$″VarName″:=″ExprSingle
WhereClause::=“where”ExprSingle
OrExpr::=AndExpr(″or″AndExpr)*
AndExpr::=ComparisonExpr(″and″ComparisonExpr)*
ComparisonExpr::=AdditiveExpr(GeneralComp AdditiveExpr)?
AdditiveExpr::=MultiplicativeExpr((″+″|″-″)MultiplicativeExpr)*
MultiplicativeExpr::=UnaryExpr((″*″|″div″|″idiv″|″mod″)UnaryExpr)*
UnaryExpr::=(″-″|″+″)*ValueExpr
ValueExpr::=ValidateExpr|PathExpr|ExtensionExpr
GeneralComp::=″=″|″!=″|″<″|″<=″|″>″|″>=″
PathExpr::=(″/″RelativePathExpr?)|(″//″RelativePathExpr)|RelativePathExpr
RelativePathExpr::=StepExpr((″/″|″//″)StepExpr)*
AxisStep::=(AbbrevReverseStep)PredicateList
AbbrevReverseStep::=″..″
FilterExpr::=PrimaryExpr PredicateList
PredicateList::=Predicate*
Predicate::=″[″Expr″]″
PrimaryExpr::=Literal|VarRef|ParenthesizedExpr|FunctionCall|Constructor
Literal::=NumericLiteral|StringLiteral
NumericLiteral::=IntegerLiteral|DecimalLiteral|DoubleLiteral
VarRef::=″$″Qname
ParenthesizedExpr::=″(″Expr?″)″
FunctionCall::=QName″(″(ExprSingle(″,″ExprSingle)*)?″)″
Constructor::=″<″QName DirAttributeList(″/>″|(″>″DirElemContent*″</″QNameS?″>″))
DirAttributeList::=(S(QName S?″=″S?DirAttributeValue)?)*
DirAttributeValue::=(″″(EscapeQuot|QuotAttrValueContent)*″″)|(″″′(EscapeApos|AposAttrValueContent)*′″″)
QuotAttrValueContent::=QuotAttrContentChar|CommonContent
AposAttrValueContent::=AposAttrContentChar|CommonContent
DirElemContent::=Constructor|CommonContent
SingleType::=QName″?″?
AttributeName::=QName
ElementName::=QName
TypeName::=QName
模块一:词法分析模块
借助JavaCC(java Compiler Compiler)将接收到的符合上述语法规范的全局XQuery语句作为词法分析模块的输入,将该语句分解为带有特定语义的令牌(tokens)。在词法分析的过程中,借助XQJ提供的编程接口,在XQStaticContext中加入MAP(变量名,变量类型),每出现一个变量,就要通过StaticContext中的MAP查找该变量类型是否出现过,若出现过,用已存在的变量替代新出现的变量,若该变量类型信息未出现过,则将该变量连同类型信息存入MAP中。
模块二:语法分析模块
借助JavaCC自带的语法树构造工具JJTree,完成将词法分析后的带特定属性的tokens依照规定的XQuery语法规范组织成一棵语法树。
模块三:正规化模块
将符合XQuery语法规范的XQuery语句正规化为XQuery1.1 and Xpath2.0 FormalSemantics中定义的格式,方法是在XQuery语句中每遇到For和Let子句,构建新的FLWOR语句嵌套在当前层的内部,例如:
for $i in doc(‘student.xml’)/user,for $y in col(‘b’)where(($i/age>18)and($y/id=$i/id)return<student>{$i/namr}{$y/grade}</student>
上述的语句中有两个for子句,正规化时,首先,创建一条FLWOR语句,将第一个for子句作为他的for节点,然后构造return节点,在return节点内嵌套新的FLWOR语句,将第二个for子句作为他的子节点,以此方法,将例子中的where与return子句作为最内层FLWOR语句的子节点。上述语句可以正规化为for $i indoc(‘student.xml’)/user return{for $y in col(‘b’)where(($i/age>18)and($y/id=$i/id)return<student>{$i/namr}{$y/grade}</student>}。
模块四:查询分解模块
该模块接收到正规化后的语法树,运行XQuery查询分解算法,算法流程如图2所示,采用深度优先遍历语法树,在遍历过程中,结合tokens节点的属性值,重构出FLWOR语句片段,最终将重构子句传递给包装器进行数据源查询。该流程包括以下步骤:
步骤1,将当前节点指针指向根节点;
步骤2,获得当前节点;
步骤3,判断步骤2所获得的当前节点是否为语法树的叶子节点?
步骤4,如果是叶子节点,则获取叶子节点的属性值;执行步骤8;
步骤5,如果不是叶子节点,再判断该当前节点是否存在未遍历的子节点?
步骤6,如果非叶节点的当前节点存在未遍历的子节点,将当前节点指针指向第一个未遍历的节点,跳转到步骤2;
步骤7,如果非叶节点的当前节点不存在未遍历的子节点,则根据节点类型对该节点进行处理,获得FLWOR片段,并将该节点标记为已遍历,将当前节点指针指向父节点,返回步骤9;
步骤8,记录节点信息的值,将当前节点指针指向它的父节点,执行步骤2;
步骤9,判断该父节点是否为空,如是,则表明语法树中的节点处理完毕,流程结束;如否,转至步骤2,继续执行流程,直到语法树中的节点都处理完。
如图2所示,将当前节点指针指向根节点,由根向下深度优先遍历语法树,判断当前节点是否为叶子节点,若为叶子节点,直接取出属性值,返回父节点即可,否则,判断当前节点是否有未遍历的子节点,若有,将第一个未遍历子节点设置为当前节点,根据当前节点类型执行dump算法,遍历以该子节点为根的子树。否则,根据当前节点类型提取出FLWOR语句片段,返回父节点,若父节点为空,说明整棵树处理完成,结束即可。
其中,dump算法的描述如下:
【算法1】dump算法
输入:当前节点 输出:FLWOR语句片段
If类型为或JJTSTRINGLITERAL或JJTFUNCTIONQNAME或JJTINTEGERITERAL或JJTDECIMALLITERAL或JJTDOUBLELITERAL,跳转到算法2;
If类型为JJTFORCLAUSE或JJTLETEXPR,跳转到算法3;
If类型为JJTFUCTIONCALL,跳转到算法4;
If类型为JJTANDEXPR或JJTOREXPR,跳转到算法5;
If类型为JJTWHEREEXPR或JJTPARENTNESIZEEDEXPR,跳转到算法6;
If类型为JJTCONSTRUCTOR,跳转到算法7;
If类型为JJTFLWOREXPR,跳转到算法8;
Else执行算法9.
【算法2】LITERAL算法
输入:当前节点 输出:FLWOR语句片段
用s1记录当前节点的属性值;
If是JJTQNAME返回“$”+s1;
If是JJTFUNCTIONQNAME设置数据源类型为s1返回s1;
Else返回s1;
【算法3】FORLET算法
输入:for|let节点 输出:for|let子句
对第一个节点执行dump算法,用s1记录返回值;
对第二个节点执行dump算法,用s2记录返回值;
记录节点处数据源类型;
If当前节点类型是JJTFORCLAUSE,返回语句”for”+s1+”in”+s2否则,返回语句”let”+s1+”:=”+s2
【算法4】FUNCTIONCALL算法
输入:当前节点 输出:FLWOR语句片段
对第一个子节点执行dump算法,用s1存储;
对第二个子节点执行dump算法,用s2存储;
获取第一个节点的数据源类型;
设置属性值为s1+“(”+s2+“)”,返回该属性值;
【算法5】LOGICEXPR算法
输入:当前节点 输出:FLWOR语句片段
对第一个子节点执行dump算法,用s1存储;
对第二个子节点执行dump算法,用s2存储;
If当前节点类型为JJTANDEXPR,设置属性值为S1and S2,输出该属性值;
Else设置属性值为S1or S2,输出该属性值;
【算法6】FORLET算法
输入:当前节点 输出:FLWOR语句片段
对第一个子节点执行dump算法,用s1存储;
If当前节点类型为JJTWHEREEXPR,设置属性值为where+S1,输出该属性值;
Else设置属性值为“(”+S1+“)”,输出该属性值;
【算法7】CONSTRUCTOR算法
输入:当前节点 输出:FLWOR语句片段
For当前节点的每个子节点
用s1记录对第i个节点执行dump算法的返回值;
If是第一个节点且类型为JJTDIRELELCONTENT
取下一个节点,对它执行dump算法;设置该节点属性值为”</”+s1+”>”,返回该值;
Else当前节点属性值为s1,返回该属性值;
【算法8】FLWOR算法
输入:当前节点 输出:FLWOR查询语句
For FLWOR的每个子节点
对每个子节点执行dump算法;
If子节点类型为JJTFORCLAUSE,设置FLWOR节点数据源类型为该节点数据源类型
If达到FLWOR的最后一个子节点,将return片段加入,使FLWOR子查询完整,根据数据源类型传递给相应的包装器;
【算法9】OTHER算法
输入:当前节点 输出:FLOWR语句片段
For当前节点的每个子节点
对第i个节点执行dump算法,用s1记录返回值;
用s2记录第i个节点的n_value;
If(第i个节点的类型为JJTFUNCTIONCALL)
将当前节点的n_value设置为s2;,将当前节点的e_value设置为s1;
Else将当前节点的e_value设置为s1;
Return s1;
模块五:结果处理模块
设计为两部分:中间子查询结果的缓存和最终查询结果的传递。设计中间结果存储在MAP(变量名,resultsequence)中,若底层数据源是XML文件,其查询结果是resultsequence类的实例,则可以直接存在MAP中。若子查询查是是关系型数据源,经过SQL查询后,结果是resultset类的实例,应该将resultset设置为resultsequence的一个私有属性,仍以(变量名,resultsequence)形式存储在MAP中。若为嵌套查询,则内层查询中会用的外层查询中出现的变量,可以通过模块一和模块五中的MAP获得外层查询结果。
最终查询结果要构造成如下XML形式返还用户:
<resultsequence>
<usernamrtoken>
<username>
<password>
</usernametoken>
<result>
</result>
</resultsequence>
将最终查询结果存放在<result>中,其中<usernamrtoken>用于验证用户信息,是通过用户提交的HttpServletRequest中的用户信息中提取出来的。
本发明的查询引擎系统的上述四个模块组成中介器,是本发明的重点,在该中介器中,词法分析模块接收全局XQuery语句作为输入,输出带有属性的令牌(tokens)到语法分析模块,语法分析模块输出抽象语法树到正规化模块,该模块输出的是形式良好的语法树,经过查询分解模块分解为针对每类数据源的子查询,传给相应的包装器进行底层数据源查询,查询结果经由由包装器处理为XML格式后传递给结果处理模块,经该模块将最终查询结果返回给用户。
本专利实现了以XML作为公共数据模型,XQuery作为全局查询语言的数据集成平台中多数据源查询引擎,能将符合上述XQuery语法标准的,非嵌套的XQuery语句分解为针对每个数据源的子查询,调用包装器,接收包装器返回结果并缓存,重构最终结果传递给用户。
Claims (7)
1.一种基于XQuery的查询引擎系统,该系统包括中介器和包装器,其中,中介器包括五个模块,即词法分析模块,用于将XQuery语句分割为携带属性的令牌(tokens);语法分析模块,用于将令牌(tokens)组织为抽象语法树;正规化模块,用于对语法树进行整理,以产生形式良好的语法树;查询分解模块,用于遍历该语法树,产生针对底层数据源的子查询,调用相应的包装器;结果处理模块接收包装器返回的查询结果,将中间结果以resultsequence类型的格式缓存在MAP中,以XML形式构建最终的查询结果返回给用户;包装器包括XML数据源包装器、关系型数据源包装器;包装器接收中介器传来的针对每个数据源的XQuery子查询,将其转变为数据源能够支持的查询语句进行底层数据源查询,将查询结果构造成XML形式返还给结果处理模块。
2.如权利要求1所述的基于XQuery的查询引擎系统,其特征在于,所述词法分析模块,包括以下操作:
在XQStaticContext中加入记录变量信息的MAP,每出现一个变量,通过XQStaticContext中的MAP查找该变量类型是否出现过,若出现过,用已存在的变量名替代新出现的变量名,若该变量名未出现过,则将该变量名及变量类型信息存入变量MAP。
3.如权利要求1所述的基于XQuery的查询引擎系统,其特征在于,所述语法分析模块,包括以下操作:
借助语法树构造工具JJTree,完成将词法分析后的令牌tokens依照规定的XQuery语法规范组织成一棵抽象语法树。
4.如权利要求1所述的基于XQuery的查询引擎系统,其特征在于,所述正规化模块,包括以下操作:
在XQuery语句中每遇到For或Let子句,就重新构造一个FLWOR语句嵌套在当前FLWOR语句的return子句内,将遇到的For或Let子句提取出来作为新构造的FLWOR语句的For或Let子句。
5.如权利要求1所述的基于XQuery的查询引擎系统,其特征在于,所述查询分解模块,包括以下操作:
将当前节点指针指向根节点,由根向下深度优先遍历语法树,判断当前节点是否为叶子节点,若为叶子节点,直接取出属性值,返回父节点即可,否则,判断当前节点是否有未遍历的子节点,若有,当前节点指针指向第一个未遍历的子节点,根据当前节点类型执行dump算法,遍历以该子节点为根的子树,否则根据当前节点类型构造FLWOR语句片段,返回父节点,若父节点为空,表明整棵语法树处理完成,操作结束。
6.如权利要求1所述的基于XQuery的查询引擎系统,其特征在于,所述XML数据源包装器,包括以下操作:
接收中介器传递过来的针对XML数据源的XQuery子查询,对XML数据源进行查询,将查询结果直接传递给结果处理模块。
7.如权利要求1所述的基于XQuery的查询引擎系统,其特征在于,所述关系型数据源包装器,包括以下操作:
接收包装器传递过来的针对关系型数据源的XQuery子查询,将其转换为等价的SQL语句查询关系型数据源,将查询结果构建成XML格式传给结果处理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100707187A CN101667190B (zh) | 2009-09-29 | 2009-09-29 | 基于XQuery的查询引擎系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100707187A CN101667190B (zh) | 2009-09-29 | 2009-09-29 | 基于XQuery的查询引擎系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101667190A true CN101667190A (zh) | 2010-03-10 |
CN101667190B CN101667190B (zh) | 2011-07-27 |
Family
ID=41803806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100707187A Expired - Fee Related CN101667190B (zh) | 2009-09-29 | 2009-09-29 | 基于XQuery的查询引擎系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101667190B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986311A (zh) * | 2010-11-17 | 2011-03-16 | 浙江省电力试验研究院 | 一种快速处理大型xml文件时节点元素的缓存方法 |
CN103279509A (zh) * | 2013-05-17 | 2013-09-04 | 北京首钢自动化信息技术有限公司 | 一种采用动态查询语言的快速查询方法 |
CN105335366A (zh) * | 2014-05-30 | 2016-02-17 | 北大方正信息产业集团有限公司 | 一种sql语句处理方法、装置和服务器 |
CN105868249A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据查询控制方法及装置 |
CN106610999A (zh) * | 2015-10-26 | 2017-05-03 | 北大方正集团有限公司 | 查询处理方法和装置 |
CN107403104A (zh) * | 2017-06-22 | 2017-11-28 | 努比亚技术有限公司 | 一种实现数据表查询限制的装置和方法 |
CN107615277A (zh) * | 2015-03-26 | 2018-01-19 | 卡斯维尔公司 | 用于查询数据源的系统和方法 |
CN108806797A (zh) * | 2018-06-27 | 2018-11-13 | 思派(北京)网络科技有限公司 | 一种医疗数据的处理方法及系统 |
CN109992989A (zh) * | 2017-12-29 | 2019-07-09 | 西普霍特公司 | 使用抽象语法树的用于查询注入检测的系统 |
CN110008237A (zh) * | 2019-01-14 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种相似查询识别方法及装置 |
CN111666321A (zh) * | 2019-03-05 | 2020-09-15 | 百度在线网络技术(北京)有限公司 | 多数据源的操作方法及其装置 |
CN112988782A (zh) * | 2021-02-18 | 2021-06-18 | 新华三大数据技术有限公司 | Hive支持交互式查询的方法、装置及存储介质 |
WO2021144689A1 (en) * | 2020-01-17 | 2021-07-22 | International Business Machines Corporation | Hierarchical data |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100534084C (zh) * | 2006-07-10 | 2009-08-26 | 北京工业大学 | 远程xml数据更新方法以及系统 |
-
2009
- 2009-09-29 CN CN2009100707187A patent/CN101667190B/zh not_active Expired - Fee Related
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986311A (zh) * | 2010-11-17 | 2011-03-16 | 浙江省电力试验研究院 | 一种快速处理大型xml文件时节点元素的缓存方法 |
CN103279509A (zh) * | 2013-05-17 | 2013-09-04 | 北京首钢自动化信息技术有限公司 | 一种采用动态查询语言的快速查询方法 |
CN103279509B (zh) * | 2013-05-17 | 2016-05-25 | 北京首钢自动化信息技术有限公司 | 一种采用动态查询语言的快速查询方法 |
CN105335366A (zh) * | 2014-05-30 | 2016-02-17 | 北大方正信息产业集团有限公司 | 一种sql语句处理方法、装置和服务器 |
CN107615277A (zh) * | 2015-03-26 | 2018-01-19 | 卡斯维尔公司 | 用于查询数据源的系统和方法 |
CN106610999A (zh) * | 2015-10-26 | 2017-05-03 | 北大方正集团有限公司 | 查询处理方法和装置 |
CN105868249A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据查询控制方法及装置 |
WO2017101398A1 (zh) * | 2015-12-15 | 2017-06-22 | 乐视控股(北京)有限公司 | 数据查询控制方法及装置 |
CN107403104A (zh) * | 2017-06-22 | 2017-11-28 | 努比亚技术有限公司 | 一种实现数据表查询限制的装置和方法 |
CN109992989A (zh) * | 2017-12-29 | 2019-07-09 | 西普霍特公司 | 使用抽象语法树的用于查询注入检测的系统 |
CN109992989B (zh) * | 2017-12-29 | 2023-10-13 | 西普霍特公司 | 使用抽象语法树的用于查询注入检测的系统 |
CN108806797A (zh) * | 2018-06-27 | 2018-11-13 | 思派(北京)网络科技有限公司 | 一种医疗数据的处理方法及系统 |
CN110008237A (zh) * | 2019-01-14 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种相似查询识别方法及装置 |
CN110008237B (zh) * | 2019-01-14 | 2023-05-02 | 创新先进技术有限公司 | 一种相似查询识别方法及装置 |
CN111666321A (zh) * | 2019-03-05 | 2020-09-15 | 百度在线网络技术(北京)有限公司 | 多数据源的操作方法及其装置 |
CN111666321B (zh) * | 2019-03-05 | 2024-01-05 | 百度在线网络技术(北京)有限公司 | 多数据源的操作方法及其装置 |
WO2021144689A1 (en) * | 2020-01-17 | 2021-07-22 | International Business Machines Corporation | Hierarchical data |
GB2607518A (en) * | 2020-01-17 | 2022-12-07 | Ibm | Hierarchical data |
US11960507B2 (en) | 2020-01-17 | 2024-04-16 | International Business Machines Corporation | Hierarchical data |
CN112988782A (zh) * | 2021-02-18 | 2021-06-18 | 新华三大数据技术有限公司 | Hive支持交互式查询的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101667190B (zh) | 2011-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101667190B (zh) | 基于XQuery的查询引擎系统 | |
US9152735B2 (en) | Method and apparatus for composing XSL transformations with XML publishing views | |
Krishnamurthy et al. | XML-to-SQL query translation literature: The state of the art and open problems | |
Michel et al. | Translation of relational and non-relational databases into RDF with xR2RML | |
US6721727B2 (en) | XML documents stored as column data | |
US7031956B1 (en) | System and method for synchronizing and/or updating an existing relational database with supplemental XML data | |
EP1686495A1 (en) | Mapping web services to ontologies | |
EP1684192A1 (en) | Integration platform for heterogeneous information sources | |
Florescu et al. | The BEA streaming XQuery processor | |
Chebotko et al. | Semantics preserving SPARQL-to-SQL query translation for optional graph patterns | |
CN101561817A (zh) | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 | |
Wielemaker et al. | Prolog-based infrastructure for RDF: Scalability and performance | |
CN1997995A (zh) | 使用转换有效评估查询 | |
Jain et al. | Translating XSLT programs to efficient SQL queries | |
Beyer et al. | DB2 goes hybrid: Integrating native XML and XQuery with relational data and SQL | |
Pal et al. | XML support in Microsoft SQL Server 2005 | |
Jigyasu et al. | SQL to XQuery translation in the aqualogic data services platform | |
Dang-Ngoc et al. | Tree Graph View: On Efficient Evaluation of XQuery in an XML Mediator. | |
Liu et al. | A decade of xml data management: An industrial experience report from oracle | |
Chen et al. | Automatic generation of XQuery view definitions from ORA-SS views | |
Wyss et al. | A relational algebra for data/metadata integration in a federated database system | |
Maharajan | Performance of native SPARQL query processors | |
Guardalben et al. | Integrating XML and relational database technologies: a position paper | |
Omelayenko et al. | Knowledge transformation for the semantic web | |
Sun et al. | Using ontologies for semantic query optimization of XML database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110727 Termination date: 20120929 |