前往顾页

纯XML数据库研究综述

时候:2010-10-27 16:04来源:知行网www.zhixing123.cn 编辑:麦田守望者

【择要】固然XML是一种特地为Intemet所设想的标识表记标帜说话,但是它已成为Internet上数据表示和数据互换的标准。若何对XML文档进行有效办理与疾速查询是以后学术界的研究热点,即所谓的XML数据库。首要对以后XML数据库的研究近况与生长趋势进行全面的阐述与阐发,并对此中还没有处理的应战性问题进行了客观的评价与阐发。

【关头词】扩展标识表记标帜说话;XML数据库;NativeXML数据库;存储战略;查询优化;X—代数

SurveyOfResearchonNativeXMLDatabases

FENGJian-hua QIANQian LIAOYu-guo LIGuo-liang TANa ZHOULi-zhu

Dept.ofCompuJcrScience&Technology,TsinghuaUniversity Beijing China 100084

【Abstract】AlthoughXMLisaspecialmarkuplanguageforInternet,ithasbeenbecomethestandardfordatarepresentationandexchangeOnInternet.WiththeemergenceOfalOtOfXMLdocuments howtOmanageandquerythemeffectivelyhasbeenbecomeahotspotfOrdatabaseresearchers.Thispaperdiscussesandanalyzesthestatusquoandtrend()fXMLdatabasere—search,andgivestheevaluatingtOtheopenandchallengingproblemsinXMLdatabaseresearch.

【Keywords】XML;XMLDatabase;NativeXMLDatabase;StorageStrategy;QueryOptimization;X-Algebra

1 弁言

1.1 熟谙XML(extensibleMarkupLanguage)

XML是一种特地为Intemet所设想的标识表记标帜说话。XML的重点是办理信息的数据本身,而不是数据的款式,数据的显现则交给别的的技术来处理。固然XML是一种特地为Internet所设汁的标识表记标帜说话,但是它已成为Intemet上数据表示和数据互换的标准。随之而来的是聚积如山的XML文档,若何对这些XML文档进行有效办理与疾速查询,是以后学术界的研究热点,即所谓的XML数据库。

1.2 XML数据库与XML文档

所谓数据库就是一组相互有关联的数据调集,而XML数据库是一个XML文档的调集,这些文档是持久的并且是可操纵的。目前XML数据库有三种范例(参阅http://www.xmldb.org/faqs.html):

(1)XMLEnabledDatabase(XEDB),即能措置XML的数据库。其特性是在原本的数据库体系上扩展对XML数据的措置服从,使之能适应XML数据存储和查询的需求。一般的做法是在数据库体系之上增加XML映照层,这可以由数据库供应商供应,也能够由第三方厂商供应。映照层办理XML数据的存储和检索,但原始的XML元数据和布局可能会丧失,并且数据检索的成果不克不及包管是原始的XML情势。XEl)B的根基存储单位与详细的实现紧密相关。

(2)NativeXMLDatabase(NXD),即纯XML数据库。其特性是以自然的体例措置XML数据,以XML文档作为根基的逻辑存储单位,针对XML的数据存储和查询特性特地设想合用的数据模型和措置体例。

