Word排版素材长文档.docx_第1页
Word排版素材长文档.docx_第2页
Word排版素材长文档.docx_第3页
Word排版素材长文档.docx_第4页
Word排版素材长文档.docx_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XML文档的存储技术 (南开大学滨海学院 天津) 摘 要 XML及其相关技术日益渗透到计算机科学的各个层面,为了实现XML的潜能,XML的有效存 储是一个必须首要解决的技术环节。本文综述XML数据在关系数据库、对象数据库及原生数据库中的存 储,并对这些存储方法进行了评述。 关键词 XML;模式映射;对象数据库;原生数据库 A Survey of Techniques for Storing XML Documents Dong Huanzhi (Computer Center Inner Mongolia University Science and Technology BaoTou 014010) Abstract XML and related technology has obviously affected almost every field of computer science. To realize XML potential,its effective storage is firstly faced technology. This paper introduces XML storage with database system and native database as well as makes comments upon these approaches. Keywords XML;schema mapping;object-oriented database;native XML database 1 引言 XML(Extensible Markup Language)已发展成为WEB上数据描述和交换的标准。为实现 XML在数据管理、交换与共享中的潜能,XML的有效存储是一个必须首先要解决的技术环 节。按数据存储系统的不同,大体可分为如下3种方案: (1)在文件系统中的文本文件方式 存储XML; (2)在数据库系统(关系或对象数据库)中存储XML; (3)开发XML专用库 (XML Native Database)的所谓“自然”方式存储XML。本文主要讨论XML在关系、对 象以及专用数据库中的存储。 2XML在关系数据库中的存储 XML关系存储的核心是XML文档到RDB (Relational Database) 的模式映射 (Schema mapping) 方法。XML与RDB在语法、结构与约束的众多方面均存在许多异构性。本文介绍了两种典型 的XMLRDB的模式映射方法。 2.1 XML文档及其模式 XML数据的组织单位是XML文档。一个XML文档是由元素组成的,元素用标记来标识与 界定。一个元素又可以包含内容、嵌套若干个有序的子元素,元素还可以拥有若干个无序的 属性(如图1所示) 。从文档管理的角度来看,XML是一种结构化文档标记语言;从数据的 角度来说,XML是通过语义标记来说明数据的语义(如图1中,标记 说明的是数据 的意义即电话号码) ;文档内容和显示相分离,使得数据具有独立性,文档的显示是由 XSL(eXtensible Style Language)完成的。 XML具有可扩展性,即XML文档中的标记可以由开发者自己定义,用来定义这些标记、 XML文档结构以及语法的语言就是XML文档模式语言。 至今已经提出多种XML文档模式 语言,如DTD、XML Schema、XDR、SOX、DSD等。其中,DTD(document type definition) 是最早也是最成熟XML文档模式语言(如图2就是图1的DTD) ,它定义了一套规则去控 制XML文档的结构(即决定存在哪些元素和属性,它们在何地出现,出现多少次,元素如 何嵌套,元素和属性如何结合等问题) 。DTD既可被指定为一个文件与XML主文档分开, 称为外部(external)DTD;也可包含在XML文档内部,称为内部(internal)DTD。一个XML 文档具有相关的DTD,文档的元素符合DTD中定义的规则,该文档视为有效的(valid);一 个XML文档也可不带DTD,但符合XML语法,该文档视为格式正确的(wellformed)。图1 XML文档 图2 DTD文档 2.2 典型的XMLRDB模式映射方法 目前,XMLRDB的典型映射方法有两类: (1)用固定的RDB模式存储XML数据:定义 固定的关系模式直接存储XML半结构化实例数据; (2)从文档模式定义导出RDB模式: 对XML文档模式定义中的语法进行分析、简化、转换,产生关系模式。 2.2.1 用固定的RDB模式存储XML数据 该映射把XML文档模型化成一个有序的带标记的有向图(如图3是图1的有向图) 。在图 中, 每一个XML元素用带有标识符id的结点表示, 元素与子元素的关系用子元素的名字命 名的有向边来表示,每一结点的出边都是有序的,叶子结点表示属性值或元素值。 该技术共有 6 种映射方法,即3种存储边的方法和2种存储叶子方法的组合。 2.2.1.1 映射边 (1) 边方法: 存储图中所有的边存放在一张称为边表的表中。 表的结构: Edge (source , ordinal , name , flag , target),其中source表示边起点对象的ID,ordinal表示边的顺序号,name表示 边名, flag表示标记边是否指向叶结点, target表示边的目标对象的ID。 表的主键是 (source , ordinal)。 (2) 二元方法:存储所有同名的边到一张表中。表结构:Aname (source , ordinal ,flag , target) (各参数意义及主键同前) (3) 通用表:用一张统一的表存储所有的边,相当于外连接所有的 Attribute表。表的结构: Universal ( source, ordinaln1 , flagn1 , targetn1 ,ordinaln2 ,flagn2 ,targetn2 ,. . ), 其中, n1, n2 ? 为边名。 2.2.1.2 映射值 (1) 单独值表: 为每一数据类型建立一张单独的表 ,称之为值表。 表结构为: Vtype(id , value) 其中type表示数据类型,id表示由映射自动产生的叶结点的标记。(2) 内联方法:值和边存储在一张表中。由于需要为每一不同的数据类型建立一列,从而表 中存在许多空值。 从映射生成的RDB数据库的大小、重构XML文档所需的时间、执行不同的XML 查询等 方面对六种方案进行比较分析,发现二元法和内联方法相结合是最优的映射方案。 该技术有利于存储那些没有文档模式的XML文档 ,不需要用户参与映射过程 ,该方法也比 较简单,对于任何XML文档都映射生成一个固定的关系模式,不过生成的关系模式不是数 量众多,包含大量的空值,就是在查询时需要执行大量的连接操作。 图3 XML文档的有向图 2.2.2 从文档模式定义导出RDB模式 映射首先对DTD进行简化,然后将DTD表示为DTD图(如图4为图2的DTD图,其中结 点代表元素、属性和操作符,边表示父子关系,且每一元素在图中仅出现一次,属性和操作 符出现次数与在DTD中相同),然后依据 DTD 图并利用如下两种技术建立关系模式。 (1) 共享内联技术:为DTD图中入度大于1或等于0的元素节点(如:purch_order)建立 关系,入度等于1的元素节点(儿子节点为“*”的节点除外,如itemlist)内联到其它元素 关系中(如:add内联到customer) , “*”的儿子元素节点(如item)单独建立关系,相互 递归的元素节点选择其中之一单独建立关系;(2)混合内联技术:它在上述技术的基础上进 行了改进,将DTD图中节点入度大于1、但不递归、不经过“*”到达的节点元素内联到其 它元素中。所有的关系都由映射自动赋予id属性,非根元素对应的关系都有parentid属性 (parentid是外键,指向父元素),且存在order列指明元素在兄弟元素中的顺序。 从文档模式推导出关系模式最大的不利在于它无法处理没有文档模式的XML文档,而且现 实中的文档模式是非常复杂的, 该技术只能在对文档模式做了一些简化工作之后, 才能推导 出关系模式。图4 DTD图 2.3 关系数据库对XML数据进行存储的优劣 关系型数据库具有完备的并发、事务和安全控制,同时也是应用最普及、用户最熟悉的一种 数据库, 在现有的关系型数据库上存储XML文档能保留已建立的应用成果。 但作为完全结构 化的模型,关系型数据库仍然不太擅长于层次化的数据,同时由于增加了XML Schema和数 据库的映射,因此处理XML的性能相对于Native-XML数据库有所下降。 3. XML在对象数据库中的存储 3.1 面向对象的数据库 数据源内容如下: 面向对象的数据库OODB(ObjectOriented Database)中,最基本的概念是对象。任何一 个系统是由若干个对象和这些对象间的相互作用构成,其中对象由数据和操作两部分组成。 对象具有自主性、封装性和动态性。对象可以是现实世界中任何有意义的实体,每个对象有 一个唯一的对象标识OID(Object Identifier) ;具有相同结构和行为的对象组成类,类中每 个对象为类的一个实例。 面向对象的概念可作为建立复杂数据库和程序的基础, 其封装和继承这些现象对象的概念隐 含着强有力的数据类型设施; 面向对象的方法可自然地表示嵌套对象, 很容易表达层次数据, 还可以方便地构造各种数据类型。面向对象概念的引入使OODB系统解决了以下两个基本 问题: (1) 支持核心的面向对象数据模型和诸如封装性、继承性、多态性等性质。 (2) 扩充传统数据库的语义、语法,使OODB与面向对象数据模型融合,成为独立于应 用程序的新型数据服务手段。 3.2 对象数据库中XML的存储结构对象库中XML文档数据的存储主要是数据存储的类型和存储模型的选择。目前,对象库中 对XML文档数据的存储模型有两种:(1)用通用的、用于半结构化数据的存储模型,例如 OEM(Object Exchange Model)或DOM(Document Object Model) 。这样做的好处是存储模 型具有通用性,便于移植和模式扩充;缺点是有冗余,访问效率不高。 (2)对每个DTD制 定特定的存储模式,这样冗余小,访问效率高,但移植性和扩充性差。 XML文档和数据库是信息不同的表现形式,为了能够将信息从XML文档转移到数据库, 需要将XML文档结构映射成数据库的结构。下面的步骤将XML文档映射成数据库中的对 象: (1) XML文档是一个树状结构,按深度有限的原则从树叶往树根搜索; (2) 每碰到一个内部节点(除去叶节点和根节点) ,查看数据库中对应的抽象数据类 型是否已存在,若不存在,则创建对应的抽象数据类型,该抽象数据类型应将这个节点的所 有直接子节点作为它的域; (3) 重复上一步骤,直到根节点的直接子节点(称之为次根节点) ; (4) 创建基于次根节点所对应的抽象数据类型对象,该对象就是根节点对应的对象; (5) 最后将XML文档中各元素的属性值填入对象中的相应域。 3.3 对象数据库中对XML文档存储的优势 在OODB中,复杂的类结构以及类之间的继承关系,很灵活的解决了关系数据库存储XML 数据的弱点。 (1)数据不具有严格的规律性,不是非常严格地符合某一个模式。在关系数据 库中处理不规则的数据是一个非常困难的问题。 (2)数据的结构经常会发生变化,数据元素 的类型会发生变化,在关系数据库中处理模式变化也是一个非常困难的问题。 4. XML在原生数据库中的存储 4.1 原生数据库 原生数据库(Native XML Database)是为管理XML文档专门设计,可以提供比简单文档存 储系统更多的特性。和数据库系统相同的方面是,它支持:事务、安全性、多用户访问、编 程接口、 查询语言等。 唯一的区别在于: 它的内部模型是基于XML而不是关系型模型或其他。 NativeXML数据库是完全用来存储和操作XML数据的数据库, 其中的数据可以通过XML 和Xpath、XSLT、DOM等相关标准来访问。NativeXML数据库使用什么形式存储数据并不 重要, 但底层数据表示形式必须维持完全的XML结构和相关的元数据。 基本存储单元是一个 XML文档, 存储数据时不需要进行XML和数据库的映射转换。 原生数据库的最基本的特点是: (1)为XML文档(而不是文档中的数据)定义了一个(逻辑)模型,并根据该模型进行存储 和检索。 有XML文档作为基本的(逻辑)存储单元,好比关系数据库有表行作为基本的(逻辑) 存储单元。无需特定的物理存储模型。 4.2 XML在原生数据库中的存储 XML数据在NativeXML数据库中的存储形式可分为两种方式:基于文本的存储方式和基于 模型的存储方式。 (1) 基于文本的存储方式 基于文本的Native-XML数据库将XML存储为文本,同时为这些XML文档建立索引,使得数 据库的查询引擎能方便地在多个XML文档的任意节点之间跳跃。 这种数据库的优点是当访问 整个文档或文档片段时, 具有很高的查询速度。 但当要将数据以一种不同于原文档层次结构 的方式取出时,性能就不理想了。 (2) 基于模型的存储方式 这种方式首先为要存储的文档建立一个内部对象模型并保存这个模型。 例如将XML文档以文 档对象模型DOM的形式保存,那么数据库表可以分类为元素表、属性表、表等。 与基于文本的存储方式一样, 基于模型的存储方式也不适用于取出的文档结构与存入的文档结构不同的场合。 4.3 NativeXML数据库的优劣 NativeXML数据库专为XML设计, 随着XML在Web上的应用日益普及, Native-XML数据库 将在基于XML的Internet搜索引擎、需要快速产生输出的电子商务系统、电子数据交换、 以及内容个性化方面得到广泛应用。而对Native-XML数据库最主要的批评是针对其性能, 在最坏情况下,如果查询目标位于一个大型XML文档的结尾,Native-XML数据库必须遍历 整个XML文档。 结论 本文对XML数据在关系数据库、 对象数据库及原生数据库中的存储进行了介绍和评述。 然而, 由于XML通用的数据表示能力、XML文档是否有模式定义、XML的文档数据两重性及其 在不同的应用目的与领域,使得XML的存储问题至今难以找到一种通用的“最佳”解决方 案。这一问题的解决有赖于由标准化组织制定的XML标准的出台。 参考文献: 1 薛俊义, 刘琴, 许卓明,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论