您好,欢迎来到刀刀网。
搜索
您的当前位置:首页XML

XML

来源:刀刀网
维普资讯 http://www.cqvip.com 第39卷第7期 计算机研究与发展 Vo1.39.No.7 2002年7月 JOURNAI OF COMPUTER RESEARCH AND DEVEI OPMENT July 2002 XML数据的结构化处理方法 施伟斌①②孙未未① 施伯乐① 0(复旦大学计算机与信息技术系 上海200433) 0(上海理工大学电子信息工程系 上海200093) (1y008 1 36@online.sh Cn J 摘 要越来越多的数据采用XML格式表示和交换,对XML数据的有效访问方法是目前需要解决的关键问题 之一.对通过面向对象数据库系统访问XML数据的方法进行了讨论,提出了将XML数据映射到对象模型的规则 以及建立XML数据的OODB模式的方法.为了建立高效地访问路径提出了一种XML数据的结构索引,并介绍了 利用结构索引实现基本的数据操作的方法.实验结果表明,提出的方法具有较高的效率. 关键词XML,数据模型,面向对象的数据库,模式,结构索引 中图法分类号TP311 A METHoD FoR STRUCTURIZATIoN oF XML DATA SHI Wei—Bin①②,SUN Wei—Wei①,and SHI Bai—Le ̄ ①(Department of Computer and Information Technology。Fudan University,Shanghai 200433) 0(Department of Electronic Information Engineering.University of Shanghai for Science and Technology,Shanghai 200093) Abstract In this paper,the authors discuss a method for accessing XML data through object— oriented database system.They propose rules for mapping XML data to object model and a method to establish OODB schema for XML data.They also give a method to create a temporary DTD by extracting structure information from XML document on the need of schema building.In order to establish efficient access path,the authors put forward a structure index for XML data, and introduce a method of implementing operations based on structure index.Experiments with real—life XML documents indicate that this method iS effective. Key words XML,data model,object—oriented database,schema,structure index 化的模式_6],然后实现XML数据的查询.对于有环 引 习 的情况所建立的模式可能非常庞大,文献E7]提出了 改进的方法,但也损失了精确性.文献[8]介绍了半 XML正在被广泛接受成为Web上表示和交换 结构化数据与OODB集成的方法,所实现的系统 数据的新的标准.XML允许用户自定义描述内容 Ozone是建立在对象数据库系统O 之上,其中对半 的标识,因而可用于以文本格式保存结构化的数据. 结构化数据的处理主要采用LORE系统中的方法. 如何有效地访问大量的XML文档中的数据是近来 不少研究采用关系数据库的方法[3 ,将XML数 研究的一个热点l_1 ].一些研究(如LOREl_2])采用 据保存在关系数据库中,利用关系数据库系统的查询 半结构化的模型,通过抽取结构信息来建立半结构 机制实现对XML数据的查询.由于关系模型不支持 原稿收到日期:2001—04—24;修改稿收到日期:2002 04—02 本课题得到国家自然科学基金资助(6993301O) 维普资讯 http://www.cqvip.com 820 计算机研究与发展 复杂类型的属性,因此采用这种方法处理XMI 数据 从关系和通过IDREF(S)属性定义的引用关系是 存在一定的局限性.一个文档通常被转换为多个表, XMI 元素之问的两种主要关系.由于子元素和引 元素与表之间的关系不够直观,查询常常涉及多个表 用元素的访问方法不同,为了便于查询处理应对这 的连接,导致效率降低.文献Es]讨论了将XMI 数据 两种关系加以区别.为此,我们对ODMG的对象模 映射到关系或对象一关系数据库的优化处理方法,为 型进行了扩展,增加两种特殊的联系,即从属联系和 了避免模式过于庞大,只将一部分数据转换到数据库 引用联系.次序是一种特殊的关系,对于某些应用 中,其余数据仍然保存在XML文档中.文献Es]没有 (如定义规范的文本)对象间的次序是重要的.为了 考虑无DTD的XML文档的处理,并且忽略了元素 表示次序关系应定义指向相邻的兄弟对象的联系, 间的次序.W3C提出的文档对象模型DOM 由于所有的XMI 元素对象都具有这样的联系,因 (document object mode1)为处理XMI 的应用定义 此可以在OODB中定义一个类型Xobject作为所有 了标准接口.DOM是按XML文档的存储结构来描 XMI 对象类型的基类.在Xobject中定义如下联 述对象间的关系,不便于实现复杂的结构化查询. 系:①precede:指向前趋元素对象,②succeed:指向 本文提出将XMI 数据映射为对象数据库 后继元素对象. (OODB)的方法,主要基于以下考虑: <?xml version一“1.O”?> (1)面向对象的模型支持复杂数据类型,因此 <!DOCTYPE articledir SYSTEM“articles.dtd”E 可以方便、直观地建立XMI 数据的对象模式,进而 (!ENTITY art—info SYSTEM“info.xml”>]> 利用对象查询语言(()QI )实现对XMI 数据的结构 (articledir> 化查询. (article id=“artO01”references一“art004 art005…”) (2)面向对象的方法已普遍地应用于软件开发 (title}Including group—by in query optimization</title> (author name=“Surajit Chaudhuri”/> 的各个阶段,OODB能够与面向对象的程序设计方 (author><name>Kyuseok Shim<name> 法无缝结合,因此OODB很有可能成为未来数据库 <from>Microsoft(/from>(/author> 的主流.以一致的方法访问XMI 数据和OODB中 <abstract>…(/abstract> 的数据无疑将使应用系统的开发得到简化. (/article> 本文首先给出将XMI 数据映射到ODMG的 8Lart—info; 对象模型_1 o]的规则,然后介绍利用DTD(document </articledir> 图1 文档1 type definition)或XMI Schema建立XML数据的 OODB模式的方法.由于规范的(well—formed)XMI 除了定义所有XML对象类型共有的特性(包 文档不一定有DTD,因此,本文讨论了从无DTD的 括属性与联系)和方法,Xobject也表明了其子类的 XMI 文档中抽取结构信息建立临时的DTD的方 特殊性(即作为XMI 数据),从而便于系统以不同 法.与已有的一些研究口 不同的是,我们主要考虑 于常规对象的方法存取XML数据. 了查询的需要,从而使问题得到一定的简化.为了实 XML在元素内容模型的定义方面具有正则表 现对XMI 数据的结构化访问,需要建立有效的访 达式的描述能力,这也导致XML数据在结构上的不 问路径.为此,本文进一步提出一种XMI 数据的索 规则性.图1是一个关于文献目录的XMI 文档的例 引形式——结构索引,并介绍了利用结构索引实现 子(以下简称文档1).其中,两个(author)元素的结 基本的数据操作的方法.实验结果表明,本文提出的 构显然是不一样的.另外,元素的属性也具有不同类 方法具有较高的效率. 型和缺省声明(如REQUIRED,IMPI IED,FIXED 等),XML文档中还可以使用实体,实体又分为已析 2数据模型 的和未析的、内部的和外部的等等,这些特性在将 XML数据映射到对象模型时都需要予以考虑. XMI 数据由一组严格嵌套的元素构成,一个 针对XML数据的上述特点,我们提出以下规则: 元素可以有若干属性和子元素.显然,将XMI 元素 (1)元素被映射为一个对象.同一类型元素的 映射为对象是非常自然的.我们采用ODMG的对 对象属于相同的对象类型; 象模型(OM).按照ODMG的标准,对象类型问的 (2)元素与其子元素的嵌套关系被映射为相应 关系用联系(relationship)表示.元素与子元素的主 对象的从属联系.由父元素向子元素的遍历路径 维普资讯 http://www.cqvip.com 7期 施伟斌等:XMI 数据的结构化处理方法 821 (traversal path)以子元素名称命名,反向遍历路径 以“parent”命名,将基数大于1的目标映射为I ist (如果对象之间有次序)或Set.兄弟元素之间的次 序关系映射为联系precede和succeed; (3)复杂的内容模型可以通过定义附加的类型 并结合复杂对象类型(如Struct,List和Set)来描 述.例如,对于以“(口,(6,c)+)*l(口,6)*”形式描 (comment)和CDATA段予以忽略. 例如,按照以上方法,文档1中的article元素可 以映射为以下(如图2所示)类型的对象,与采用关系 模型的方法相比(见文献[3,4]等),这样的映射显然 是较为直观的. 3 XML数据的对象模式的建立 在数据库系统中,模式定义了数据的类型和组 述的内容模型,除了将元素a,b,c映射为3个类型 外,再为(6,c),(口,(6,c)+)以及(口,6)各定义一个 类型,这样处理可以为查询带来便利.例如假设这些 元素的父元素为e,则通过附加类型可以方便地实 现以下的一般路径的查询: select P.(口6). 成关系等约束条件,是表达查询和查询优化的基础. 为了通过对象数据库系统查询XMI 数据需要建立 XMI 数据的0ODB模式.XML数据是多样的,按 照约束条件的不同可以分为仅满足规范性约束的数 据、有效的数据和遵从XML Schema的数据.对于 不同类型的数据需采用不同的方法建立其OODB 的模式. 3.1根据DTD建立XML数据的OODB模式 当然,系统开销会由此增加,这样的查询也并非 总是需要的,从灵活性角度考虑,可以由用户决定是 否为复杂的内容模型建立附加类型; (4)元素的数据内容被映射为元素对象的 string类型的属性; 描述文本结构是XML应用的一个重要方面, 例如W3C发布的XML1.0标准也有XMI 格式的 (5)根据不同的类型,元素的属性可以被映射 为对象的属性或联系: 版本l_1引.对于文本密集的应用,对象的组成与引用 关系是模式中的核心内容,DTD的语法较简洁,并 兼容SGMI ,可以预期在未来较长的一个时期内 ①字符串类型、ID和枚举类型的属性被映射 为相应对象的属性; ②类型为IDREF或IDREFS的属性被映射为 相应对象的引用联系.由于在这种类型的属性的声 明中并未定义所引用的元素类型,因此需要根据 XMI 数据的内容进行推测; ③属性值类型为ENTITY或ENTITYS的属 DTD仍将是定义XMI 数据模式的重要手段.对于 声明了DTD的XMI 文档可以根据DTD中定义的 有关元素类型、元素的属性、组成与引用关系等方面 的结构信息建立XML数据在()ODB中的模式. 由于DTD原本是用于定义SGMI 文档的类型, 而SGMI 主要用于描述文本数据的结构,因此DTD 性被映射为指向相应实体对象的联系; (6)对于REQUIRED和IMPLIED类型的缺 不具有完善的数据类型定义功能.对此可以借鉴 I ORE[2 中的方法,在查询处理过程中通过强制类型 转换实现不同类型的数据的操作.还可以按照类型转 省声明无需特别处理,但对于FIXED声明的信息应 予以保留,因为这样的属性总是以唯一的值出现. ODMG的OM中无此概念,ODL中也没有类似的 声明机制,因此需要作适当扩展,具体方法是: 在属性的定义中增加一项用于描述缺省类型 换规则对某种类型(如字符型)的数据按另一种类型 (如整型)建立部分值索引以提高数据访问效率. 根据DTD建立XML数据的OODB模式的方 法是直观的:为所有元素类型建立相应的对象类型, 根据元素的内容模型建立从属联系,根据引用属性 建立引用联系,根据属性列表建立对象类型的属性 等.图3为文档1的DTD中元素article的定义,根 (增加的内容以加粗字体表示.其余部分略,详见文 献L1o3): <attribute—spec)::一[attribute]<domain— type)[[size]]<attribute—name)<default—type) (default—type>::一[fixed] 据文档1的DTD建立的对象模式中对象类型 Article的定义(以0DL描述)如图2所示. (7)将未析实体映射为一个对象,具有相同符 号(NOTATION)声明的实体被映射为同一对象类 型。将已析实体作为替换文本复制到每一个引用它 的位置; 由于一种元素类型仅对应于模式中一个对象类 型,而元素实例的数量总是大于或等于元素类型的 数量,因此,模式中对象的数量不会大于库(XML (8)处理指令(processing instruction),注释 文档)中对象(元素和实体)的数量.与采用标注的有 维普资讯 http://www.cqvip.com 计算机研究与发展 向图模式的方法相比 引,建立对象模式的代价是较 低的(见第5.1节). interface Article:Xobject{ extent articles; 如(n,b+,c).其它类型的次序为非确定的次序,如 (n,b*,c)或a,(6【c).对于非确定的次序,对象的前 趋(或后继)类型只有在运行时才能确定,因此,在 TDTD中一律作为无序处理. 属性类型的判别是比较困难的,串类型(string type)与记号化类型(tokenized type)及枚举类型 (enumerated type)的属性在形式上并无差别,根据 其特征进行判别不仅开销较大,而且很难保证准确. 我们只对一些特殊的情况进行判断,即对于名字为 “ID”(忽略大小写,下同)或以“ID”结尾的属性通过 attributre String id; relationship Articledir parent; relationship Sub Title title; relationship Sub List(Author)author; relationship Sub Abstract abstract; relationship Ref List(Article>references } 唯一性检查确定其类型,如果满足唯一条件则确定 图2对象类型Article的定义 <!EI EMENT article(title,author+,abstract)> 为ID类型,否则为字符数据.名字为“IDREF”和 “IDREFS”的属性通过分析属性值确定其类型,并 只确认唯一类型的引用.其它情况一律作为字符数 据处理. <!ATTLIST article id ID#REQUIRED) <!ATTLIST article references IDREFS#IMPLIED> 图3文档1的DTD中元素article的定义 3.2无DTD的XML文档的结构信息的提取 图4 TDTD中一个元素的结构 在实际中有很多数据是没有DTD的,例如通 过自动工具从已有的数据库、HTML页面等资源中 转换而来的数据_l .对于无DTD的XML文档首先 为了表示元素间的次序,在TDTD中每个元素 类型都包括指向前后元素类型的指针及表示前后次 序的标志F。,F (如图4所示),当元素E的前趋元 素类型是确定的时候,F。一1,此时,P。指向的元素 即为E的前趋元素,否则F。一0,P。指向的元素并 不作为E的前趋,同理,F ,P 用于确定E的后继 要根据文档的内容推测出各元素类型的内容模型, 这一过程的结果是产生一个DTD,为了与事先定义 的DTD相区别以及叙述的方便,本文称这种DTD 为临时的DTD(以下简称TDTD). 定义1.(临时的DTD):通过提取无DTD的 元素类型.以下给出一个用于建立TDTD的算法. XML文档的结构信息而建立的DTD. 如前所述,在DTD中是以正则表达式的形式 来描述元素的子元素的结构,因此,建立ll缶时的 算法1.建立XML文档的临时的DTD. 输入:无DTD的XML文档D; 输出:该XML文档的TDTD. ①CreateDTD(D){ DTD就是要根据元素的内容推测出描述其内容模 型(content mode1)的正则表达式.由于一组内容可 能存在很多候选的内容模型,因此需要确定一个最 佳表达式. 一② ③ CreateNewDTDElmt(E );//在TDTD中建立 一个新的元素类型, :D的根元素. Queue1.Add(E );//Queuel:队列对象.用于实 现宽度优先的遍历. 般认为最佳表达式应是最简洁的表达式,求 ④ While(Queuel非空){//遍历所有元素,在 TDTD中建立文档中包括的全部元素类型. 解这样的表达式是一个NP完全问题_1¨.因为建立 TDTD的目的是为了建立XML数据的对象模式并 最终为查询服务,所以可以根据查询的需要来确定 ⑤ 取出Queuel的队首元素E。; ⑥ ⑦ 对于 的每一个子元素E。{ if(TDTD中不存在E 的类型) CreateNewDTDE1mt(E ); 元素的内容模型,从而使求解TDTD的问题得到简 化.对于查询而言,所需要的主要信息是元素具有哪 些子元素、子元素的重复次数(以确定是1:1的联 ⑧ else{在&所属类型的实例集中添加E。作为 一个实例;} 系还是1:M的联系),以及确定的次序.另外,效率 是需要考虑的一个重要因素.这里,将XML元素的 ( Queue1.Add(E );}} ⑩ ⑩ 对于TDTD中的每一个元素类型 { 对于 。的每一个实例E{ ParseContent(E.);//分析E的内容; 次序分为两种类型,确定的和非确定的次序.确定的 次序是以顺序表定义且表中没有“?”和“*”操作符, 维普资讯 http://www.cqvip.com 7期 施伟斌等:XML数据的结构化处理方法 823 多 ModifyContentModel(丁 );})//修改7’ 的 结构信息建立OODB的模式,这里不再赘述. 内容模型. } 4 XML数据的结构索引 算法1分为两步,首先(第②~⑨)按宽度优先 的方式遍历所有元素,在TDTD中为每种元素建立 XMI 数据的基本存储结构是按前序线性存储 一个元素类型并为每种类型建立一个实例集合.然 的树,一般情况下直接遍历源数据的访问方法是低 后(第⑩~⑥)对于每种元素类型依次分析实例集合 效的.为此我们设计了结构索引作为访问XML数 中的每一个实例的内容,根据分析的结果修改元素 据的一种有效手段.结构索引以oid为键,采用hash 的内容模型.ParseContent的功能是按照子元素和 存储方式.在结构索引的索引项中保存了对象的属 属性在一个元素中出现的频率和次序确定该元素的 性、双亲、第1个从属对象、兄弟以及引用对象的指 结构.为了提高判断IDREF(s)属性的效率,可在第 针(如图5所示).对象名、属性名及联系的遍历路径 1步中按ID属性值建立一个索引表,索引项中包括 名均采用名称标识符,这有利于减小存储空间以及 指向属性所属的元素类型的指针.由于忽略了非确定 降低比较操作的开销. 的次序和组合结构,因此求解一个元素类型的内容模 型时对该类型中的每个实例只需分析一次,即运行时 间为O(n),其中 为该类型元素实例的数量. 在数据密集的应用中XML元素的内容模型一 般较简单,采用算法1可以较准确地求出数据的结 构.虽然多数情况下属性值的类型按字符数据处理, 但是如第3.2节所述在查询处理过程中不同类型的 数据的操作可采用强制类型转换的方法实现.对于 文本密集的应用,XML数据中元素的内容模型可 能较为复杂,采用算法1建立的TDTD与数据实际 的结构可能存在一定的差别.不过利用对象的 precede和succeed联系以及结构索引(见第4节) 同5 XML数据的结构索引中一个索引项的内容 能够按正确的次序访问数据,因此由算法1建立的 结构索引所占用的空间主要由对象的总数、各 TDTD能够满足建立模式的需要. 个对象的属性与引用联系的数量决定,而与对象的 3.3 根据XML Schema建立XML数据的ooDB 从属对象的数量无关.假设对象的数量为Ⅳ,第i个 模式 对象的属性及引用联系的数量分别为na 和 则 XML Schema是较新推出的标准,具有强大的 结构索引的大小可以表示为 类型定义功能.可以在XML Schema中定义原型, N 从而实现封装、继承等面向对象的方法.XML CS一∑((,=1  口 + +1)×size + Schema本身也采用XML格式编写,从而方便了数 2size2+(nr1+3)×size3+na ×size4), 据的建立和处理.XML Schema克服了DTD的许 其中,size  ̄size 分别为名字标识符、数字量、对象 多局限,有望在数据密集的应用中取代DTD成为 标识符及偏移量与长度的大小. 定义XMI 数据模式的主要手段. 利用结构索引可以快速地检索对象的属性、双 XMI Schema与OODB的模式较接近,因而根 亲、从属与引用对象等,从而有效地实现投影、连接 据XML Schema建立XML数据的OODB模式更 等基本的数据操作.作为一个例子,下面介绍利用结 加方便.在XML Schema标准中提供的基本数据类 构索引实现路径连接操作的方法. 型(如int,float,string等)与对象数据库系统中的 在XML数据的查询语言中(参见文献[13,1C 相似,因此可以直接地采用XML Schema中的定义 等),路径表达式用于表示对象间的从属与引用关 或转换为接近的类型.在定义元素的组成与引用关 系.在查询处理过程中,路径连接是代价较高的操 系方面,XML Schema与DTD的功能相似,可以采 作.所谓路径连接指的是在给定路径上具有祖先 用与第3.1节类似的方法根据XML Schema中的 后代关系的对象间的连接.例如对于图1所示的 维普资讯 http://www.cqvip.com 824 计算机研究与发展 数据,Q1查询标题为“Including group by in query 其中,Ⅳ为输入集合中对象的数量,n为输入路径的 长度. 为各数据路径上第 ( 一1,…,n)个结点的 平均出度,包括所有从属与引用联系, 。一1.k 为 选择因子,即与输入路径的第 个标注匹配的联系 optimization”的文章所引用的文章的作者: Q1:select Y from articledir.articlex z.reference.author Y where,32.title 。 =“Including group—by in query optimization”. 的数量占联系总数的比例,k。一1.ns 为各数据路径 上第 ( 一1,…,n)个结点的从属对象数量的平均 值.t ,t 分别为查找索引项和比较操作的时间.显 然,对于规则的数据(即各条与输入路径匹配的数据 路径中对应结点具有相同的出度与选择因子)算法 2的运行时间为o(Ⅳ),即运行时间与输入集合中对 为了求解Q1可以首先求出标题与查询条件匹 配的对象集合5 ,然后执行路径连接操作,求出所 有5 中的对象所引用的文章的作者集合5 .由于 通用路径表达式(general path expression)可以改 写为简单路径表达式m ,因此,本文主要讨论针对 简单路径表达式的路径连接.下面给出利用结构索 引实现的路径连接算法. 算法2.基于结构索引的路径连接TDT—Path— Join(自顶向下方式). 输入:S 为对象标识符集合;P为输入路径,P—z 1 … 为标注名称的标识符; 象的数量成比例(显然也与结果中元组的数量成比 例).很多实际的数据都是比较规则的,因此可以近 似地按o(Ⅳ)估算路径连接的运行时间. 5 实验结果 我们设计了一个实验系统XAS(XML—oriented Access System),目前实现了XML数据的对象模 输出:S 一{(o ,0 )l o Po 是源数据中的一条数据路 径,01∈S1}. 式的建立和基于结构索引、路径索引及数字模式的 多种数据访问操作.XAS采用VC++6.0开发,使 用微软的解析器MSXMLo解析XML文档.实验中 所采用的测试数据包括自编的文档和网上获得的实 ①② ⑧ ④ ⑤⑥ 对于S 中的每一个对象O { S3一{o1}; for( 一1; ≤ ;i++){ 对于S。中的每一个对象0{ 0 一o.firstchild; while(o。!一NULL){ //遍历各从属对象,查找与1 匹配的对象. 际的XML文档,部分实际数据的情况如表1所示. 其中DB1,DB2具有引用属性(注:DB2只取了 DBLP的一部分,包括4273个文档,约4.6MB.并 在inproceedings元素加入了ID和IDREFS属性), 因此是图结构的,DB3,DB5为树结构的数据.DB4 ⑦ ⑧⑨ if(o .name一厶)S4.Add(o ); 0 一o .sibling;} 对于0的每一个引用联系r{ //查找与1 匹配的引用对象. 中包括大量小的测试文档,我们主要用于分析 TDTD与数据原有DTD及元素实例结构的吻合情 况.下面介绍与本文有关的部分实验结果.实验在微 机上进行,主要配置为Pill 733CPU,384MB内存, ⑩ if(r.TrvsPath—name 1) S4.Add(r.Target);}} ⑩ ⑥ (@ S3一S4;5 4.Clear; if(S3.Count—O)break;} if(S3.Count>O){5一{(o1,o2)l02∈S 3}; S 2一S 2US;}} 操作系统为Windows NT. 表1实际的XML数据 编号 内容 XMI 标准1.0 库DBLP 来源 http://www.w3.org/TR ttp://www.inf0rmat。 ik.uni。 _lrier_de/~ev/db/・ /~ /db/ 自底向上的路径连接的实现方法与算法2类 似,限于篇幅不再给出.当结构索引保存在内存中 时,算法2的运行时间与输入集合中对象的数量、路 径长度、路径上结点的出度以及选择因子等有关,可 以近似地表示为 N 机文献h莎士比亚戏剧测试数据集 http://www.ibiblio.org/bosak/xml/eg/ http://www.oasis-open. org/。 。。rg 0urces  CT一∑∑(( 川k川+nS )× I=1 J=1 R ecord目录http://www.acm.。 g/siacm.or/s gmod/record/xmJg 。d/ 。。rd/ l t1+( ,一1k,一1 ,)×t2), ①http://www.microsoft.com/xml 维普资讯 http://www.cqvip.com 7期 施伟斌等:XML数据的结构化处理方法 825 吣 叫 吣 叫 叫 吣 1 2 3 5 6 7 5.1 XML数据的OODB模式的建立及与基于有 和两者的建立时间是比较接近的,而对于图结构的 数据(如DB1,DB2等)Dataguide中的对象数量较 多,甚至超过源数据中对象的数量(如DB1,DB7), 建立时间也显著大于OODB模式的建立.对于不同 类型的XMI 文档采用本文的方法所建立的对象模 向图的模式的比较 我们分别按照本文所介绍的方法和文献[7]的 方法实现了XML数据的OODB模式和基于有向图 的模式Dataguide的建立,通过实验对两者做了比 较.部分实验结果如表2所示,其中DB6,DB7为自建 的文档.从表中可以看出,对于树结构的数据(如 DB3,DB5)OODB模式与Dataguide中对象的数量 式总是远小于源数据的规模.由此可见,本文所提出 的建立XML数据的OODB模式的方法是较为有 效的. 表2 XML数据的OODB模式与Dataguide的比较 否 否 是 是 否 否 ∞\堕H 5.2基于结构索引的数据操作 我们采用具有不同的特点和规模的数据对基于 结构索引的数据操作的性能进行了初步的测试.下 面介绍部分实验结果,仍以路径连接为例.根据第4 节的分析,连接操作的时间与连接的对象的数量、路 speaker进行连接.由于数据为树结构的,结点的入 度为1,而出度较大,因此自底向上的方法效率较高. 第2种情况使用自建的数据,路径上包括引用联系, 结点的入度较大(平均为10),自顶向下的方法明显 优于自底向上的方法.在两种情况下,随着数据规模 的增加,不同方法的运行时间均近似线性地增大.采 径的长度及结点的出度(或入度)等有关.为了测试 操作时间与数据规模的关系,我们分两种情况进行 用不同特点的数据所做的实验进一步显示了运行时 间与数据路径结构的关系,与第4节中分析的结果吻 合,限于篇幅,不再给出详细的实验结果. — —了实验:①路径长度固定,改变路径两端目标集中 对象的数量.②改变路径长度,但路径两端目标集 中对象的数量不变.实验结果如图6、图7所示.其中 TDT表示自顶向下的连接方法,BUT表示自底向 TDT x 上的连接方法.第1种情况使用的数据为莎士比亚戏 剧,我们将hamlet.xml复制为多个不同大小的文 档,分别对各文档中所有scene对象及其后代 60 +BuT / / / / / 卜TDT ▲ 50 x—BUT 一 . -.-_ 40 ∞ \ 堕30 留 20 10 ,∥/ /  5 10 15 20 25 30 35 40 45 50 路径长度 图7运行时间随路径长度变化的情况 0 2 5 7 9 12 14 16 18 21 23 25 28 30 6 结束语 本文提出了一种XMI 数据的结构化处理方 连接结果中元组的数量/10。 图6 运行时间随连接的元组数量变化的情况 法,为实现对XML数据的结构化查询奠定了基础. 维普资讯 http://www.cqvip.com 826 计算机研究与发展 2002正 实验结果表明本文所提出的方法是较为有效的.与 基于有向图的模式相比,XML数据的对象模式较 简洁;与采用关系数据库的方法相比,将XML数据 映射到对象模型更加直观和方便.有关XML数据 的对象模式的维护问题我们已在另外的文章中进行 了讨论l1 ,对此我们还将做进一步的实验研究. 参 考 文 献 1 l0 R G G Cattel1.The Object Databases Standard:ODMG一93. San Mateo,CA:Morgan Kaufmann,i994 11 M Garofalakis,A Gionis,R Rastogi et a1.XTRACT:A system for extracting document type descriptors.In:Proc of 2000 ACM SIGMOD Int’l Conf on Management of Data. Dallas。Texas,2000.165~176 12 T Bary,J Paoli,C M Sperberg—McQueen.Extensible Markup Language(XML).http://www.w3.org/TR/REC—xml 1 3 S Abiteboul,D Quass,J McHugh et a1.The lorel query language for semistructured data.International Journal on Digital Libraries,1997,1(1):68~88 M Marehiori.Proe of QL’98一The Query Language 1 4 D Chamberlin,D Florescu,J Robie et a1.XQuery:A query language for XMI W3C working draft.World Wide Web Consortium,Tech Rep:WD—xquery 20010215,2001 Workshop.Boston,Massachussets,1998.http://www.w3. org/TandS/QL/QL98/ 2 R Goldman,J McHugh,J Widom.From semistructured data to XML:Migrating the lore data model and query language. In:Proc of the 2nd Int’l Workshop on the Web and Databases 15 J McHugh,J Widom.Query optimization for XML.In:Proc of the 25th VI DB Conf.Scotland,1999.315~326 16施伟斌,孙未未,施伯乐.XML数据的对象模式的动态更新. 软件学报,2001,12(增刊):323 ̄328 (Shi Weibin,Sun Weiwei,Shi Baile.Dynamic update of (WebDB’99).Philadelphia。1999.25~30 3 D Florescu,D Kossmann.Storing and querying XML data using an RDBMS.Bulletin of the Technical Committee on Data object—oriented schema for XML data.Journal of Software(in Chinese),2001,12(Supp1):323~328) Engineering,1999,22(3):27~34 4 Shanmugasundaram,G He,K Tufte et a1.Relational databases for quering XMI documents:Limitation and opportunities.In: Proc of the Int’l Conf on Very Large Data Bases(VLDB).San Francisco,CA:Morgan Kaufmann,1999.302~314 5 施伟斌男,1967年生,博士研究生, 主要研究方向为面向对象的数据库、万维 网与数据库. M Klettke,H Meyer.XML and obiect—relational database systems Enhancing structural mappings based on statistics. In:Proc of the 3rd lnt’1 Workshop on the Web and Databases (WebDB 2000).Dallas,Texas,2000.63~68 6 R Goldman,J Widom.Dataguides:Enabling query formulation and optimization in semistructured databases.In:Proc of the 23rd Int’l Conf on Very Large Data Bases.San Francisco,CA: Morgan Kaufmann,1997.436~445 孙未未男,1973年生,博士,主要研 究方向为面向对象的数据库、移动数据库. 7 R Goldman,J Widom.Approximate dataguides.In:Proc of the Workshop on Query Processing for Semistructured Data and Nonstandard Data Formats.Jerusalem,lsrea1.1999 施伯乐 男,1936年生,教授,博士生 导师,主要研究方向为数据库理论及应用. 8 T Lahiri,S Abiteboul,J Widom. Ozone:Integrating structured and semistructured data.1 998.http://www—db. stanford.edu/l0re/pubs/data.html 9 郑仕辉,周傲英,季文云等.基于SQL的XML查询的有效实 现.计算机研究与发展,2001,38(4):422 429 (Zheng Shihui,Zhou Aoying,Ji Wenyun et a1.Effective evaluation of XML queries with SQL statements.Journal of Computer Research and Development(in Chinese),2001,38 (4):422~429) 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务