XML数据库系统综述.doc
XML数据库系统综述摘 要:XML数据库是一种新型的数据库技术,本文结合XML数据库研究的最新进展和XML数据库最新产品的实际性能,对XML数据库技术进行了总体分析,与传统的数据库技术进行了比较,指出了其目前需要改进的方面。关键词:NXD XEDB 半结构化数据随着Web应用的不断扩展,传统的基于HTML的Web信息表达方式不能适应人们进行信息查询和对web数据进行管理的需要1。由万维网协会(W3C)提出和设计的可扩展标记语言(XML,Extensible Markup Language)正在逐步成为新一代Web数据描述和数据交换标准。XML是一种自描述的半结构化语言,不仅能描述数据的外观,可以表达数据本身的含义,在兼容原有Web应用的同时,XML还可以更好地实现Web中的信息共享与交换。XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从Web页面信息到数据记录,XML能够使不同来源的结构化的数据很容易地结合在一起。各种基于XML的应用不断涌现,产生了对XML文档进行统一管理的需求。另外,传统的数据库在基于Web的应用中遇到了诸多障碍,在这种情况下XML数据库应运而生。目前,XML数据库主要有两种类型:XML本源数据库(NXD,Native XML Database)、支持XML的数据库(XEDB,XML enable database)o NXD是专门对XML数据格式的文档进行存取管理和数据查询的数据库。XEDB是在传统数据库的基础上,通过增加对XML数据的映射功能,从而实现对XML数据的存取管理。XML数据库的主要用途可以概括为两方面:对XML数据进行有效的管理,提供数据查询和修改功能,对基于Web的各种数据源进行集成。本文结合XML数据库研究的最新进展和XML数据库最新产品的实际性能,对XML数据库进行总体分析。1 XML数据库系统的组成11 XML数据库的数据区以及存储机制XML文档是XML数据库的数据区,一个XML文档就是一个基本的存储单元,相当于关系数据库中的一个表格。XML数据直接以XML文档格式存储。12 XML数据库数据模型DTD(文档类型定义)或者Schemas是XML数据库数据模型。对XML数据库内容的存取访问都依据该模型。模型中规定了元素(elements)、属性(atributes)、PCDATA以及文档内容的顺序。XML数据模型可以支持任意层次的数据嵌套,对半结构化数据提供了良好的支持。在DTD中可以说明XML文档中的数据类型(datatypes),通过detatypes可以进行基于数据类型的查询操作。因此,DTD还是对XML数据建立索引的一种主要手段。Schemas是W3C推荐的XML数据模型标准,它比DTD更加严格规范。目前大量使用的是DTD,未来XML Schema有可能取而代之。13 XML数据库查询和操作语言XQuery、XPath、XQL、XMLQL都是数据库查询语言。XQuery是W3C提出的对XML文档进行信息查找的查询语言规范。其具体标准由XML Query工作组制订,其当前版本为XQuexy 10。XPath是W3C提出的在XML文档内描述数据元素在文档中的位置的规范。W3C在2OO2年4月30日推出的XPath 20标准中,容纳了XQuery 10的基本要求。因此XPath不仅用于确定数据在文档中的位置,还支持数据查询。目前的大多数XML数据库都采用它实现数据查询。XSLT是对XML数据进行操作的语言。XSLT与XML的关系,就好象SQL语言与关系数据库的关系一样。在对XML文档操作时,通常XPath与XSLT是协同工作的。14 XML数据库处理工具DOM、SAX、JDOM是XML数据库处理工具。提供对XML文档的编辑、管理功能,以及与其它语言的编程接口。DOM(Document Object Model),即文档对象模型。是W3C推荐的对XML数据进行组织管理的标准和编程接口规范。JDOM是采用JAVA语言实现的DOM。SAX(Simple API for XML)是目前大多数XML数据库实际使用的开发标准,几乎所有的XML解析器都支持它。与DOM比较而言,SAX是一种轻量型的方法。2 XML文档类型XML文档可以分两大类:以数据为中心、以文档为中心。以数据为中心的文档结构规范、数据粒度好(最小的独立数据单元是PCDATA、elements或者atributes)、很少或者没有混合内容。文档中间层次的elements、PCDATA的之间的顺序不作严格要求,类似于关系表。数据为中心的文档主要用于数据存储或交换,便于机器理解和处理。以文档为中心的文档内部数据结构不规则,内容是混合的,其内部包含的信息自身的物理结构很重要。数据的粒度比较大。以文档为中心的文档便于人们的阅读,是典型的半结构化的文档,具有不规则的内容,如书本、电子邮件、广告等等。NXD不仅可以管理以文档为中心的文档,也可以管理以数据为中心的文档,而XEDB只可以对以数据为中心的文档进行管理。如果要对以文档为中心的文档进行管理,应当选择NXD。3 XML数据库产品及其与传统数据库的比较31 NXD产品概述截止2003年8月,共有34种NXD产品2,这些NXD产品基本上是在2001年下半年以后面世的。比较有代表性的NXD产品有Tamino、dbXML、eXcelon和XHiveDB,分别由德国的Software AG公司、dbXMLGroup LLC公司、eXcelon公司和荷兰的The Connection Factory公司研制。32 NXD与传统数据库的比较与传统数据库相比,NXD具有以下特点:· 对半结构化数据进行有效的存取和管理,而传统的关系数据库对于半结构化数据无法进行有效的管理。· 提供对标签(Tag)和路径的操作。传统数据库语言不能对元素名称操作,半结构化数据库提供了对标签名称的操作,还包括了对路径的操作。· 当数据本身具有层次结构时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。·顺序性(sequence):在传统的数据表中,表项(field)之间的顺序是可以互换的。以文档为中心的XML文档与传统的数据表不同,其内容是有顺序的,不允许随便调整elements、attributes、PCDATA的顺序。当然,顺序性使得对XML文档的查询、修改比传统数据库的相应操作复杂。· 与各种数据的交换能力:由于XML本身是一种标准的数据交换格式,因此NXD能够存储和查询各种不同结构类型的文档,对异构环境的信息存取提供了良好的支持,为异构环境下的数据集成提供了一种新的方法,这一特性对于Web数据管理来说是十分重要的。总之,NXD适合管理复杂数据结构的数据集,如果已经以XML格式存储信息,则采用NXD利于文档的存取和检索,能够提供高质量的全文搜索引擎,特别适合对半结构化数据的管理。当然如果要对结构化的数据进行管理,传统的关系数据库还是首选。33 XEDB产品概述及其与传统数据库的关系目前已经知道的XEDB产品有Access 2002、SQL Server 2000、IBM的DB2 XML Extender、FileMaker、Foxpro、Infomfix、ObjectivityDB、Oracle 8i,9i等。它们都是使用DTD实现与关系表格的转换,对XML文档的查询符合W3C推荐的XPath规范,微软、IBM和Oracle的XEDB核心都采用xQuery标准执行查询。由于传统的关系数据库中的数据表(Table)很类似于以数据为中心的文档,因此由XEDB管理的以数据为中心的XML文档可以方便的存储到关系数据库中,关系数据库中的数据表也可以转换成XML文档由XEDB管理。实际上,XEDB只是在传统数据库基础上增加了对XML数据的映射机制,只能对以数据为中心的、结构化程度较高的XML文档进行管理,能够实现这类XML文档与传统数据库之间的映射。对于XEDB来说,数据库内部仍然采用关系表单格式存储数据,当用户进行基于XML的查询或处理时,XEDB可以根据需要重新组合这些数据。从本质上看,XEDB就是一个具有对以数据为中心的、结构化程度比较好的XML文档进行存取管理功能的关系数据库或是面向对象数据库。4 XML数据库的若干问题XML数据库作为一种新型的数据库技术 ,目前还存在许多需要改进的方面。41 聚合问题聚合能力是数据库的重要功能之一,是进行联机分析处理(OLAP)的关键。由于XML数据是以层次化模型进行管理的,对不同处于层次的相关信息汇集起来进行集中处理时(如进行求和、平均数算术等运算),就显得比较烦琐,必须在中间环节增加附加代码。NXD在执行聚合任务时表现不佳。42 数据查询与更新能力有待提高由于XML数据的自身特点,目前还无法建立与关系数据库功能性能相当的索引机制。首先,Xpath(XQuery)查询语法不支持组、排列和摘要数据等功能,即使最新的Xquery规范仍然不支持数据更新、插入和删除等功能。其次,需要对XML数据库进行查询或内容更新时,一般的办法是对整个数据区从头到尾进行查找。如果对一个信息量巨大的XML文档进行查询或内容更新时,这显然是不能容忍的。常规解决方法是选择指定的element或者attribute建立索引,如同在关系数据库里选择field用于索引一样。这样,在新数据被添加到数据库时,就需要XML数据库内的所有信息重新进行一次索引,由于儿数据库主要是针对关系复杂的半结构化数据进行管理的,其索引机制比关系数据库复杂得多,另外,索引文件占用的存储空间也比较大,如果要对多个元素或属性建立索引,将占用大量的存储空间。43 并发机制目前NXD在并发性方面还缺乏有效的管理机制,缺乏多重管理能力,协同工作能力、规划能力不强。在多用户处理机制、多事务处理、数据完整性、触发器等方面,NXD的性能还不尽如人意。44 标准化问题尽管W3C在XML数据标准化方面做了大量工作;同时XML:DB作为一个致力于XML数据库标准化和推广XML数据库产品的国际组织,也在努力工作,不断推出基于XML数据库的开发规范,但其规范常常比XML数据库产品出现的时间还晚,再加上由于其规范过于烦琐,在实际的XML数据应用中只能起到一定的指导作用。根据Ronald Bourre32002年5月的最新统计,XEDB产品有8种,NXD产品有30种,由于在产品开发之前还没有具体的统一规范,不同厂家的数据库产品之间存在差别,它们之间的互操作能力值得怀疑。再加上由于XML数据库作为一种新兴的数据库技术,研究者众多,不断有研究者和XML数据库厂商对XML数据库的功能进行扩展,提出新的技术方案,估计在近两三年内很难制订出一个比较全面的得到统一支持的数据库开发标准。参考文献1Len Seligman,Amon Rosenthal XMLs Impact on Databases and datasharing,IEEEComputer June 2001,P59662XML:DB,XML:DB Initiative for XML Databaseshttp:/wwwxmldborgindexhtml3Ronald Bourre,XML Database Products:13,August,2OO3;http:/wwwrpbourretcomxml/XMLDatabasProdshtm4Ipedo XML Database http:/wwwipedocornhtmlproducts_xml_dat,html5Dare Obasanjo,AN EXPLORATION OF XML IN DATABASE MANAGEMENT SYSTEMShttp:/www25hoursadaycornStoringAndQueongXMLhtml.6Clark,James and Steve DeRoseXML Path Language(XPath)20,W3C Working Draft 12,November 2OO3http:/wwww3org/TRxpath207Bourett,Ronald XML and DatabasesJune 2OO3http:/wwwrphourretcomxmlXML And Databaseshtm8Chamberlin,Don et alXQuery 10:An XML Query LanguageW3C Working Draft 12 November 2OO3http:/wwww3orgTR/xquery9Cheng,Josephine and Xu,Jane.IBM DB2 Extender FROM ICED “00” Conference,San Diego.February 2000. http:/www-4, 10W3C Working Draft,XML Query Use Case,30.April,2002 http:/wwww3orgXMLQuery