1 / 42

OrientX: Native XML 数据库系统

OrientX: Native XML 数据库系统. 孟小峰 王宇 罗道峰 陆世潮 安靖 陈妍 蒋瑜 欧建波 中国人民大学信息学院 ( 100872 ) xfmeng@mail.ruc.edu.cn. Outline. 体系结构和特征 存储 索引 SUPEX 结构索引 结构索引使用的编码方法 查询处理 导航式查询处理 集合式查询处理 基于代价的查询优化 更新 基于角色的访问控制. OrientX 特征. 基于模式 采用多种粒度的树形结构存储数据 支持描述化查询语言 XQuery 基于代价估计的查询优化方法 基于模式的路径索引 基于角色的访问控制

neron
Download Presentation

OrientX: Native XML 数据库系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OrientX: Native XML数据库系统 孟小峰 王宇 罗道峰 陆世潮 安靖 陈妍 蒋瑜 欧建波 中国人民大学信息学院 (100872) xfmeng@mail.ruc.edu.cn

  2. Outline • 体系结构和特征 • 存储 • 索引 • SUPEX结构索引 • 结构索引使用的编码方法 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  3. OrientX特征 • 基于模式 • 采用多种粒度的树形结构存储数据 • 支持描述化查询语言XQuery • 基于代价估计的查询优化方法 • 基于模式的路径索引 • 基于角色的访问控制 • …

  4. XSD 文档 DTD 文档 XML 文档 查询处理语句 API 查 询 处 理 数 据 更 新 用户访问控制 数据库 建立维护管理 查询分解 查询优化 查询执行 模式管理 数据存取管理 索引管理 数据缓冲管理 数据存储管理 DEB CEB DSB CSB 数据、模式信息、用户信息、 统计信息、索引信息 体系结构 图1 OrientX体系结构图 • 数据存储管理 • 索引模块 • 查询处理 • 数据更新 • 用户访问控制 • 模式管理 • 接口 查询更新处理流 数据导入导出流

  5. Outline • 体系结构和特征 • 存储 • 索引 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  6. OrientX 存储策略 • 存储管理以记录为单位,逻辑含义是一棵子树,是读写的最小单位 • 一个XML文档包含若干个记录,多个满足同一个模式定义(DTD或者XML Schema)的XML文档放在一个数据集里。 • EID(AID)唯一地标志结点的类型 • 数据集用SetID来标志;在文件上划分逻辑物理块物理块用LpNo来标志;给定一对<SetID,LpNo>,能马上找到对应文件的相应的偏移量。

  7. 多粒度存储策略 • 四种存储方法 • Element-based • Depth-first Element Based(DEB) • Clustered Element Based(CEB) • Subtree-based • Depth-first Subtree Based (DSB) • Clustered Subtree Based (CSB)

  8. b b t a2 a2 a 1 a1 t l2 f2 l2 l1 f1 f2 f1 l1 多粒度存储策略 • DEB • 存储顺序:t f1 l1 a1 f2 l2 a2 b • 每个记录包含EID,Text Value和它的父记录的地址PAddress。 • CEB • 存储顺序:a1,a2聚簇存储在一个物理块;f1,f2在一个物理块;l1,l2在一个物理块;b, t各在一个物理块。 • DSB CSB

  9. 存储策略的选择 • 不同的文档适合用不同的方法来存储 • 当文档比较小的时候,采用深度优先方法 • 当文档比较大的时候,使用聚簇方法 • 文档性质比较强的文档,采用深度优先方法 • 数据性质比较强的文档,采用聚簇方法 • 为了处理上的方便,无论底层采取什么存储方法,对上层查询的接口都是一样的,这样,提供了一定的独立性。

  10. Outline • 体系结构和特征 • 存储 • 索引 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  11. 结构图 … … DocId, RID, Level, Info 索引记录 SUPEX索引策略 • 父子关系 • 祖先-后代关系 • 绝对路径查询 • 相对路径查询 元素映射表

  12. 编码方法概述 • 三类编码方法: • Region-based: <start, end>, <order, size> • Prefix-based: Dewey-code • K-ary-tree-based: PBiTree • 基于编码方法的索引和查询技术: • EE-Join,EA-Join 和 KC-Join • MPMCJN • SHCJ, MHCJ,VPJ • stack-merge

  13. 结构索引使用的编码 • BitPath • 思想:prefix-based方法 • 好处: • 与region或者k-ary tree方法相比,变长、更新代价小。 • 与其它prefix-based方法相比,不需要分隔符,减少存储空间,提高查询效率。

  14. Outline • 体系结构和特征 • 存储 • 索引 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  15. 处理XQuery的核心问题 • Path路径的求值问题 • 结构连接 • 基于树的导航式处理 • 嵌套查询的解决方案 • 相关嵌套 • 非相关嵌套 • XML数据的有序性问题

  16. XQuery查询导航式实现方法的主要模块 • 语法分析 • 语义检查 • 生成执行计划 • 优化器 • 逻辑的 • 物理的 • 执行引擎

  17. XQuery Parser Type check Semantic Check 导航式处理XQuery的结构图 Query Interface XQuery Execute Plan XPath Execute Plan XQuery Execute Engine Optimize inline XPath Execute Engine Data Manager

  18. 产生执行计划的算法 • 构建执行计划 • 并不是先生成语法树再构建执行计划。 • 而是,语法分析的同时构建执行计划。 • 当规约成一个语法单元时,即构建一个相应的操作符 • 把构成该语法单元的子单元的对应操作符,置为新构建操作符的子操作;形成一棵执行计划树

  19. 例子 • import default schema = "xmark" • for $p in document('xsmall.xml') //people /person • Let $i := $p//interest • where $p/profile/@income >10000 • return • <person> • <profile>{$p/profile} </profile> • {$i} • </person>

  20. 执行计划 FLWR • <person> ForVarBind LetVarBind ConditionTree EleConstructor • $p/profile/@income >10000 • $p in document('xsmall.xml') //people /person EleConstructor Path Path • $i := $p//interest • <profile>{$p/profile} </profile> • $i

  21. 导航式处理 FLWR ForVarBind LetVarBind ConditionTree EleConstructor EleConstructor Path Path

  22. 导航式处理 FLWR Evaluated true ForVarBind LetVarBind ConditionTree EleConstructor EleConstructor Path Path

  23. 导航式处理 FLWR Evaluated false ForVarBind LetVarBind ConditionTree EleConstructor EleConstructor Path Path

  24. Outline • 体系结构和特征 • 存储 • 索引 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  25. 集合式查询处理 • 借鉴关系代数方法,引入XML 代数,使操作变成一次一集合的操作。

  26. XML Algebra 设计 • 设计思想 • 主要问题 • 难点

  27. 设计思想 • 引入关系中关于记录的概念,操作符的操作对象是记录的集合,若干操作符组成一棵操作符树,来表达一个查询。 • 记录是一棵XML树 • 操作符的分类 • Extraction操作 • Processing操作 • Construction操作

  28. 主要问题1:绑定到结点还是结点序列?(引入+修饰符)主要问题1:绑定到结点还是结点序列?(引入+修饰符) FOR $b in document(“books.xml”)//book LET $a := $b/author WHERE $b/year<1990 RETURN < books_before_1990> <book> {$a} </book> < books_ before _1990> FOR $b in document(“books.xml”)//book $a in $b/author WHERE $b/year<1990 RETURN < books_before_1990> <book> {$a} </book> < books_ before _1990> FOR $b in document(“books.xml”)//book WHERE $b/year<1990 RETURN <books_ before _1990> <book> {$b/author} </book> < books_ before _1990>

  29. 问题2:结构谓词结点和非谓词结点 <bib> { for $b in doc("http://bstore1.example.com/bib.xml")/bib/book where $b/publisher = "Addison-Wesley" and $b/@year > 1991 return <book year="{$b/@year }"> { $b/title } </book> } </bib>

  30. 问题3:表达式的嵌套(结果构造符多次使用)问题3:表达式的嵌套(结果构造符多次使用) <result> FOR $b in document(“books.xml”)/bib/book $r in document(“reviews.xml”)//review WHERE $b/title = $r/title RETURN <books_price_and_review> {$b/title} {$b/price} {$r/content} </books_price_and_review> </result> <result> FOR $b in document(“books.xml”)/bib/book RETURN <books_price_and_review> {$b/title} {$b/price} {FOR $r in document(“reviews.xml”)//review WHERE $b/title = $r/title RETURN $r/content } </books_price_and_review> </result>

  31. 问题4:谓词的作用域 for $v in document(“book.xml”)//vendor where $v/address=”beijing” return <vendor_books> {$v/name} {$v/book[title=“C++”]} </vendor_books> for $v in document(“book.xml”)//vendor $b in $v/book where $v/address=”beijing” and $b/title=“C++” return <vendor_books> {$v/name} {$b} </vendor_books>

  32. 问题5:值绑定和引用绑定 • 有了中间结果,要不要与源数据发生联系?

  33. 难点 • Pattern Tree Matching的策略选择 • 导航式 • 结构连接 • 混合

  34. Outline • 体系结构和特征 • 存储 • 索引 • SUPEX结构索引 • 结构索引使用的编码方法 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  35. 基于代价的查询优化方法 • 采用直方图方法统计XML数据的分布情况 • 与模式统计信息相结合形成统计信息模型 • 通过六种不同的直方图运算, 计算任意路径中任意子路径的选择性

  36. 代价计算实例 • n1/n2//n3/n4[a>v]

  37. Outline • 体系结构和特征 • 存储 • 索引 • SUPEX结构索引 • 结构索引使用的编码方法 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  38. XML更新涉及问题 • 更新有效性检查 • 结构有效性 • 属性有效性 • 结点定位 • 存储空间的分配 • 其它辅助数据的更新,比如索引、编码等。

  39. 更新方法 • 根据模式信息判断更新的有效性 • 根据不同的存储方法设计不同的更新方法 • 根据模式信息设计不同的预留空间 • 在非聚簇存储和CEB时预留空间相同 • 在CSB方法时预留空间不同

  40. Outline • 体系结构和特征 • 存储 • 索引 • SUPEX结构索引 • 结构索引使用的编码方法 • 查询处理 • 导航式查询处理 • 集合式查询处理 • 基于代价的查询优化 • 更新 • 基于角色的访问控制

  41. 基于角色的用户访问控制 • 角色之间有继承关系,构成一棵角色树。 • 用户访问控制的最小粒度是结点级。 • 采用类XPath语句对每个角色授权 • 为了使用方便和强化授权能力引入否定授权,制定权限冲突规则,和冲突检测机制。 • 授权检测时,只需对查询语句构成的查询树和授权语句构成的权限树匹配,如果查询树满足权限树,则允许查询执行,否则拒绝,无需访问数据信息。

  42. 下一步工作 • 完善XML代数,实现集合式的XQuery查询处理 • 进一步研究XML查询优化问题 • 完善更新和访问控制方法

More Related