1、浅析浅析XML数据库数据库XML数据库XML简介XML数据库概念XML数据库分类XML数据库的存储策略XML数据库查询处理XML简介简介什么是XML?XML简介XML:可扩展标记语言 eXtensible Markup Language eXtensible Markup LanguageXMLXML是一种类似于是一种类似于HTMLHTML的标记语言的标记语言 XMLXML是用来描述数据的是用来描述数据的 XMLXML的标记不是在的标记不是在XMLXML中预定义的,用户必须定义自己中预定义的,用户必须定义自己的标记来描述文档的结构的标记来描述文档的结构XML和和HTMLXML是用来存放数据的X
2、ML不是HTML的替代品,XML和HTML是两种不同用途的语言。XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。HTML是被设计用来显示数据的,重点是:显示数据以及如何将数据显示得更好上面。XML是自由的、可以扩展的XML和和HTMLXML是一种元标记语言元标记语言,所谓“元标记语言”就是开发者可以根据自己的需要定义自己的标记,比如开发者可以定义标记,任何满足xml命名规则的名称都可以作为标记,这就为不同的应用程序的应用打开了大门。HTML是一种预定义标记语言预定义标记语言,HTML只是在一类特定的文件中定义了一种描述信息的方法,它只认识诸如,等已经定义的标记,对于用户自己定义
3、的标记是不认识的。一个XML文档?xml book year=XML XML技术内幕技术内幕 Natanya Natanya Pitts Pitts$25$25一个一个XMLXML文档由文档由序言和文档序言和文档实例两个部分组成。实例两个部分组成。序序言言包包括括一一个个XMLXML声声明明和和一一个个文文档档类类型型声声明明,二二者者都是可选的。都是可选的。序言之后是文档实例,它是文档的主体。序言之后是文档实例,它是文档的主体。XML文档XMLXML文档中最重要的组件是元素(文档中最重要的组件是元素(elementelement)。)。每每个个元元素素都都有有一一个个类类型型,元元素素可可能
4、能具具有有一一组组属属性性(称称为为属属性列表),每个属性说明有属性名和属性值类型。性列表),每个属性说明有属性名和属性值类型。在在文文档档中中,用用开开始始标标记记 和和结结束束标标记记来来确确定定元元素素的的边边界界。元元素素之之间间的的包包含含关关系系是是一一种种树树型型结结构构。一一个个XMLXML文文档档就是一棵有根、有序、带标记的树。就是一棵有根、有序、带标记的树。XML在ASP.NET中的应用DataSet读写XMLXMLDocument类 XML 文档在内存中(缓存)的树形表示,它支持对文档进行浏览和编辑XMLDataDocument类 该类扩展了 XmlDocument 类,
5、允许通过 DataSet 类(该类在所加载的 XML 数据上提供关系视图)存储、检索并操作结构化数据。XmlDocument 类和 DataSet 类之间的这种从属关系使组件可以将 XML 和数据源的与相同基础数据无关的关系视图混合XML数据库概念数据库概念什么是XML数据库?XML及其周边技术组成的数据库管理系统。提供了许多数据库所具备的东西:存储(XML文档)、模式(DTD,XML schema,RElAX NG 等等)、查询语言(XQuery,XPath,XQL,XML-QL,QUILT等等)、编程接口(SAX,DOM,JDOM)等等。从反面来说,它缺少一些作为实用的数据库所应具备的特性
6、:高效的存储、索引、安全、事务和数据一致性、多用户访问、触发器、交叉查询多个文件等等。XML数据库结构图XML数据库分类数据库分类XML数据库分类(1)XMLEnabledDatabase(XEDB),即能处理XML的数据库。其特点是在原有的数据库系统上扩充对XML数据的处理功能,使之能适应XML数据存储和查询的需要。(2)NativeXMLDatabase(NXD),即纯XML数据库。其特点是以自然的方式处理XML数据,以XML文档作为基本的逻辑存储单位,针对XML的数据存储和查询特点专门设计适用的数据模型和处理方法。(3)HybridXMLDatabase(HXD),即混合XML数据库。根
7、据应用的需求,可以视其为XEDB或NXD的数据库。XML数据库存储策略数据库存储策略要实现XML数据库,首先必须解决XML文档的存储问题利用文件系统的平面文件传统的关系数据库系统方法利用对象管理器或面向对象数据库管理系统(OODBMS)文件系统的平面文件方法XML文档本质是序列化数据。序列化数据通常采用平面文件的形式,即将每一个XML文档分别存储在一个文本文件里,并且实现一个查询引擎,当查询被执行的时候,XML文件被解析成驻留在内存的一棵树。只要查询计算还需要树中的节点,这棵树就必须驻留在内存里。文件系统的平面文件方法缺点(1)每次访问XML文档时都需要解析它;(2)在查询处理期间,整个被解析
8、的文件都必须驻留在内存里;(3)为了部分解决上述两个问题,可以在XML文档上建立外部索引。但当XML文档被更新时,索引是难以维护的。传统的关系数据库系统方法除了平面文件以外,还可以将XML文档存储在传统的关系数据库系统里。缺点:这种方法的缺点是当前关系数据库系统与XML的负载不协调,而且通过诸如SQL的接口访问XML数据会招致与存储无关的额外负担。对象管理器方法在对象管理器里存储XML文档的明显方法就是把每一个XML元素存储成一个独立的对象”,但是由于XML元素通常都非常小,因此这种方法的空间开销高得令人不敢问津。取而代之,把XML文档的所有元素存储在一个单独的对象里,而XML元素本身就变成了
9、这个对象里的轻量级对象。XML数据库查询处理数据库查询处理查询处理查询处理的方式和效率,一直是XML数据库研究和开发者关注的首要问题。XML数据库的查询处理一般是从解析查询语言(如XQuery)的查询语句表达式开始的。XML数据库的查询解析器将表达式解析为一棵查询模式树(有的系统叫做语法树)。查询处理假设一个XQuery表达式为:book tittle=XML/year=2000它表示我们要查询的 book节点满足下面的条件:有一个子节点tittle,它的内容为串值XML;它有一个后代节点year,它的内容为串值2000。匹配模式树结构化联接它的基本思路是将上述的模式树分解为二元关系序列。而在此之前,也已经将XML文档库做了索引处理,文档中每个元素节点均被标以一个三元组索引,形式为:(文档标识符,开始位置:结束位置,层号)。查询模式可以分两步来完成:1)在索引过的XML数据库中匹配上述分解的二元结构关系;2)将查找到的二元结构匹配结果组装(stitching)成最终的符合上述查询表达式的完整文档。Thanks