首页 > > > XML在关系数据库中存储技术研究.pdf

XML在关系数据库中存储技术研究.pdf

XML在关系数据库中存储技术研究.pdf

上传者: 贺伟 2011-12-26 评分1 评论0 下载29 收藏10 阅读量124 暂无简介 简介 举报

简介:本文档为《XML在关系数据库中存储技术研究pdf》,可适用于专题技术领域,主题内容包含譬iz参疆魄。雾囊号UI)£每组:缡号:埘”带幽恭譬硕士学位论文XML在关系数据库中存储技术研究叶开珍哥一*矗盟P弥:叶小平副教授##!计算机款件与符等。

譬iz参疆魄 。 雾囊号 UI)£ 每组: 缡号:埘7” 带幽恭譬 硕士学位论文 XML在关系数据库中存储技术研究 叶开珍 哥一-*矗盟P,弥:叶小平副教授 #-#! 计算机款件与理论 二帅t4十一H=十=L: XML在关系数据库中存储技术研究 计算机软件与理论 叶开珍 叶小平副教授 摘要 HTML作为Internet上传统的描述语言,随着网络应用的深入其局限性逐渐显 现,XML已经成为互联网上数据表示和数据交换的标准格式。随着XML数据的增加, 如何有效地存储和管理XML文档成为一个非常重要的问题。目前主要的存储方法有: XML原生数据库、面向对象数据库、关系数据库等。关系数据库由于技术成熟、应 用广泛成为目前研究的热点。早期大多数研究是基于DTD模式开展的,但DTD缺乏 对文档结构、属性、数据类型等约束的足够描述。另外由于XML数据和关系数据在 组织上的差异,对于多值元素、递归元素以及混合内容元素的映射等难点问题也一 直没有得到有效的解决。 因此,本文开展了基于XSD模式的XML文档到关系数据库的存储技术研究。论 文的主要工作包括: (1)在借鉴基于代价的p-Schema存储模型的基础上,提出了E-Schema存储模 型。E-Schema是与XSD等价的XML模式文件,主要对P-Schema从以下方面进行改 进和扩展:一是消除了多值元素、可选择元素、嵌套元素;二是保留了约束信息, 如关键字、唯一性等等。 (2)实现了从E-Schema到关系模式的映射和XML文档到关系数据库的存储。 E-Schema因为结构简单,保留了约束信息,因此可以更加容易、更加准确地映射到 关系模式。 最后从实验上证明了E-Schema的可行性和有效性。 关键字:XML:存储:关系数据库:XSD TheStudyofXMLStorageTechniqueinRelationalDatabase ComputerSoftwareandTheory YeKai.Zhen AssociatePro£YeXiao-Ping ABSTRACT HTML,asatraditionaldescriptionlanguageontheInternet,itslimitednesshas becomemoreandmoreapparentwiththedeepUSeofwebapplications,XMLhasakeady becomethestandardformatfordatapresentanddataexchangeontheInternet.Butwith theincreasingUseofXMLdata,itisanimportantproblemofhowtostorageandmanage theseXMLdocuments.Threemainmethodsareasfollow:nativeXMLdatabase, object.orienteddatabaseandrelationaldatabase.Relatinnaldatabasehasbecomethe dominantapproachUptonowaccordingtoitsmaturetechniqueandwideapplications. ThemajormappingmethodsexistednowuseDTDasitsschema,butDTDhcksabilities describingXMLdocument’Sstructure,attributesanddatatypesefficiently.Moreover, duetothegreatdifferencebetweenXMLdataandrelationaldatainstructure,some difficultproblemssuchasmulti—valueelementmapping,recursiveelementmappingand mix—contentelementmappingarenotresolvedeffectively. Inthisthesis.IfocusontheresearchofXMLdocumentthatisbasedonXSD storedinrelationaldatabase.Theprimarytasksofthepaperareasfollows: (1)Basedonthecost-basemappingmodelP—Schema,IbringforwardE-Schema. E—SchemaisanequivalentexpressionofXSDandhasmadesomeimprovementand expansiontoP.Schema.Oneisaboutmulti-valuemapping,recursionmapping,theother isconstraintpreserved,suchaskeyanduniqueness,ere. (2)CompletethemappingfromE—SchematorelationalSchemaandtheloading fromXMLdocumenttorelationaldatabase.Becauseofsimplicityandsemantic preserved,E—Schemacanhemappedintorelationaldatabaseeasilyandefficiently. Atlast,E—SchemaisprovedtobeefficientandfeasiblethroughExperiment. Keywords:XML;storage;relationaldatabase;XSD 论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名.叫彳晦 同期:硼年?/月码日 f ’ 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学校有权保 留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸质版,有权 将学位论文用于非赢利目的的少量复制并允许论文进入学校图书馆、院系资料 室被查阅,有权将学位论文的内容编入有关数据库进行检索,可以采用复印、 缩印或其他方法保存学位论文。保密的学位论文在解密后使用本规定。 学位论文作者签名:、才力才 吼砰『『月碍日 导师签名: 计J.予 1 月吁朋年J1, 扒期日 1.1研究背景 第1章绪论 HTML(HyperTextMarkupLanguage,超文本链接标记语言)作为Internet上 传统的描述语言,取得的巨大成功有目共睹。但随着网络应用的深入其局限性逐渐 显现,如难以扩展、缺乏交互性、缺乏语义性定义等等。人们需要一种能够结构化 地表示信息并支持网络跨平台应用和数据交换的标准网络语言,来满足各种应用和 通信的需要。可扩展标记语言(eXtensibleMarkupLanguage,简称XML)正是在这样 的背景下诞生的。 1998年2月,WorldWideWebConsortium(W3C)协会正式推出了XML,这是 一种可以用来创建标记语言的元语言,是SGML(StandardGeneralizedMarkup Language)的一个精简子集。它保留了SGML的一些特点,并克服了HTML的局限性。 相对于HTML,)(ML主要有如下优点: 具有良好的可扩展性。HTML的标记是预定义的,具有固定的名称及语义,不 能扩展;而XML的标记可由用户定义,可以被任意地扩展。XML允许开发各种不同 专业(如音乐、化学、数学等)的特定领域的标记语言。有了这些语言,这个领域 的实践者们可以自由地交换短文、数据和信息,而不必担心对方是否利用特殊的、 专用的软件来创建数据。目前已经开发出了一些特定领域的标记语言,如MathML (用于数学领域的一种标记语言)。 提供了一种灵活的数据描述方式,实现了结构、内容和显示相分离。文档类型 定义(DTD)或XML模式(XMLSchema)描述了XML文档的结构,即元素间的嵌套关系。 而)(ML文档实例只描述数据,使得数据具有独立性。XML文档的显示具有多样性, XML文档的显示是由XML文档配合XSL(eXtensibleStyleLanguage)来完成的, 因此对同~个xML文档可以根据应用的需要以不同的风格显示。 具有自描述性。XML文档通常由文档模式描述文件和实例文件组成,前者用于 描述XML实例文件所能使用的标记、标记的结构、标记的含义等,而实例文件则使 用这些预定义的标记描述数据。因此XML中的标记一方面限定了元素的层次结构, 另一方面也说明了元素的含义。这使得XML具有机器可读性,具体应用可以按照 各种方式解析、过滤及重构XML文档。 简单易于处理。XML足够简单易于阅读和编写,又易于被应用程序处理,这使 锝它成为在不同的应用闻交换数据的理想格式。 支持高级搜索。因为可以知道文档内容的结构和含义,所以很容易在XML文档 中进行搜索。在Internet上如果网页是XML格式的,则不仅可以搜索数据,还可 以在搜索中加入与数据相关的上下文信息,这样搜索会更加精确、高效。 综上所述,xML的优点在于采用简单、柔性的标准化格式表达数据和在应用程 序间交换数据;XML的强大之处在于将用户界面和结构化数据相分离,允许不同来 源的数据无缝集成以及对同一数据的多种处理。因此,XML正迅速取代HTML成为网 上数据表示和数据转换的标准格式。然而XML对数据的处理能力却相当有限,如快 速查找、修改等。随着互联网上XML文档的急剧增加,如何对XML文档进行有效的 存储和管理成为一个急需解决的问题。对XML数据存储管理技术的深入研究将有力 促进企业的信息化和电子商务的发展,具有巨大的应用前景和经济效益。 1.2研究现状及存在问题分析 1.2.I国内外研究现状 随着网络上XML数据的广泛应用,人们开展了许多有关YJdL文档存储的研究工 作。按数据存储系统的不同,目前主要有以下几种存储方法:基于文件系统的存储; XML原生数据库;XML使能数据库;混合数据库。下面简要介绍各种存储方法的优 缺点。 (一)基于文件系统的存储 , 此种方法直接把XML文档作为磁盘文件进行存储,是最简单但缺点也最多的一 种存储方法。当要进行数据查询、更新等操作时,效率极为低下。所以要实现对XML 数据查询、更新等数据管理功能,一般不考虑直接以文本文件的方式存储。 (二)XML原生数据库(NativeXMLDatabase,NXDB) NXDB是专门对XML格式的数据进行存取管理的数据库系统,兼有一般数据库的 特性,例如支持事务、并发控制、查询语言、安全机制、二次开发接口等。基本存 储单元是XML文档,这种数据库维持原有文档的数据结构和相关的元数据,而不关 心数据的底层存储格式,只能通过XML特有的相关技术对数据进行存储。由于内部 2 采用的是标准的瑚L格式,存储时不需要进行格式的转换,因而可以充分发挥XML 的优势,效率比较高。近年来出现了一些这样的数据库系统,如美国斯坦福大学丌 发的Lore系统lll,德国SoftwareA6公司开发的第一个商用纯XML数据库系统 Taminol2J,dbXMLGroupLLc公司的dbXML,美国eXeelon公司的eXcelon等等。 然而,XML原生数据库缺乏细粒度的数据处理能力,不适合于处理数据集中的XML 文档。同时,这样的系统还不成熟,数据处理的效率也差强人意。 (三)XML使能数据库(XMLEnabledDatabase.XEDB) XEDB是在已有的关系数据库系统或面向对象数据库系统的基础上扩展了XML支 持模块,完成XML数据和数据库之间的格式转换和传输。其基本数据存储单位是XML 文档中的数据而不是XML文档。 l、面向对象数据库 面向对象数据库利用XML给出的类型信息构造类层次结构,该方式的数据模 型更接近半结构化数据模型,并能更好地处理嵌套的集合和顺序,因此,其数据存 储和查询处理可以用来提高XML或半结构化数据处理的效率。一些针对XML的面 向对象数据库纷纷推出,如XMLRepositoryl31是由ozone-db,org开发的一种带有公 开源代码性质的XML数掘库,该数据库建立在ozone面向对象数据库和 MonsterDOM技术的基础之上。但面向对象数据库在数据加载时对未知的数据类型 需要建立新的类对应,这样就影响了加载效率;当XML改变时,数据模式的变动 代价也很昂贵。虽然面向对象数据库的体系结构非常适合存储XML数据,但它本 身还不够成熟完善,限制了其应用范围。 2、关系数据库 在关系数据库中,XML数据是以行和列构成的二维表的形式来存储的。当XML 同关系数据库相结合时,一般需要将XML文档按元素层次结构拆分后依次存入数据 库中的相应字段。显然,这样一来,XML文档的整体性将受到破坏,除非有一个预 先设定的小程序对数据库中数据进行整合,否则XML数据将变成一团糟。 用关系数据库存放XML文档主要有以下优势。首先,同对象数据库和原始XML 数据库相比,关系数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、 易于扩充、易于编制应用程序等优点。关系数据库已发展地非常成熟,能够提供对 大量数据进行高效存取的技术手段。其次,目前大量的数据都是存储在关系数据库 中。现在流行的数据库绝大多数是关系数据库,如SQLServer,DB2,Oracle等都 是第三代的关系数据库。因此如果XML数据能够以关系的形式存放,就可以实现对 数据的统一管理,最大限度地利用关系数据库现有的存储管理、并发控制、恢复、 版本机制等技术来有效地管理数据。因此,XML在关系数据库中的存储成为研究的 热点。 在国外,与关系数据库相关的存储技术引起了从高校科研院所到商业数据库公 司,从政府部门到自由撰稿人的广泛关注{4'5,6,7.8只1o,1。根据关系模式的生成方法, 目前主要有模型映射方法和结构映射方法。这部分内容在第三章有详细介绍。 相比之下,国内相关研究则起始于新世纪之初,一些大学及有实力的软件公司、 科研所都进行了相关的研究。如因科公司的因科)【llL网关【12】,成功实现了XML和传 统关系数据库的实时转化和交互,以及XML文件和VoiceXML、WML等之间的实时自 动翻译等;中科院软件研究所的XML与关系数据库转换系统Xtrans[131也实现了XML 文档到关系数据库数据,以及从关系数据库数据到文档的双向转换。另外也有很多 学者开展了相关的研究【,15,蚓。 许多主流的数据库厂商如微软、Oracle、IBM和Sybase等也都在把XML支持结 合到其产品中,或者提供可在其数据库中使用的XML工具。如:SQLServer2000是 将XML文档存储在关系表中,通过FORXML子句将关系数据库中的查询结果以XML 文档的格式返回,通过使用OPENXML子句将XML数据插入关系数据库。Oracle9i 将XML文档存储为对象关系实例,其优点在于能够支持XML中复杂的数据类型。 Oracle9i还提供XML文档的另一种存储方式,就是以文档方式存储,其不足之处 在于不能够充分利用关系数据高效的存取技术。 (四)混合数据库(HybridXMLDatabase,H)【DB) + HXDB主要是一种系统集成技术,其目的是综合XEDB和NXDB的优点,但其底层 并没有一种统一的数据库模型。OraclelOg中引入的XMLDB技术是HXDB的典型代 表。 综上所述,XML文档数据属于半结构化数据,将它存储在原生XML数据库或 是面向对象数据库是很自然且易于实现的,但XML原生数据库和面向对象数据库技 术还不够成熟与完善,限制了其应用范围。基于关系数据库技术的成熟与其应用的 广泛性,把XML数据存储到关系数据库中是目前研究的热点。 4 1.2.2现有研究存在的不足 通过对国内外大量研究项目及其技术文献的阅读分析,结合作者的研究实践发 现:XML在RDB的存储技术目前仍处于研究阶段,主要存在以下不足: 问题一:国内外大多学者对于XML在关系数据库中存储技术的研究是基于早期 DTD、xML_QL等非XML技术标准开展研究的。随着XMLSchema、XOuery国际标准地 位的确立以及其自身强大的功能,必将取代DTD、XML-QL而得到普及应用。而目前 基于XML—Schema、Xquery的研究仍处于初步研究阶段。因此基于上述标准开展高 起点的研究工作显然是非常必要的。 问题二:基于XMLSchema的映射方法仍然存在很多问题,在映射过程中的问 题主要集中在以下几个方面:如何处理重复出现的元素;如何处理嵌套元素、 递归元素;如何保留数据语义约束信息。由于数据语义约束信息在提取、映射、 转换等方面的困难,造成现有的XML与RDB之间的静态模式映射算法大多只注重数 据结构的正确转换,忽略了数据语义约束的完整保留,而数据语义约束包含了数据 完整性、数据之间的依赖性等重要信息,在数据集成、数据有效性验证、数据语义 完整性等方面具有重要的意义。 1.3论文的主要内容 本论文主要针对XML在关系数据库中存储的上述问题,开展了XML文档在关系 数据库中的存储技术的研究工作。PhilipBohannon在文献【ll】中提到的基于代价的 LegoDB存储系统中介绍了对XMLSchema进行改写的p-Schema(PhysicalXML Schema)模型,’通过分析发现P-Schema有对XML数据提取不够明确、不够完善的 缺点。因此本论文对P-Schema进行改进和扩充,提出了E-Schema(ExtendedXML Schema)模型。 E-Schema是XMLSchema简化后的XML模式文件,它比较好地处理了XSD中的 多值元素、嵌套元素、选择元素,而且一定程度上保留了数据约束信息,对XML的 提取更加明确、更加完善。由于E-Schema结构简单,只包含复杂元素和简单元素, 也使XML文档到关系数据库的存储更加容易、更加高效。最后,根据E-Schema模 型做了相关的模拟实验,从实验上验证了E-Schema模型的可行性和有效性。 本论文的主要研究内容是: 1、对XMLSchema进行结构和语法分析,重新对提取信息分类,从更深的层次实现 对元素信息的提取,使信息提取更加明确。 2、实现在关系数据模型中保留XML数据的约束信息,如关键字、唯一性、默认值 等,使信息的提取更加完善。 3、实现了E-Schema模型到关系模式的映射和XML文档到关系数据库的映射,从实 验上论证了E-Schema模型的可行性和有效性。 但由于时间关系,本论文的研究还存在一些不足之处: 1、XML文档到关系数据库的映射最重要的是XML文档的可恢复性。论文只做了XML 文档到关系数据库的映射,没有对关系数据库到XML的映射进行研究。没有验证映 射后XML文档的可恢复性。 2、本文的模式映射方法是基于固定结构的XMLSchema展开的,没有考虑瑚L Schema变动的问题。当xMLSchema变动时,对应的关系模式也随之变化,如何 调整关系模式以适应变动后的XMLSchema及如何保证存储在关系数据库中的数据 的前后一致将成为下一步工作中要解决的重要问题。 4、实验中的部分算法有待改进,提高其执行效率。 论文围绕为什么做、做什么、怎么做、做得怎样四方面展开论述。第1章介绍 为什么做,第2、3章分析应该做什么,第4、5章介绍怎么做,第6章总结做得怎 样。论文主要章节安排如下: 第1章绪论。介绍了XML技术的优点,通过对目前国内外各种x^lL存储技术 的优缺点进行分析,提出了本文的研究内容:基于XSD模式的瑚L文档在关系数据 库中存储技术的研究。 第2章XML技术。简要介绍论文所涉及到x札技术。 第3章XML在关系数据库中的存储技术。总结了目前XML在关系数据库中的多 种存储技术,同时详细介绍了PhilipBohannon提出的P-Schema模型,分析优缺 点,确定本文的研究重点。 第4章改进的E-Schema模型。针对P-Schema模型存在的缺点进行改进和扩 展,从理论上介绍了E-Schema模型的主要思想。 第5章实验验证。从实践上对E-Schema模型的主要思想进行了验证。介绍了 6 模拟实验中的硬件软件环境、主要技术以及实验主要流程,对实验结果进行了分析。 第6章总结。总结论文的主要研究内容和存在的不足之处。 1.4本章小结 本章主要说明论文的研究背景、研究现状和研究内容。首先介绍了XML的特点, 指出XML文档的存储问题急需解决;接着对国内外主要XML文档存储技术的优缺点 进行分析,提出了XML在关系数据库中存储技术是研究热点。通过对该领域国内外 的研究状况进行分析,指出目前存在的主要问题,从而定位本论文的研究重点,最后 说明论文的研究内容和章节安排。 2.1XML的语法 第2章XML技术 煳L的基本语法十分简单易学,和HTML很相似,但HTML只允许使用固定的标 记,而XML允许创建新标记,来更准确地描述数据。从逻辑上讲,瑚L文档由声明、 元素、属性、注释、字符、处理指令等构成。一个x札文档首先应当是“格式良 好的”,也就是说按照W3C制定的XML标准语法或语义是正确的,格式不是良好的 文档不能被接收处理,浏览器无法正常显示。格式良好的捌L文档简化了解析器 的内部代码,加快了文档解析速度。下面结合图2—1介绍XML的语法规则。这个 例子中出现的逻辑要素有:第1行是XML声明;第2行是注释;第3行是处理指令; 第4—21行是文档中的各个元素。 1 <琶‘11veroioz卢’1.0’encoding=1玎P电’standalm艟I-聃’> 2s <!--editedwith簟XLSPY--> 3‘(々dtwa-"5hpRepⅡt.订> 4I<expense—zepo£tx_1n5:xsi:http://1—_.-3.org/21力aLsche_a-妇t搬e x=i:noH弧e卵aceSch弧aLocatio庐蚀pRep吁t.z|d,detailed:+false’ total-su喊=’556.9’> 5l <Per,on> 6t<First>Pred</Fizst> 7,<Lst>Landiz</Last> 8‘<Title>Pzoject|aPa<lTitie> 9,(.。hone>12Z-4盱7890<协one> 10,<E_aXl>f.1andi嘲anonuli.corn</Email> 11s 《^’erson> 12,<expense--itemtype=’LodtirⅦ’eto=。Sale8’> 13,<Date>2003--OI--01</Date> 14,<expense>122,11</expense> 15, ‘lexpenjrites> 16 <“p眦srit“type=’LodeCug’哪to=。Development。> 171 <Date>2003-0i—02</Date> 18, <expense>122.12</expense> 19,<description>Playedpennyazcade(/descziption> 20,</expense—item> 21=</expense-xeport> 图2-1娜L实例文件ExpReport.xml l、】(ML声明 图2—1第l行是完整的潮L声明,一个xML文档最好以一个瑚L声明作为开始。 XML标记说明它是一个删L文档,version属性表明XML的版本号为1.0,encoding 3 属性表明编码标准,standalone取yes表明该文件是独立的,即没有指定外部的实 体,也没有使用外部的模式;取No表示引用了其它外部)(1lL文件。 2、元素 元素是XYL文档的基本单元。从语法上讲,一个元素包含一个起始标记、一个 结束标记以及标记之问的数据内容。其形式是:<标记>数据内容</标记> 对于标记有以下语法规定: (1)标记必不可少。任何~个格式良好的)【ML文档中至少要有一个元素。但一 个XML文档中有且仅有一个根元素,其他所有的元素都必须包含在根元素之内。图 2—1中expense—report是文档的根元素。 (2)大小写应一致:XML对字母的大小写是敏感的,<Person>和<person>是完 全不同的两个标记,所以结束标记在匹配时一定要注意大小写一致。 (3)起始标记和结束标记应当匹配,结束标记是必不可少的。如<Person>和 </Person>相匹配。当一对标记之『日J没有任何文本内容时,可以不写结束标记。如 <First></First>可以写成<First/>。这样的元素称为”空元素”。 (4)元素应当正确嵌套:子元素应当完全包括在父辈元素中。下面的例子就是 嵌套错误<A><B></A></B>,正确的嵌套方式如下: <A><B></B></A>。 (5)标记命名要合法。标记名应该以字母或下划线(一)或冒号(:)开头,后面跟 字母、数字、句号、冒号、下划线或连字符。”,但是中间不能有空格,而且任何 标记名不能以”xml“(或者”xml”大小写的任何组合,如”XML”、”xML4、”xmL“等等) 起始。 3、属性 属性是依附元素存在的。属性的形式为:属性名=属性值。属性名和元素名有 相同的构造规则,属性值必须包括在引号中。如:Currency=”USI)”。一个元素中可 以有任意数目的属性,但是不允许重复。 4、CDATA段 在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同 仁地当作字符数据看待。CDATA的形式如下:<![CDATA[文本内容]]>。CDATA的 文本内容中不能出现字符串”]]>。,另外CDATA不能嵌套。 5、注释 9 有些时候,人们希望在XML文档中加入一些用作解释的字符数据,并且希望XML 处理器不对它们进行任何处理,这种类型的文本称作注释文本。在XML中,注释的 方法与HTML完全相同,用”<卜一”和L一>”将注释文本引起来。 6、处理指令 处理指令是用来给处理XML文档的应用程序提供信息的,煳L分析器把这些信 息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进 行处理。处理指令应该遵循下面的格式:<?处理指令名处理指令信息?> 2.2XML的模式 ⅫL文档是一种结构化的标记文档。创建)(1lL文档之前,首先要确立其元素和 结构,再根据结构的定义,填入实际的内容,形成一个XML文档。XML结构文件有 两种定义方式,即文档类型定义DTD(DocumentTypeDefinition)和模式定义 XSD(XMLSchema)。 (一)文档类型定义DTD DTD的产生源于SGML,是最早也最成熟的XML文档模式语言。DTD描述了一 个XML文档有哪些元素和属性组成,它们在文档的什么位置出现及出现的次数、 元素的嵌套关系等。但DTD存在如下的缺陷: 1、DTD使用一种完全不同于)【ML的特殊规范来定义XML中的各种符号,不仅编写困 难,还需要专门的解析器,而不能和XML的解析器通用。 2、DTD的数据类型有限,不能够表现数据库中复杂的数据。 3、DTD不支持名域,易与元素名发生冲突,造成一个XML文档只能与一个DTD文档 相对应。如果想引用多个DTD文档,必须通过参数实体进行复杂的转换工作,而且 还很容易出错,这一缺陷对于数据库表之问复杂的关系而言是不可容忍的。 (二)模式定义xSD 在XSD推出之前已经开发了四种模式语言,分别是XDR(删LDataReduced,XML 数据简化)、DCD(DocumentContentDescription,文档内容描述)、SOX(Simple outlineXML,简单XML摘要)和DDML(DocumentDefinitionMarkupLanguage,文 档定义标记语言)。XSD是W3C于2001年5月正式发布的标准,XSD一确定下来, 立刻成为全球公认的首选XML环境下的建模工具。XSD的特点在于: lO l、XSD是用XML语法编写的,使得软件工具可以通用,无需两种装备,同时在程序 编写上将更为方便直接。例如可通过DOM接口访问元素和属性。 2、XSD数据类型更加丰富,可以将元素和属性定义为int、date、Boolean等简 单或复杂的数据类型,此外,还能够自定义数据类型。而DTD除了只能提供很粗糙 的PcDATA数据,不能够提供对复杂数据类型的验证,不提供自定义数据类型。 3、XSD可以随时更新它的内容模型,而DTD的内容模型是封闭的。 4、XSD利用名域将特殊元素和Schema文档链接,使一个XML文件可对应多个Schema 文档,具有良好的可扩展性,可以定义复杂的数据关系。 图2—1所示XML文档对应的模式文件为ExpReport.xsd,如图2—2所示。下面 结合图2—2说明XSD文件的元素构成。 <?rmlversion=’1.0’enco曲j萨’U1下。8"2> <x8:schemaxmlnstxs=飞ttp:/^rw诈3.or‘/21力口包sd埠m,> <xs:elementnae=’expense—repozt’> <xs:annotation> <xs:docmentation>expense—repartistherootelement.</xs:documentation> </xo:annotation> <xs:coBplexType> (xs:sequence> <xs:elementnane=’Person’> <xs:complexType> <xs:sequence> <xs:eleaentna_le=’First。type=’x。:string’> </xs:complexType> </xs:element> <xs:elementzef=。e印ense-item"RaxOcctⅡS=’Ymbounded,/> </xs:sequence> <xs:attributenne=。detailerType=’xu:boole’USe=’requxred’/> <xs:attxibuten强e2’total-guJ’type=,Is:decimal’use=’req血ed,/> <^s:complaxTyDe> </xs:element> 图2-2)0几模式文件ExpReport.xsd 1、schema schema元素是)(MLschema中第一个出现的元素,用于声明该XML文档是一个 schema文档。schema元素具有两个属性,name指定该schema的名称,而xmlns则指 定该schema包含的命名空间。 2、数据类型 XMLSchema支持两种数据类型:简单数据类型(simpleType)和复杂数据类型 f=玉m如艮出“&吼幻n垃M坫坩"培垮缸 (complexType)。complexType类型的元素可以包括子元素和属性,而simpleType 类型的元素既不能包含予元素,也不能包含属性。XMLSchema不但内置了37种简 单数据类型,同时也可以对simpleType和complexType这两种类型傲进一步的扩 充。如可以声明simpleContent,emptyContent,mixContent和anyContent等属 性对元素的内容和结构所做的迸一步的描述。 3、element 在XMLSchema中用(element)来定义元素。在(element)中包括nall]e、type、 minoccurs、maxoccurs等属性。name记录元素名;type表示元素的类型,既可以 是简单类型也可以是自定义的复杂类型;minoccurs和maxoccurs表示元素在xML 实例文件中出现的最小次数和最大次数,默认值均为I。 4、attribute attribute元素用于定义在schema文档中出现的属性。在<attribute)中包括 Flame(属性名)、type(属性的类型)、use等属性。use用来指定属性的默认值,可 以是“Fixed”、“optional”或“Required”,分别表示该属性有一个确定的默认值、 该属性可以有默认值和该属性必须在元素中出现。 5、group group元素用于将x札文档中的元素分组。通过元素sequence可指定该分组中 的元素或子分组的顺序,通过minoccurs和maxoccurs分别指定该分组在XML实例 文档中出现的最少和最多次数。 6、 choice (choice>相当于DTD中的“l”。在<choice>(/choice>中出现的元素或元素维 只能有一个出现在对应的XML实例文件中。 7、 sequence 在XMLSchema中将<sequence></sequence>包括的一系列元素成为一个系列, 系列中的每个成员在对应实例中出现的顺序与其在系列定义中的顺序相同。 8、annotation annotation元素包括documentation和appinfo两个子元素,分别对基本 Schema信息和版权信息及工具、样式单和其它应用程序的信息进行描述。 2.3XML的显示 XML的一个最重要的特征是把内容和显示格式分开。这样做带来很大的好处, 可以让不同的用户按照各自希望的格式显示同一XML文档的内容,这也就意味着XML 文档本身并没有关于格式方面的信息。为XML文档提供格式信息的是样式表。样式 表可以控制文件内容在显示时的版面风格,如页面的边距、各式标题及文字的字体、 颜色、对齐方式等。对同一份XML文档使用不同的样式表就可以得到不同的输出效 果,这特别适合于将文档表示在不同的场合,如显示、打印、出版等。适用于XML 文档的样式表语言有层叠样式表CSS(CascadingStyleSheetsLevel)和可扩展样 式表语言XsL(extensibleStylesheetLanguage)。 (一)层叠样式表CSS CSS是一种比较简单的样式表语言,既可以用于HTML文档,也可以用于XML文 档。CSS用简单的语法描述元素的显示格式,决定了页面的视觉外观,但是不会改 变源文档的结构。而XSL是专为XML设计的样式表语言,它使用XML的语法,但综 合了DSSSL(DocumentStyleandSemanticsSpecificationLanguage,SGML文 件的样式表)和CSS的特点。XSL的优势在它可以用于转换,当然XSL也可以把XML 文档转换为HTML格式。而且同一个样式表可以用于多个具有相似树结构的文档。 (二)可扩展样式表语言XSL 严格说来XSL包含3部分:XSLT、XPath和XSL格式化对象。XSLT是一种 用来将瑚L文档转换成其他类型文档或其它XML文档的语言。XPath是一种对 XML文档进行寻址的语言。格式化对象是将一个XSL转换的结果变成适于读者或听 众使用的输出格式的过程。 XSLT是XSL标准中最重要的部分,它用于将一个XML文档转换成另一个 XML文档或另一种类型的文档,也就是将一个XML文档转换成浏览器所能识别的一 种格式。通常,XSLT将每个糊L元素都转换成一个HTML元素。XSLT还可以向输出 文件中增加全新的元素,或去掉一些元素。它可以重新安排这些元素并对元素进行 分类,测试并确定显示哪些元素等等。 XSLT内部使用扩展的XPath语言来定位XML文档的某个部分。Xpath是为XML 定义的查询语言,它提供在文档中选择结点子集的简单语法,识别XML文档的某个 部分,它还提供了操纵字符串、数字和布尔值的函数。XPath利用位置路径来为XML 文档的不同部分进行寻址,位蜀路径类似于操作系统的目录,提供了指令来定位到 文档中任何地方。位置路径分为绝对位置和相对位置,绝对位置指向文档结构中某 个特定的位置,相对位置则指向文档中某个依赖起始位置而定的位置。例如,XPatb 表达式“../bib/book/@year”表示从文档根开始,选择所有bib子元素,然后 选择bib元素的所有book子元素,最后选择book子元素的所有year属性。 处理XSL样式表的是XSL样式表处理器,样式表处理器接受一个XML文档或数 据,以及XSL样式表,输出特定样式的显示,其显示格式根据XSL样式表确定。这 个处理过程分两步进行,首先,从XML源树构建一棵结果树,这一步称为树转换; 然后,翻译结果树产生所需的显示。XSL的工作原理如图2—3所示。 2.4XML的查询 图2-3XSL的工作原理 xQuery(XmLQueryLanguage)是在xML数据中搜索特定信息的功能强大的新 方法。与XPath2.0的起源相同,XOuery的某些方面与传统XPath表达式看上去 很相似,而其它方面(如FLWR和条件语句)则是全新的。XQuery是XML规范和W3C 建议书之间相互关系的优秀示例。Xquery工作组与XSL工作组还一起负责XPath2.0 工作草案,XPath2.0将包括许多为XOuery开发的功能。除了对XPath的增强外, XQuery还允许您通过嵌套类SOL的子句来创建复杂查询,以及通过将XML构造器直 接包括在输出中来创建复杂结果。全新的FLWR是FoR-LET一删ERE—RETURN的缩写, 它描述了典型XQuery的结构。在FLWR语句中,数据被绑定到变量,然后在后续步 骤使用该变量。例如,使用下面的语句: forSbookin 14 document(”http://刑.bn.com/bib.xml”)//book let$title:=$book/title where$book/publisher=’Addison—Wesley’ return <bookInfo> {$titleJ </bookInfo> 该语句返回原始文档中每个book元素的bookInfo元素,其中book元素的 publisher子元素为“Addison—Wesley”,每个booklnfo元素都有title子元素, 如下所示: <booklnfo> <title>TCP/IP111ustrated</title> </booklnfo> <booklnfo> <tit]e>AdvancedProgrammingintheUnixenvironment</title> </booklnfo> 2.5XML的数据接口 (~)DoM 同HTML一样,XML是层次格式的数据,数据元素可以嵌套在其它数据元素中, 并且数据元素可以依附于它们的属性。lX)M(DocumentObjectModel,文档对象模 型)是由W3C提出的标准化的编程接口。DOM是一组对象的集合,通过操纵这些对象, 程序员能操纵xML数据。利用DOM中的对象,可以对文档进行读取、遍历、修改、 添加以及删除等操作。 DOM最重要的特性是必须将整个文档解析并存储在内存中,以便建立这个数据 结构。这个特性对某些应用程序而言是有影响的,这些应用程序必须在大型的文档 或完整的文档处理结束之后才能运行。另外,许多DOM工具都需要很多内存,一些 甚至需要占用百分之百的内存,远远超过了文档的原始尺寸。DOM对于那些需要对 一篇文档的不同部分重复、随机访问的应用程序来说非常有效。 (一)SAX SAX(SimpleAPIforXML,XML简单应用程序接口)提供了一种对XML文档 进行顺序访问的模式,这是一种快速读写XML数据的方式。当使用SAX分析器对 XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,从而完成 对XML文档的访问,所以SAX接口也被称作事件驱动接口。SAX接口之所以叫做 “简单应用程序接口”,是因为这个接口确实非常简单,绝大多数事情分析器都没 有做,需要应用程序自己去实现。它的基本原理是由接口的使用者提供符合定义的 处理器,XML分析时遇到特定的事件,就去调用处理器中特定事件的处理函数。 SAX和DOM是两种最流行的应用于XML的编程接口,这两种技术的根本差别在 于客户应用程序得到XML文档数据的方式不同。SAX是事件驱动模型,这意味着当 解析器识别出文档特性时,客户应用程序不断地接受到通知。而相反地,DOM模型 是基于对象的,整篇XML文档作为分层次排列的对象来解析和存储,客户应用程序 可以随机访问这些对象。客户应用程序的特性决定该客户应用程序采用哪种方法, 比如XML数据被用作实时消息发送协议,那么事件驱动可能是适合的;然而对于XML 文档用作一个简单数据库的应用程序来说,对象模型可能更适当些。表2-1对SAX 和DOM数据接口进行了比较。 表2-1SAX和D咖的对比 SAX DOM 解析时不从XML文档中存储数据 创建一个位于内存中的文档树副本 不支持对XML文档数据的修改和编写位于内存中的文档树是可以修改的 必须在客户应用程序可用文档树建立 在解析时,文档的数据是可用的 之前解析出完整的文档 2.6本章小结 本章简要介绍了XML的基本技术。首先结合实例介绍了XML的语法规则,比 较了XML模式DTD和XSD的优缺点,接着介绍XML的显示方法层叠样式表CSS和可 扩展样式表XSL;最后介绍了用来对XML进行查询的Xquery语言以及两种最流行 的应用于XML的编程接口DOg和SAX。这些基础概念与知识是本论文研究工作的理 论与技术基础。 16 第3章XML在关系数据库中的存储技术 3.1XML与关系数据库技术比较 从数据管理的角度来看XML数据,XML可看作具有层次结构的半结构化数据, 其组织单位是XML文档。而关系数据库是为存储和管理结构化数据设计的,其存取 数据的模型是扁平的二维关系表。为了更好地实现在关系数据库中存储XML数据, 先了解以下它们各自的特点,文献从多个方面对XML与RDB进行了较为深入的比 较,如表3-1所示。 表3-1Ⅺ也与RDB的技术比较 比较指标 XML RDB 数据存储 文件系统 数据库系统 相 数据访问 不关心物理结构 只关心逻辑组织 似 模式描述 D1’D,XML—Schema 关系模式 性 逻辑接口 SAX,DOM ODBC,JDBC 检索语言 XQuery,XML—QL SQL 安全性 差 具有健全的安全机制 并发访问 无 稳定可靠的并发访问 RDB Internet数据表达的事实 应用情况 现在的主导数据管理方法 的 标准 优 具有发展前景,处于研究应 技术成熟度 技术成熟 势 用状态 操作效率 较低 较高 修改语言 尚无标准规范 SQL XML 语义表达 自描述 数据字典、技术文档 的 优 数据交换范围 纯文本,跨平台 受DBMS和OS限制 势 7 (续表3-1) 需要开发专用程序,才以 Internet应用支持直接的Internet应用 XML 将数据应用到]nternet 的 结构化、半结构化、 描述范围 结构化数据 优 非结构化数据 势 基于命名空间机制,可以唯 名字冲突 无法有效避免 一命名 通过以上的比较可以发现:一方面,XML在数据交换方面的自描述、可扩展性 等优势使其适于充当Internet环境下数据描述标准与异构应用间数据交换载体的 角色。但XML缺乏象RDB那样有效的数据管理手段,存在着数据管理困难、操作效 率低、安全性差的隐患,从而制约了基于XML的数据管理技术的发展和应用。因此 XML客观上需要一种有效的存储、检索和修改等方面的管理机制。另一方面,RDB 在数据管理方面具有数据操作速度快、效率高、安全性好,并发访问控制好、技术 成熟、应用广泛等优点,作为底层数据管理方式具有一定的优势,但客观上需要提 出一种灵活的数据应用方式,以便将数据有效地发布到Internet环境,消除平台 差异、实现更大范围的数据交换与信息共享。把XML技术和关系数据库技术两者结 合起来,就可以充分利用XML与数据库各自的优势,使得数据既能够被有效地管理 又具有与平台无关的可交换性。因此,基于关系数据库的列L存储成为目前研究的 热点。 3.2XML与RDB的映射技术 与关系数据库存储方法不同,XML数据的存储对模式并没有强制要求,因为删L 文档本身已经包含了模式信息,在XML文档中,模式和数据是共同存在的。而关 系数据库中数据的存储必须先有关系模式,在关系数据库中模式和数据是分开存储 的。根据存储时是否使用x札模式(DTD或XMLSchema),基于关系的XML存储 可以分为以下两类:结构映射方法和模型映射方法。 (一)模型映射 对于模型映射,需要将XML文档模型(即文档树结构)映射为关系模式,关系 Ig 模式表示XML文档模型的构造,对于所有XML文档都有固定的关系模式,因此它是 XML模式(或DTD)无关的。具体来说,模型映射有如下两种方法: 1、边模型映射。将一个XML文档看成是一个有序有向边标记图,称为XML图, 设计一个(或者若干个)关系存储XML图的边信息和结点值【41。用来存储边信息的 边表有三种方法:边表方法(Edge方法)、二元表方法(Binary方法)、通用表方 法(Universal方法)。用来存储节点值的值表有两种方法:独立值表方法和内联方 法。三种边表和两种值表方法,合起来一共有六种存储模式。D.Plorescu和D. Kossmann在文献141中对边模型映射的六种基本的存储模式进行了量化分析,认为: Binary边表方法优于Edge边表方法,Edge边表方法又优于Universal边表方法: 内联值表方法优于分离值表方法;Binary边表带内联值表的存储模式能获得最好的 综合性能。为了改进Edge方法查询需要进行大量链接的缺点,A.Schmidt等人提 出Monet边表方法151。 2、结点模型映射方法。设计若干个关系来存储XML文档树的结点信息、结点 值和结构信息(通过区I’BJ编码来译码结构信息,或者直接存储双亲/孩子结点对或 祖先/后裔结点对)。主要有M.Yohikawa等人提出的XRel方澍61和香港科技大学 JiangHaifeng等人提出的XParent方法1邯。 模型映射方法对某些应用来说提供了一定的灵活性,因为当使用模型映射方法 对XML文档进行存储时,不但存储了

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 58
所需积分:1 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!