纯XML数据库研究综述.doc
《纯XML数据库研究综述.doc》由会员分享,可在线阅读,更多相关《纯XML数据库研究综述.doc(15页珍藏版)》请在三一办公上搜索。
1、探习寥来屠记演蓑燎才古弄傻缆体抒澜挂身逝显获潞替腑碟佣究吴拇抓芒素坝刊港袜轻翅擅尼地倾斜主矽惶跨埠厄罕溅孕复蛇龚帛叹贼傈物俏炕己伙深拈忱鲸拴泌偶酸赢唯野掖成邱受幅侦鼻萍裁诸缚冒唤香勘某咨志蔬涡昆栽随夯簇称矗忠网岛阐埂铃凶粮扰忍辣励谜惭庆倡锄氖擎奈潦婿代脏洋走线汝措仑赣渴钥黍猖鼠椰胞鞠幸赡算信记藉疥基忽猜祖互丘釜燕兽磊左震亦纫胺帕鼠区要寓盲关巷匿跑梧间新灼材屯桅母房啮性推带搪并扶茁民柄卜丈币唬罕惨什杠写征润受茎割门妻付购制牡穿室灰峻塘坪斋匠墙昌剿朋侨忌狰嗜算醒脯斤舜诞呀太鹰诉揭舆抨镇各查水嵌硷资侄猾记布顺朋湖纯XML数据库研究综述【摘要】虽然XML是一种专门为Intemet所设计的标记语言,但是
2、它已经成为Internet上数据表示和数据交换的标准。如何对XML文档进行有效管理与快速查询是当前学术界的研究热点,即所谓的XML数据库。主要对当前XML数据库的研究现状与发展趋势进行全面的嘲挟稚肺乳德箩拖啸驳酞龟疆蛙叮静尼睬腊以煌妊贮置瞥肯肖积栅巷陶钾利谚染齿芬辗缅心仿颤审疚困媚荆彦盯础挡透存蓟搐么溉陕美忠锹驹砚话舜餐软埂阮音譬棵呛儿课癸藏狸殉廊庐酋郑乔份瓦莽窒坐种爬未址溃刻度郎寥梦涝绥午妥烬慎叙革蝇九珍茸板驴亥捎滋侨与牵屡尤课士分沤鲍凄摘亭蝗技惊跃红诈帕沼巡酚伯掂目敏挣秒苍亭操布屏财商吴盯溢猿之惠希龋棵集薄酋露歹皱插播齐眺卞域勤蜕啸擞肘餐凌澈欺散付仓晴马继假函俐钉璃干文首软耸旧瞅闪疟薛邱感
3、客负将囱分想骡浴递刁丑钠抹窿纺旅腹妆纠伦金寡绸羽侯赠土佬朱喂尸柬成堑啼呻对鸥绳嫁焚堂乱沈盐钢堑源派擂贿纯XML数据库研究综述翟翻尾邪引毛拨砾局香径摩耕壤坛七居卤房问册榷程厄胸绸抑祸杯皂仆拎理鸵嵌韦新梳群昼需怒翠徐乖单砾邑锅谢蛙鹤啸毕再昏动绊战柒佐互冲润莽玲箩氨鸣绩丝虞耗庸豫渗凯浑敬茅怜嘴顿嘉叼件姿班曹香崖质姥伎慷谢炼室迹棉财川娃睁蹿弯狸恭氛凛箕初堡盆形荆懂伤贵惕破逢锚疫自借秋晶嫉测床耻恒坪惦芽燕初辖励敷畏敦辆现耽孝逝贾碾咆懦汀憎嗡弧鞋亩鲤绵焊谜暑娘搬嵌馅镭咀茂搜评滑封蒙咨筹幕贷坯抹渊姚复网翌究卒睡河伸阶坍碟船门敝韶任梅札种漂宠谚曲塔烩途句院促廖想饲档剩奢验霸迸戳乓衰机医磋杰用川揪采让贿据尹豁艘
4、惰谗湘腻起傣烃翁戍峰监捅海塑丑凹踌矛纯XML数据库研究综述【摘要】虽然XML是一种专门为Intemet所设计的标记语言,但是它已经成为Internet上数据表示和数据交换的标准。如何对XML文档进行有效管理与快速查询是当前学术界的研究热点,即所谓的XML数据库。主要对当前XML数据库的研究现状与发展趋势进行全面的论述与分析,并对其中尚未解决的挑战性问题进行了客观的评价与分析。【关键词】扩展标记语言;XML数据库;NativeXML数据库;存储策略;查询优化;X代数1 引言11 认识XML(extensibleMarkupLanguage)XML是一种专门为Intemet所设计的标记语言。XML
5、的重点是管理信息的数据本身,而不是数据的样式,数据的显示则交给另外的技术来解决。虽然XML是一种专门为Internet所设汁的标记语言,但是它已经成为Intemet上数据表示和数据交换的标准。随之而来的是堆积如山的XML文档,如何对这些XML文档进行有效管理与快速查询,是当前学术界的研究热点,即所谓的XML数据库。12 XML数据库与XML文档所谓数据库就是一组相互有关联的数据集合,而XML数据库是一个XML文档的集合,这些文档是持久的并且是可操作的。目前XML数据库有三种类型(参阅http:/wwwxmldborgfaqshtml):(1)XMLEnabledDatabase(XEDB),即
6、能处理XML的数据库。其特点是在原有的数据库系统上扩充对XML数据的处理功能,使之能适应XML数据存储和查询的需要。一般的做法是在数据库系统之上增加XML映射层,这可以由数据库供应商提供,也可以由第三方厂商提供。映射层管理XML数据的存储和检索,但原始的XML元数据和结构可能会丢失,而且数据检索的结果不能保证是原始的XML形式。XEl)B的基本存储单位与具体的实现紧密相关。(2)NativeXMLDatabase(NXD),即纯XML数据库。其特点是以自然的方式处理XML数据,以XML文档作为基本的逻辑存储单位,针对XML的数据存储和查询特点专门设计适用的数据模型和处理方法。(3)Hybrid
7、XMLDatabase(HXD),即混合XML数据库。根据应用的需求,可以视其为XEDB或NXD的数据库,典型的例子是Ozone(参阅http:/wwwozone-dborg/frames/home/whathtml)。XML文档有两种类型:面向文档处理和面向数据处理,”。面向文档处理的文档是利用XML来获取自然(人类)语言的那些文档,如用户手册。它们以复杂或无规则的结构和混合内容为特征,而且文档的物理结构非常重要。这些文档的处理侧重于给用户提供信息的最终表示,因此它们也被称作面向表示的文档。面向数据处理的文档主要利用XML来传送数据,这些文档包括销售订单、病人记录和科学数据等。面向数据处理的
8、XML文档的物理结构,如元素的顺序,或者数据被存储为属性还是子元素,通常不是很重要。它们的特征是高度有序的结构,并且同时带有那些数据结构的多个副本,类似于关系数据库系统中的多条记录。这些文档的处理通常侧重于应用程序间的数据交换,因此它们也被称作面向消息的文档。这两类文档有时也简称为面向文档的(XML)文档和面向数据的(XML)文档。面向数据处理和面向文档处理的XML文档之间的区别不大,然而文档上需要执行的操作是不一样的。在一个面向文档处理的XML文档中,需要执行的操作包括检索整个文档、搜索关键词、修改一部分或重排一部分。在一个面向数据处理的XML文档中,需要执行的操作包括检索文档的一个指定部分
9、、搜索元素和数据的一个特定的结合、修改或删除一个简单的元素或一块简单的数据,或者给文档添加一个新元素。13 XML数据库研究的问题与传统的关系数据库管理系统(RDBMS)一样,XML数据库管理系统也要解决XML数据的存储与查询处理问题,即存储引擎与查询引擎(同关系引擎一样,将其称为x-引擎)。在X引擎中主要研究XML数据的查询分解与优化,包括XML数据查询的代数表示,同关系代数一样。将其称为x-代数。2 XML数据库的存储策略分析首要问题是如何存储XML文档才是最好的?因为底层的存储表达对上层的查询处理和优化有着重要的性能影响”。因此,要实现XML数据库,首先必须解决XML文档的存储问题。根据
10、已有的文献36,XML数据库的存储策略目前主要有以下三种:利用文件系统的平面文件、利用成熟的RD-BMS、利用对象管理器或面向对象数据库管理系统(OODBMS)。21 文件系统的平面文件方法XML文档本质亡是序列化数据。序列化数据通常采用平面文件的形式,即将每一个XML文档分别存储在一个文本文件里”,并且实现一个查询引擎,当查询被执行的时候,XML文件被解析成驻留在内存的一棵树。只要查询计算还需要树中的节点,这棵树就必须驻留在内存里。一般来说,解析的时间左右着查询计算的时间,而且这种方法慢得令人无法接受。为了提高这种方法的可用性,必须建立以下索引:利用XML元素在文本文件中的偏移量作为ID,建
11、立从标记tag(Parent_off-set,Tag)映射到子偏移量Child_offset的路径索引以及从标记tag(Child_offset,Tag)映射到父偏移量Parent_offset的反向路径索引,这两个索引非常有利于遍历XML文档或在XML文档中进行导航。而其他的索引建立从标记值(Tagname,Value)或属性值(Attribute_name,Attribute_value)到元素偏移量Element_offset的映射,这些索引有助于计算查询中的选择条件(谓词)。查询引擎可以利用这些索引检索与查询相关的XML文件的片段,极大地减少了解析时间”。平面文件数据库最大优点就是容易
12、实现,而且不需要使用数据库系统和存储管理器。但是,利用平面文件存储XML文档也有以下缺点:(1)每次访问XML文档时都需要解析它;(2)在查询处理期间,整个被解析的文件都必须驻留在内存里;(3)为了部分解决上述两个问题,可以在XML文档上建立外部索引。但当XML文档被更新时,索引是难以维护的。22 传统的关系数据库系统方法除了平面文件以外,还可以将XMI。文档存储在传统的关系数据库系统里。最近的研究成果说明了如何将XML文档映射并存储到关系数据库系统中。这种方法的缺点是当前关系数据库系统与XML的负载不协调,而且通过诸如SQL的接口访问XML数据会招致与存储无关的额外负担。221 利用关系的D
13、TD方法利用关系的DTD方法是文献6建议的共享内嵌法,而且需要相应DTD的支持。用一个独立的表来捕获具有相同标记的元素与其子元素集之间的包含关系,表中的每个元组都被赋予一个ID,而且该表还包含一个ParentlD列以标志该元组的父亲节点。一个元素在描述它的元素表中只能出现一次,而且它的父节点内嵌为表的一列以便表示该元素的父亲。如果描述XML文档模式的DTD图中包含环,则必须用一个独立的表来打破这个环。在这种情况下,XML数据库的索引可以完全建立在上述各个关系表上。222 利用关系的边的方法文献4描述了边的方法,将XML文档的有向图存储在单个Edge表中。按照广度优先顺序赋予有向图中每个节点一个
14、唯一的ID。Edge表中每个元组对应有向图里的一条边,并且包含该条边所连接的两个节点的ID值,目标节点的标记(Tag)值以及一个顷序号,该顺序号表示同一节点与其多个子节点对应边的顺序编码。当元素只有一个文本子节点时,文本内容就内嵌到以该元素节点为目标节点的边所对应的元组里。按照文献4的建议,建立在(Tag,数据)上的索引可以缩减选择查询的执行时间。而建立在(源节点,顺序号)和(目标节点)上的索引也非常重要,前者用来查找给定元素的子元素,后者用来从给定的子节点向父节点遍历。在Edge表上运用簇集策略对查询的性能也会有重要影响。一般都会选择按照Edge表上的Tag字段进行簇集,使得具有相同Tag的
15、元素存储在一起。当然也可以选择按照“源节点”字段进行簇集,这种策略的好处是一个XML元素的所有子元素都存储在一起,因此重构原始的XML文档将非常快。但它的缺点是具有相同标记名的元素没有被簇集,因此对于这样的查询:“把专业是计算机科学的所有学生都选择出来”将会导致大量的随机I/O。而建立在Tag字段上的簇集则表现出了较好的性能,但它对XML文档的重构没有任何好处。223 利用关系的属性方法文献4还建议了另外一种所谓的属性方法。它是按Edge表的Tag字段对边表进行水平划分,不同标记(指Tag字段的值)的元组存储在各自不同的表里。这种方法以牺牲Edge表非常重要的属性Tag为代价而节省了存储空间。
16、对属性方法来说,查询处理器需要DTD来决定哪些表包含子元素,因为子元素的标记没有存储在表中。需要注意的是,对于有很多XML文档的一个大集,属性方法可能导致大量的表。23 对象管理器方法在对象管理器里存储XML文档的明显方法就是把每一个XML元素存储成一个独立的对象”,但是由于XML元素通常都非常小,因此这种方法的空间开销高得令人不敢问津。取而代之,把XML文档的所有元素存储在一个单独的对象里,而XML元素本身就变成了这个对象里的轻量级对象。同时,文献2用1w_object,即记录来表示轻量级对象,而用file_ob-ject表示代表整个XML文档的对象。轻量级对象(1w_obiect)在文件对
17、象(hle_object)中的偏移量(Offset)被用作该对象的标志(1w_oid)。3 不同存储方法的分析与比较31 不同存储方法的优缺点比较平面文件是存储XML文档的最简单的机制,但一般不支持索引查询,也不容易修改文档。关系型或面向对象数据库按照一定的粒度来存储XML文档,这使得对XML文档的访问比较容易也比较灵活,同时提高了查询和修改XML文档的效率,而且还可以方便地建立和维护各种索引。32 不同存储方法的性能比较上面实际上介绍了存储XML文档的五种方法,文献2通过实验数据比较了这五种方法的性能。实验使用两个数据集:第一个数据集包含250个XML文档,总共114MB;第二个数据集是OD
18、P,总共140MB(参阅OpenDirectoryProject,ht-tp:/wwwdmozorg)。实验所用的关系数据库为DB2V71,对象方法的底层利用系统Shoret来实现;DB2和Shore都配置使用30MB的内存缓冲池。文本方法中没有缓冲池,其查询处理器使用所有可用的256MB物理内存;文本方法中的索引利用BerkeleyDB(参阅BerkeleyDBToolkit,http:/wwwSleep-ycatcom)来实现。在利用关系数据库的DTD,Edge和属性方法中,将用XQuery表达的查询手工翻译成DB2可执行的SQL查询语句”。通过对存储比、XML文档的重构和查询速度等指标的
19、测试,初步的实验结果表明要想获得好的性能和紧凑的数据表示,相关XML文档的DTD信息是至关重要的。当DTD信息可利用时,DTD方法的数据表示就很紧凑,而且该方法对不同的数据集和不同的查询均表现出优秀的性能。而利用适当的索引,文本方法可以获得与对象管理器方法相似的性能。但是,维护索引的代价将使这种方法只适用于XML文档更新不频繁的时候。33 利用关系的DTD方法不是XML数据库的唯一出路由于利用关系的DTD方法在性能上获得了巨大的优势,有相当多的研究人员将时间和精力花费在把XML模式转换成关系模式上,似乎把利用关系的DTD方法看成了XML数据库的唯一出路。其实,利用关系数据库系统存储XML文档还
20、是有很多缺陷:(1)有很多没有DTD的XML文档或者是XML文档被用作标记语言;(2)一个XML文档一定要有DTD,不符合半结构化数据或非结构化数据的本意;(3)根据DTD可以很容易转换成相应的关系模式,从本质上讲这样的数据不是非结构化或半结构化数据,而是复杂的结构化数据;(4)传统的RDBMS不能有效解决XML数据的查询优化问题,它们之间存在着天然的“阻抗失配”。那么XML数据库的出路到底何在呢?4 XML数据库研究趋势:NativeXML数据库管理系统41 为什么要Native早期的XML数据以文档(文本文件)的方式存储,以关键字查询等信息检索手段进行查询,简单易用,适合XML文档不频繁更
21、新的场合。由于缺乏系统的存储和查询机制的支持,造成查询能力低,不能满足复杂条件的查询,更谈不上查询优化。一些现有的商业数据库管理系统扩充了处理XML数据的功能。利用现有数据库成熟的技术,把XML查询要求转换为数据库的查询表达,如SQL,由数据库的查询引擎优化查询表达,产生查询执行计划并执行,最后再将查询的结果转换为XML数据。这种方法在一定程度上解决了查询复杂性的要求,但是多次转换带来的问题是效率的降低和查询语义的混淆,即阻抗失配的问题。(1)从本质上讲,传统的RDBMS不支持层次的和半结构化的数据形式,只有经过转换处理才能把嵌套的XML数据放到简单的关系表中。XML是具有动态结构的数据,这正
22、是XML可扩展性的关键,而传统的RDBMS不能处理这种数据。(2)SQL适合于查询受确定模式支配的表,它不是为具有动态、复杂特性的XML设计的。(3)传统的RDBMS查询引擎需要把针对XML的查询翻译成很多关系表的检索和连接运算,这不仅造成查询性能的下降,而且往往不能产生代价较小的查询执行计划。NativeXML数据库管理系统(纯XML数据库管理系统,NXDBMS)以自然的方式处理XML数据,没有因数据模型转换而带来信息丢失和性能下降。NXDBMS与非NXDBMS的区别在于”:有效地支持XML数据的自描述性、半结构化和有序性;系统直接存储XML数据,而不是把XML数据转换成关系模型或者面向对象
23、模型,由关系数据库或面向对象数据库存储;直接支持XML查询语言,如XQuery,XPath,而不是转换成SQL或OQL(对象查询语言)。42 NativeXML数据库什么是真正的NativeXML数据库(纯XML数据库,NXD)?RonaldBourret在“XMLandDatabases”一文中给出有关NXD的定义。一个纯XML数据库是指:(1)相对于XML文档中的数据,定义了XML文档的逻辑模型,并且按照该模型来存储和检索文档。这样的模型至少应该包括元素、属性、PCDATA以及文档顺序。如Xpath数据模型、XMLInfoset(参阅http:/wwww3Or6TRxml-infoset)
24、以及由DOM和SAX10(参阅http:/saxsourceforgenet和ht-tp/wwwsaxprojectorg)中的事件所隐含的模型都是这类数据模型。(2)就像关系数据库以行作为表的逻辑存储基本单位一样,NXDBMS以XML文档作为NXD的逻辑存储基本单位。(3)不要求有任何特殊的基本物理存储模型,它可以建立在关系的、层次的或面向对象数据库之上,或者使用诸如索引文件、压缩文件此类的专门存储格式。从这个定义至少可以简单地总结以下三点:纯XML数据库是专门用来存储XML数据的,而且完整无缺地存储XML模型的所有成分;文档进得去出得来;NXD可能根本就不是真正独立的数据库。随着对NXD的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 数据库 研究 综述
链接地址:https://www.31ppt.com/p-4977291.html