The invention discloses a method for fast query for XML data, are composed by a plurality of label path has complex hierarchical structure level fusion query in the XML data, construct the query model to solve the problem about the XML multi label path (XMTQ). XMTQ model based on simple query interface (QI), navigation query tree data structure model (QGT) and the query processing engine (QE), which can provide only a label path to query in QI, do not need to pay attention to the structure of the complex relationship, the relationship model between the adaptive label path, also support the predicate expression parameters interface; QGT has the \trunk\ tag node traversal result sharing and fast traversal of navigation line features, can guide the QE more quickly and more accurately traversal, skip irrelevant branches, query and access to the relevant tag value. Tests show that the XMTQ model has prominent query temporal and spatial efficiency for querying multiple hierarchical complex tag paths for large-scale XML data.
【技术实现步骤摘要】
一种XML数据的快速查询方法
本专利技术属于信息交换和查询领域,尤其涉及一种XML数据的快速查询方法,具体为在XML数据中进行由多个具有复杂结构关系的标签路径组成的层次融合式查询,并返回二维结果值集合。
技术介绍
XML(extensiblemarkuplanguage),即可扩展的标记语言,是一套定义语义标记的规范。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。随着网络应用的快速发展,使得XML类型的数据成为基于互联网数据交换的主流数据形式。XML格式数据具有天然的层次结构关系即树形结构关系,因此在很多应用场合下针对XML数据的查询也具有层次关系特性。在传统关系数据库中一种常见的层次数据查询应用:有条件地从不同层级的数据表中检索多个字段的数据。假定以下关系:部门(部门编号,部门名称);员工(员工编号,部门编号,员工姓名,职位,性别,年龄),部门和员工之间是一对多的关系(树状结构),对应的简写:Dept(dep_id,dep_name)和Emp(emp_id,dep_id,name,title,gender,age)。显然部门表和员工表是不同层次关系的表,后者是前者的子表,现在要检索出“年龄大于40岁的所有的员工姓名、职位和所属部门名称”,那么对应的SQL脚本语句如下:SELECTemp.name,emp.title,dept.dept_nameFROMdept,empWHEREdept.dept_id=emp.dep_idANDage>4 ...
【技术保护点】
一种XML数据的快速查询方法,其特征在于,包括以下步骤:步骤1、查询参数预处理:构建谓词表达式语法计算树、查询导航树步骤、101如果谓词表达式不存在的话,跳转到步骤104,如果存在,顺序执行下一步骤;步骤102、按照表达式EBNF范式,语法分析谓词条件表达式,并把操作数作为叶子节点,把相关的操作符作为其父节点,依次类推构造谓词语法计算树;步骤103、把每个条件表达式子项中的标签路径追加到查询标签路径表中;步骤104、针对查询标签列表中的每一个标签路径,分拆成一组标签序列;步骤105至107针对此标签路径的标签序列,按照顺序处理每一个标签:如果此标签没在查询树结构中,则创建新的节点结构编入查询树中,在节点中放入此标签的详细信息,同时把导航信息放入此节点中,包括:“父子”指针、“子父”指针,按照顺序检查下一个标签、重复执行步骤105;如果在查询树结构中已经存在,顺序查找下一个标签,重复执行步骤105;直到标签序列结束执行步骤108。步骤108遍历查询导航树,继续丰富节点的导航信息。步骤2、查询处理并提供二维结果集步骤201、解析目标XML数据读入内存中,构造数据对象树,此对象树节点中只存在 ...
【技术特征摘要】
1.一种XML数据的快速查询方法,其特征在于,包括以下步骤:步骤1、查询参数预处理:构建谓词表达式语法计算树、查询导航树步骤、101如果谓词表达式不存在的话,跳转到步骤104,如果存在,顺序执行下一步骤;步骤102、按照表达式EBNF范式,语法分析谓词条件表达式,并把操作数作为叶子节点,把相关的操作符作为其父节点,依次类推构造谓词语法计算树;步骤103、把每个条件表达式子项中的标签路径追加到查询标签路径表中;步骤104、针对查询标签列表中的每一个标签路径,分拆成一组标签序列;步骤105至107针对此标签路径的标签序列,按照顺序处理每一个标签:如果此标签没在查询树结构中,则创建新的节点结构编入查询树中,在节点中放入此标签的详细信息,同时把导航信息放入此节点中,包括:“父子”指针、“子父”指针,按照顺序检查下一个标签、重复执行步骤105;如果在查询树结构中已经存在,顺序查找下一个标签,重复执行步骤105;直到标签序列结束执行步骤108。步骤108遍历查询导航树,继续丰富节点的导航信息。步骤2、查询处理并提供二维结果集步骤201、解析目标XML数据读入内存中,构造数据对象树,此对象树节点中只存在“父子关系”的向下单向指针,无“子父关系”的向上指针;步骤202、遍历查询导航树同时遍历XML数据树,对于查询树中的查询节点和数据树中的相关数据节点采用“双树剪枝”算法作遍历检查处理:查询标签节点存在但无数据标签节点与之对应,则以此查询节点为根节点的查询分支不再遍历;查询节点和数据节点的标签名相同,则通过此标签节点或者收集其标签路径的结果值放入缓存;数据标签节点存在但无查询标签节点与之对应,则遍历跳过以此数据节点...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。