(3)HybridXMLDatabase(HXD),即异化XML数据库。按照利用的需求,可以视其为XEDB或NXD的数据库,典范的例子是Ozone(参阅http://www.ozone-db.org/frames/home/what.html)。

XML文档有两种范例:面向文档措置和面向数据措置,”。面向文档措置的文档是操纵XML来获得自然(人类)说话的那些文档,如用户手册。它们以复杂或无法则的布局和异化内容为特性,并且文档的物理布局非常首要。这些文档的措置侧重于给用户供应信息的终究表示,是以它们也被称作面向表示的文档。面向数据措置的文档首要操纵XML来传送数据,这些文档包含发卖订单、病人记录和迷信数据等。面向数据措置的XML文档的物理布局,如元素的依次,或数据被存储为属性还是子元素,凡是不是很首要。它们的特性是高度有序的布局,并且同时带有那些数据布局的多个正本,近似于关系数据库体系中的多条记录。这些文档的措置凡是侧重于利用法度间的数据互换,是以它们也被称作面向动静的文档。这两类文档偶然也简称为面向文档的(XML)文档和面向数据的(XML)文档。

面向数据措置和面向文档措置的XML文档之间的辨别不年夜,但是文档上需求履行的操纵是不一样的。在一个面向文档措置的XML文档中,需求履行的操纵包含检索全部文档、搜刮关头词、点窜一部分或重排一部分。在一个面向数据措置的XML文档中,需求履行的操纵包含检索文档的一个指定部分、搜刮元素和数据的一个特定的连络、点窜或删除一个简朴的元素或一块简朴的数据,或给文档增加一个新元素。

1.3 XML数据库研究的问题

与传统的关系数据库办理体系(RDBMS)一样,XML数据库办理体系也要处理XML数据的存储与查询措置问题,即存储引擎与查询引擎(同关系引擎一样,将其称为x-引擎)。在X—引擎中首要研究XML数据的查询分化与优化,包含XML数据查询的代数表示,同关系代数一样。将其称为x-代数。

2 XML数据库的存储战略阐发

首要问题是若何存储XML文档才是最好的?因为底层的存储表达对下层的查询措置和优化有着首要的机能影响”。是以,要实现XML数据库,起首必须处理XML文档的存储问题。按照已有的文献[3—6],XML数据库的存储战略目前首要有以下三种:操纵文件体系的平面文件、操纵成熟的RD-BMS、操纵工具办理器或面向工具数据库办理体系(OOD—BMS)。

2.1 文件体系的平面文件体例

XML文档本质—亡是序列化数据。序列化数据凡是采取平面文件的情势,即将每个XML文档别离存储在一个文本文件里”,并且实现一个查询引擎,当查询被履行的时候,XML文件被剖析成驻留在内存的一棵树。只需查询计较还需求树中的节点,这棵树就必须驻留在内存里。一般来讲,剖析的时候摆布着查询计较的时候,并且这类体例慢得令人无法接管。为了进步这类体例的可用性,必须建立以下索引:操纵XML元素在文本文件中的偏移量作为ID,建立从标识表记标帜tag(Parent_off-set,Tag)映照到子偏移量Child_offset的途径索引和从标识表记标帜tag(Child_offset,Tag)映照到父偏移量Parent_offset的反向途径索引,这两个索引非常无益于遍历XML文档或在XML文档中进行导航。而其他的索引建立从标识表记标帜值(Tagname,Value)或属性值(Attribute_name,Attribute_value)到元素偏移量Element_offset的映照,这些索引有助于计较查询中的挑选前提(谓词)。查询引擎可以操纵这些索引检索与查询相关的XML文件的片段,极年夜地减少体味析时候”。平面文件数据库最年夜长处就是容易实现,并且不需求利用数据库体系和存储办理器。但是,操纵平面文件存储XML文档也有以下错误谬误:

(1)每次拜候XML文档时都需求剖析它;

(2)在查询措置期间,全部被剖析的文件都必须驻留在内存里;

(3)为了部分化决上述两个问题,可以在XML文档上建立外部索引。但当XML文档被更新时,索引是难以保护的。

2.2 传统的关系数据库体系体例

除平面文件以外,还可以将XMI。文档存储在传统的关系数据库体系里。比来的研究服从说了然若何将XML文档映照并存储到关系数据库体系中。这类体例的错误谬误是以后关系数据库体系与XML的负载不调和,并且经由过程诸如SQL的接口拜候XML数据会招致与存储无关的分外负担。

2.2.1 操纵关系的DTD体例

操纵关系的DTD体例是文献[6]建议的共享内嵌法,并且需求呼应DTD的支撑。用一个自力的表来捕获具有不异标识表记标帜的元素与其子元素集之间的包含关系,表中的每个元组都被付与一个ID,并且该表还包含一个ParentlD列以标记该元组的父亲节点。一个元素在描述它的元素表中只能呈现一次,并且它的父节点内嵌为表的一列以便表示该元素的傅沧。如果描述XML文档形式的DTD图中包含环,则必须用一个自力的表来突破这个环。在这类环境下,XML数据库的索引可以完整建立在上述各个关系表上。

2.2.2 操纵关系的边的体例

文献[4]描述了边的体例,将XML文档的有向图存储在单个Edge表中。遵循广度优先依次付与有向图中每个节点一个独一的ID。Edge表中每个元组对应有向图里的一条边,并且包含该条边所连接的两个节点的ID值,目标节点的标识表记标帜(Tag)值和一个/顷序号,该依次号表示同一节点与其多个子节点对应边的依次编码。当元素只需一个文本子节点时,文本内容就内嵌到以该元素节点为目标节点的边所对应的元组里。

遵循文献[4]的建议,建立在(Tag,数据)上的索引可以缩减挑选查询的履行时候。而建立在(源节点,依次号)和(目标节点)上的索引也非常首要,前者用来查找给定元素的子元素,后者用来从给定的子节点向父节点遍历。

在Edge表上应用丛聚战略对查询的机能也会有首要影响。一般都会挑选遵循Edge表上的Tag字段进行丛聚,使得具有不异Tag的元素存储在一路。当然也能够挑选遵循“源节点”字段进行丛聚,这类战略的好处是一个XML元素的所有子元素都存储在一路,是以重构原始的XML文档将非常快。但它的错误谬误是具有不异标识表记标帜名的元素没有被丛聚,是以对如许的查询:“把专业是计较机迷信的所有门生都挑选出来”将会导致年夜量的随机I/O。而建立在Tag字段上的丛聚则表示出了较好的机能,但它对XML文档的重构没有任何好处。

2.2.3 操纵关系的属性体例

文献[4]还建议了别的一种所谓的属性体例。它是按Edge表的Tag字段对边表退路程度分别,不合标识表记标帜(指Tag字段的值)的元组存储在各自不合的表里。这类体例以捐躯Edge表非常首要的属性Tag为代价而节流了存储空间。对属性体例来讲,查询措置器需求DTD来决定哪些表包含子元素,因为子元素的标识表记标帜没有存储在表中。需求重视的是,对有很多XML文档的一个年夜集,属性体例可能导致年夜量的表。

2.3 工具办理器体例

在工具办理器里存储XML文档的较着体例就是把每个XML元素存储成一个自力的工具”,但是因为XML元素凡是都非常小,是以这类体例的空间开消高得令人不敢问津。取而代之,把XML文档的所有元素存储在一个伶仃的工具里,而XML元素本身就变成了这个工具里的轻量级工具。同时,文献[2]用1w_object,即记录来表示轻量级工具,而用file_ob-ject表示代表全部XML文档的工具。轻量级工具(1w_obiect)在文件工具(hle_object)中的偏移量(Offset)被用作该工具的标记(1w_oid)。

3 不合存储体例的阐发与比较

3.1 不合存储体例的优错误谬误比较

顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):数据库 XML
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