当前位置:文档之家› 支持XQuery的XML数据库研究

支持XQuery的XML数据库研究

安徽大学

硕士学位论文

支持XQuery的XML数据库研究

姓名:姚吉

申请学位级别:硕士

专业:计算机应用

指导教师:谢荣传

2002.5.31

安徽大学硕士学位论文摘要

摘要

(xML(可扩展标记语言)由于能够有效地表达网络上各种信息,必将成为下一代互联网信息交换的标准.XML数据模型有望成为与关系模型、对象模型并立的数据模型.将数据库与)(hlL相结合,研究】(hfL数据库的理论和技术,是当前教据库研究的热点.小

基于对W3C(万维网协会)的XML和XQuery(可扩展查询语言)规范的分析和理解,本文就)(ML数据库的一个方面——存储和查询——进行了较为深入的研究.首先研究了XML查询语言,提出了支持XQuery的XML查询系统的体系结构和实现方法.其次研究了支持查询的XML数据模型.最后研究了基于关系数据库存储和查询XML的策略,并给出了具体的实现.

在对XML查询语言的研究中,从以文档为中心和以数据为中心这两类)(ML应用需求的分析出发,指出XML查询的基本操作是模式匹配、选择过滤和结果构造,](Query中路径(包括简单路径和正规路径)表达式和FL帆表达式是进行这些操作的典型结构.(按照W3C规范,提出一个XQuery查询的执行应该包括:解析、规范化、静态类型分析、动态计算四个基本阶段和模式导入.XML加载、结果输出三个必要过程.孓

对)【ML的数据模型,我们研究了XML的半结构化特性:自描述、图结构和不规则.然后对比分析了XML常见的树结构模型和图结构模型对XML查询基本操作的影响.最后指出XQuery数据模型是由不同类型节点构成的树结构模型,其中树节点由数据模型中的构造器构造,用数据模型中的访问器访问.缄熟的关系数据库理论和技术,铀定能在IML数据库发展的初期,引导XML数据淬的发展.本文重点研究采用关系数据库支持XML的存储和查询.在关系数据库中存储XML,关键在于合理地设计一组存储)(ML的关系模式.针对这个问题,我们采用的第一种方法是利用XML的模式定义(DTD或Schema),生成关系模式定义——基于模式的方法.我们采用的第二种方法是将)【ML文档的结构(具体来说就是访问路径)连同数据一起保存到事先设定的一组关系表中一—基于路径的方法.进一步,基于以关系形式存储的XML,我们采用一种基于XQuery数据模型的方法支持XQoery,称之为嘲方法.使用DM方法可以对XQuery处理器隐藏底层数据的存储方式,通过调用数据模型中的函数和操作,实现我们基于关系存储的XML对XQuery的支持.

本文主要的贡献是:

i.提出了支持w3c之XQuery语言的XML查询系统的体系结构.该体系结构符合XQuery语言程序执行时需要具备的各种语言特性要求.

2.实现了两类不同的基于关系的XML数据存储.基于数据模型,采用隐藏底层数据存储方式的酬方法,实现了关系存储的XML对XQuery的支持。太

关键词:可扩展标记语言,

查询支持K

XML,database,数据散查询语言,数据模型i关系存储,

XQuery,datamodel,stoting,querying

安徽入学颂l’学位论文ABSTRACT

ABSTRACT

BecauseoftheXML(ExtensibleMarkupLanguage)’scapabilityofrepresenting

variouskindofinformation.itwillbethestandardofexchanginginformationoverthenextgenerationInteract.XMLDataModelishopefultobeacoordinatewithRelationalandObject-OrientedDataModel.OneresearchfoCUSinthedatabase

communityishowcanweintegratedatabasesandXMLtoexplorethetheoryand

technologyofXML.Database.

Inthist}lesis.onthebasisofanalyzingandunderstandingW3c’sspecificationsofXMLandXQuery(XMLQuery).wemainlyinvestigateonaspectofXMLdatabases.

thatisstonngandqueryingXML.First,aprocessingmodelofXQueryqueryengineisproposedfromtheresearchofXMLqueryIanguage.Second.theXMLdatamodeIsarestudiediflordertosupportXML?query.Finally,weinvestigateandimplementtheandqueryingofXMLbasedonrelationaldatabases.

storing

IntheresearchofXMLquerylanguage.weconsidert}lerequirementoftwo

categories(fordata.centricandfordocument-centrie)ofXMLapplicationsandpointoutthatthebasicoperationSin)∞L-queyarepaRemmatching,selectionandfiltering.andresultreconstruction.nlepathexpressionandtheFLWRexpressioninXQueryaretypicalstructtlresthatarecomprisedoftheseoperations.AccordingtoW3C.theexecutionof)aML-queryinvolvesfourintemalphases,i.e.Parsing,Normalization,StaticTypeChecking,andDynamicEvaluation.Italsoinvolvesthreeinput/outputphasesnamelySchemaImport,XM[LLoading.andSerialization.

InstudyofXMLdatamodel。weinvestigatethesemi-structurecharacteristicsofXML:self-describe.graph-basedmodelandirregular.Thenthecomparisonand

andnodelabeleddirectgrapharepresented.analysisofnormal"flee.s'flmclu/emodel

WedrawtheconclusionthattheXQuerydatamodel-satree-likemodelwithvarious

andaecossedbyaccessor.typesofnodes.Thenodesareconstructedbyconstructor

BothofthemaredefinedinXQuerydatamodel.

ItisourviewpointthatXMLdatabaseresearchwillreceivebenefitsfromthe

well.establishedrelationaldatabasetheoryandtechnologyespeciallyinXMLdatabases’earlystage.Forthis“增Son.inoLIrstudy,weuserelationaldatabases

databasesstoringandqueryingXML.T1lekeyproblemofstoringXMLinrelational

ishowtodesignasetoftablecleverlyandrationallyforstoringXML.Tosolvethis

problem,thefkstmethodisthatweuseXML'sDTD(orSchema)togeneratetabledefinitionsforstoringXML—Schema-basedmethod.Analtemativewayweuselsthatwestoreboththedamandthestructure(especiallypath)ofXMLintosevcral

tables--Path-basedmethod.WesupportXQuerybyusingamethodbasingpredefined

onthedatamodel.wecallitDM-method.Usingthismethod,thephysicalstoreofxMLishidfromXQueryqueryengineandthesupportforXQueryisachievedoverrelationaldatabases.

Inparticular,wemaketwocontributions.First,wegivepmccssingmodelofXMLqueryengineaccordingtoW3CXQuerylanguage.Second,weimplementtwomethodsthatcanstoreXMLinrelationaldatabases,andproposeamethodthatcanhiderelationalstoringn埔nnerfromXQueryengine.

1I

』望塞查兰型兰竺鲨塞銎二主!I童

第一章引言

§1.1.研究背景和动机

1.1.1席卷全球的XML技术

网络技术发展到今日,已经渗透到社会生活的每一个角落。而令网络如此平易近人,为大众所接受,单靠抽象的TCP/IP协议、金字塔型的OSI七层模型、蛛网般的光纤、数以百万计日夜运转的Unix和晰ndows主机或者是数十万台冷冰冰的Cisco公司的路由器、交换机是远远不够的。因此,HTML(超文本标记语言)便应运而生,并以其简单精练的语法、极易掌握的易学性,以及处处支持的通用性,使得Web网页可以亲近于每一个普通的网民,互联网也才得以普及发展以至于今日的辉煌。

然而,电子商务、电子图书、远程教育等全新的应用领域如异军突起,迅猛发展并逐渐成为互联网世界必不可少且愈发重要的组成部分,随之而来的是Web文件的复杂化、多样化、智能化,于是,大容量、高信息量、高效率便成为网络信息传输技术发展的追求。与此同时,还有另一种需求变得愈发广泛而迫切,那就是同样的数据能否根据不同用户或者不同需求而以不同的效果、形式表达、再现出来。

1.1.1.1XML的来龙去脉

XML的全名为ExtensibleMarkupLanguage,中文意译为“可扩展标记语言”,它是继HTML之后,新兴的互联网标准。与HTML一样,X】嗵L也源自SGML(全称为StandardGeneralizeMarkupLanguage,是一种老资格的通用标记语言),它保留了sGML80%的功能,而使复杂程度降低了20%。虽然复杂程度下降不多,但是XML却有着HTML语言所欠缺的巨大伸缩性和灵活性。XML是可扩展的,它不再像HTML一样有着一成不变的格式。XML实际上是一种定义语言,它使得使用者可以定义无穷无尽的标记来描述文件中的任何数据元素,从而突破了HTML固定标记集合的约束,使文件内容更丰富、更复杂并形成一个完整的信息体系。

xML是互联网联合组织(W3C)制定的一组规范,以便于软件开发人员和内容创作人员在网页上组织信息。其目的不仅在于满足不断增长的网络应用需求,同时还希望借此能够确保在通过网络进行交互合作时,具有良好的可靠性和互操作性。

安徽大学硕士学位论文第一章引占1.1.1.2XMI.的过人之处

良好的数据格式、可扩展性、高度结构化、便于网络传输是XML的四大主要特点,决定了其卓越的性能表现。由于XML能针对特定应用定义自己的标记语言,使得XML可以在电子商务、政府文档、报表、.司法、出版、联合组织、CAD/CAM,厂商和中介组织信息交互等领域中~展身手,根据不同的系统、厂商、应用提供各具特色的独立解决方案。

使用XML给基于Web的应用系统赋予了强大的功能和灵活性,给开发者和用户带来了许多好处。使用XML,可以在下列方面得到看得见的好处。

●更有意义的检索

●开发灵活的Web应用软件

?异构数据源的集成

●本地计算和处理

?数据的多样显示

●细粒度更新

●Web数据发布

●开放的标准

●丰富的工具

与HTML一样,XML也是网络上的一种通用语言。但是HTML更像一个易用的显示器,简单实用但不精确。XML则不同,它是通过标记(tag)来精确地表现信息的各种含义。通过一些自我解释的标记文本,XML能够让不同的应用系统理解相互的意义。,

XML能够有效地表达网络上的各种信息,为信息的交互和网络计算提供新的载体。XML技术相对于网络计算的作用,完全可以与计算机起步阶段的ASCII码的作用相提并论。XML也可以说是网络信息的标准代码,它表示的不是符号信息,而是知识化的块状内容。这种标准语言虽然不是程序设计语言,但是它代表的却是下一代网络上不同系统之间互操作的光明前景。

1.1..t.3XML的应用领域

XML将对网络进入下一个阶段起催化作用。今后几年的网络上,将出现更智能的搜索引擎,不会在出现你想搜索一个关键词的时候,出现一大堆毫不相干的搜索结果。

网络站点采用XML技术能够实现高度个性化的服务模式,让用户以自己喜欢的方式获取有用的信息。

在商业上,不同的商业系统之间采用相同的词汇表(在XML中,也要定义描述性标记的模式,称为DTD或Schema),进行自动化的电子商务。一家网络商店能够随时自动更新来自世界各地几百家供应商的商品目录和价格信息,并根据商品的类别为网络用户提供最直观的购物环境。另外一种用于电子商务数据交

』望鳖查堂堡圭竺些丝L一一笙=里!!童

换的ebXML,更致力于让商家之间交换各种信息,如电子支付、财务分析、咨询文件等称为自动化的工作。

在科研教育领域,XML能够描述从前人们只能从图形符号上才能理解的复杂公式(MathML)让科学家和普通的学习者都能够从网络上直接交换具有明确意义的学科知识。一种标准的可交换网络教学课程规范(IMS)也正在成为远程教育和虚拟学校的信息表达格式。

在出版行业中,目前正在开发中的电子书标准(e-book),用可交换的描述方式描述数据中的内容和版权信息。今后的购买图书可能都借助一种方便的手持设备或者是移动设备在街头的电子数据下载,就想我们实用ATM取款机一样方便。延续数个世纪的纸质图书和传统出版业将面临巨大的挑战。

此外,今后政府部门之间传递的公文和统计数据也将采用基于XML的标准格式。信息能够有方向地在政府各种只能部门之间传递和过滤,让政府的工作效率大大提高。

XML给网络上的各种应用带来第二次革命性的变化(HTML算得上是第一次革命),在各个应用领域创造出无穷的应用机会。作为中国的计算机应用研究人员,我们应当参与到推动这场变革的XML运动中去。

1.1.2数据库应用遇到的问题

现代企业的信息系统已经开始超越单个企业、单个应用、单个系统的范围,这样的例子包括:企业资源管理,客户关系管理,供应链管理,分销链管理,管理信息系统集成,企业办公自动化系统集成,企业内部网和Intemet连接,企业内部网上应用系统和外部网上应用系统。信息系统集成的本质是信息的载体一数据一的集成,其次是建立在集成的信息上的集成应用,最后形成集成的信息系统。因此,数据集成是系统集成的关键性问题。但现实中的企业数据存在于一些孤立的信息系统中,基本上由不同的开发商实施而成,没有统一的系统规划(由于企业在不同时期的应用需求、或在建设时经费投入有限),结果是系统相互隔离,产生了大量“信息孤岛”,使得内部的应用系统难以共享数据、并支持对数据的高层次应用,更难以利用这些已有的信息支持电子商务等新型企业应用。信息集成的主要问题在于要集成存在于多个数据源上的存在各种差异的数据(异构数据)。传统的数据库系统对于外部数据源的管理能力极为有限,尤其是当所处理数据是不规则不完整、数据模式存在各种差异,甚至没有数据库模式的时候,更是缺乏有效的集成策略。今天,由于半结构化数据模型的发展,更因为XML的流行,使得有可能基于半结构化数据模型的能力集成这些异构数据源。从利用XML来集成异构数据出发,我们应该考虑建立XML数据库。

1.1.3XML和数据库

最普通的XML文件是一些保存在磁盘上的物理文件。但是XML不仅仅以磁盘文件的形式存在。XML除了能够存放在通常意义的文件里以外,还可能是

』型墼查兰塑』苎兰塑坠——

一笙二皇!!直流式数据、数据库查询结果集、以及由应用程序动态产生的结果等形式。因此,我们所说的XML文件实际上是广义的文件,通常称为XML文档。XML数据是XML文件或文档中存储的数据。为简便起见,本文在依据上下文不引起歧义的前提下,XML文件、文档件指的是同一个意思。

1.1.3.1XML数据库的分类

在如何利用数据库存储和管理XML数据的问题上,有两种不同的观点【6】:纯粹派认为,只有以XML原始的格式存储XML的数据库才能称为XML数据库;另一些人认为,只要能存入和检出XML,且它本身又是一个数据库,那它就是一个XML数据库,而不必考虑数据是怎样存储的。我们暂且把两派之争放在一边,凡内部不是以XML格式存储的XML数据库,就叫做“XML.enabled数据库”:如果内部以XML格式存储数据,就称为“native-XML数据库”。

从现有的一些大数据库厂商的产品介绍看,主要的几大数据库提供商,都倾向于采用XML--Enable的数据库。一般都以其原有的关系数据库为基础,并添加XML支持。在xML-Enable的关系数据库中,数据的模型是关系,XML数据也用关系形式来存储。这里检索有两种形式:一种是对XML用XQuery进行的检索,主要基于XPath。Oraclet71和IBMl8】是这种方式;另一种是不直接对XML按路径进行检索,而是完全转换为SQL,微软19]是这样做的。

从网上的一些资料来看,~些中小的数据库商和一些自由软件作者采取了native--XML数据库的办法,典型的代表有native—XML数据库Tamino。native—XML数据库是XML查询引擎,XML服务器和native—XML数据库的复合体。native—xML数据库明确地指出其数据模型是以Ⅺ订L文档为基本(逻辑)存储单元的数据模型。在native—XML数据库的数据模型中还定义了一个XML文档的逻辑模型(逻辑结构),这样对文档和文档中的数据,就可以依据该模型进行存储和查询了。一般来说,这个模型包括XML信息集定义的基本要素:元素、属性、PCDA=rA、文档顺序等等。对native.xML数据库的主要批评之一是性能问题。native--XML数据库对整个Ⅺ讧L文档一次性处理,所以当所检索的信息位于大文档的末尾时,由于缺乏合适的机制,native.XML数据库只能遍历到最后,而关系数据库则可以将文档分成小块同时进行检索,速度当然要快得多。

另一种XML数据库的分类方法142J将XML数据库产品分为:中间件、XML--Enabled数据库、NativeXML数据库、XML服务器、xML应用服务器、内容管理系统、持久化DOM存储、XML查询引擎、XML数据绑定。这种分类方式更细致,但是从文献14习可以看出,Native和Enable之分仍然是最主要的。

从对xML--Enable数据库和native~XML数据库的比较出发,我们认为使用现有的数据库数据模型和产品而不是以原始格式来存储XML更为合适。我们主要出自以下几点考虑:首先,普通的关系数据库和关系模型已尽人皆知,而native.XML数据库是新的:其次,人们熟知现有的关系数据库,也了解它们的行为和性能,而native.XML数据库人们不熟悉,其性能、特别是可伸缩性尚未经过检验;最后,在企业看来。选择关系数据库比较安全的,不到迫不得已用不

二箜丝查!塑生兰!望坚一笙二皇!!童着冒险使用新的native.XML数据库。

1.1.3.2基于关系的XML数据存储和查询

在采用关系模型来存储XdVIL数据时,我们可以利用商品化的关系数据库强大完善的数据管理功能来存储和查询数据。在这种XML--EIlable数据库的背景下,XML数据存储的问题实际上就变成了如何为XML数据设计合理有效的关系数据库存储模式的问题。对这方面的研究发现,解决这一问题的方法一般分为两类,一是将具体的)aⅥL的文件结构转换成关系表,二是将XJVlL的数据模型用一组关系表来表示。第一类研究有STOREDll0】【lIl,第二类研究的文章包括Edge表方法【12】【1mI。

当采用关系数据库作为XML文档的存储机制时,我们必须考虑关系模型和XML数据模型之间的差异,否则就不能保持原来的XML数据的结构和语意。我们要解决的主要问题有:

●xML文件可能没有预先定义的模式(DTD或Schema),而关系模型需

要先定义关系型,然后才能保存关系值。

●XML文件具有关系模型不能直接表示的半结构化特征。例如:数据的层

次结构、元素的顺序等等。这都是我们在设计存储)(1ⅥL文档的关系模

式时需要考虑的问题。

合理的选择一组关系模式来存储)(1订L数据的重要性还在于,查询处理的性能严重依赖于底层数据存储的结构。对原始XML文件的查询实际上是一个有向图遍历的问题,复杂度是指数幂的。研究XML数据的存储模型就是要设计一组关系表,将XML对查询有用的重要信息保存下来,快速响应查询。

当XML数据存储在关系数据库中时,对XML数据的查询就需要转换为对底层关系数据库的查询。如何在关系数据库查询的基础上支持XML查询,是一个值得研究的问题。一般的来说,每种XML数据的关系存储方法研究都涉及到转化成一些关系表的XML数据,如何支持XML查询。许多研究者都提出了相应的支持XML查询的方法,其典型的代表有【lo】…】。此外,还有一种基于关系数据库支持XML的方法是在文献【37】中提出的重构XML视图的方法,在这种方法中,不依赖于底层关系模式,而是采用基于存储在关系表数据,重构XML或重构查询。不同的支持XML查询的策略的特点各不相同的,而且,从我们对现有的两类方法的分析来看,都有一些不足。基于XML数据的关系存储,研究支持XML查询的策略,是一项有意义的工作。

1.1.3.3XML查询语言

出于XMLR益成为Intemet上数据交换的标准,因而人们需要能方便的交换XML数据的手段。XML本身是自描述的数据,并且与平台|无关,所以交换XML数据的途径也应该是与平台无关的。我们不应当直接使用编程语言,如:Java、

安徽大学硕i:学位论文第一章引占

VBScript等等,而是需要一种类似SQL语言的简单、易于编写的XML数据查询语言。XML查询语言最终要的能力是从XML文档中选择并抽取出复杂的模式,然后把查询结果重构成用户需要的新的XML文件结构。

W3C提出的XQuery语言【14]正式针对查询语言这一需求的。XQuery是一种功能强大的数据查询语言。XQuery语言的目标是提供--}ee能够查询XML数据的功能强大的查询语言,同时象关系数据库的SQL语言一样便于使用。XQuery是一种函数语言,同时它是强类型的,所有XQuery语言处理的数据类型借用xMLSchema中的数据类型。XQuery支持的XML文档是所有形式良好的XML文档,不要求XML文档有DTD或Schema定义。它的应用场合包括:

●面向人阅读的文档

对于结构化文档(例如:技术手册),XQuery能够用来检索文档,搜寻文档的结构信息,并用查询的结果构造新的结构化文档。

●面向数据的文档

对于以XML形式表示的数据库数据(这些数据可以是XML数据库中的,也可以是从其它传统数据源中抽取来的),XQuery能够从多个异构的数据源集成数据。这些数据的XML表现形式可以是物理的,也可以是虚拟的,只要底层的数据库支持将数据用XML的形式表现就行。

●混合模型的文档

由于XML的可扩展性和半结构化特性,对于那些既有面向文档的特性,又有面向数据的特性的特殊应用(例如:医疗记录),XQuery要能够支持对这类数据的处理。

●流式数据

XQuery语言处理的XML文档可以是以数据流形式存在的数据。XQuery语言能够以-Wee类似过滤器的方式对数据流中XML数据进行处理。同样还要能够将流式XML数据转化成非流式XML数据。

§1.2.国内外研究现状

数据处理是计算机应用的一个重要方面,数据库是面向数据处理的计算机系统。处理查询的能力是数据库最重要的能力。不论关系数据库、面向对象的数据库还是半结构化数据库,查询数据都是它们要提供的首要功能。XML作为一种新出现的数据形式,其设计初衷就是要从某种程度上解决传统据模型的种种不足,这必然要求XML数据库具有优于传统的数据库的性质,尤其是其存储和查询方面要有不同于以往数据库的特性。

对XML查询语言的研究包括两个方面:易于使用的语言表层语法和功能强大的底层代数模型,这两个方面的研究是相辅相成的。现有的一些研究成果对这两个方面都有探讨。已经提出的XML查询语言有XML--QL¨“,YaTL¨…,Lorell2孔。Quiltt261,XML—GLt271等等。

对于支持XML查询的XML存储模式的研究分为两个阵营,支持xML—Native数据库的研究者和支持XML--Enable数据库的研究者。XML--Native数

二童塑塑:兰兰垡丝苎

笙二里!堕据库将XML文档作为一个整体保存在特殊设计的数据库中,而XML--Enable数据库的研究者倾向于给已有的数据库系统增加对XML的支持来实现对XML存储,支持XML查询。这方面的研究有“元素图方法”[10l,“边表方法”113l,“视图重构’’【37】。

主要的几大数据库提供商,都倾向于采用XML--Enable的数据库。它们一般都是以其原有的关系数据库为基础,在上面添加XML支持。在XML.Enable的关系数据库中,数据的模型是关系,XML数据也用关系形式来存储。

从网上的一些资料看来,一些中小的数据库商和一些自由软件作者采取了xML—Native数据库的办法,典型的代表有XML.native数据库Tamino。

作为对一种数据模型的查询语言的研究,应该研究的领域包括许多方面,具体的来说包括:XML的研究动机和表达能力l”,XML的数据模型f"】,查询语言设计【1611221123][241,查询处理和优化【l引,查询语言的执行环境【20】,XIVIL的模式定义12】,XML模式抽取【24】等等。在我们的研究计划中,将研究重点放在查询语言本身的实现,以及支持这种查询语言的XML数据存储策略上,因为如本节之初讨论的,存储和查询是XML数据库的关键问题。?

§1.3.主要的研究动机、内容和目标

1.3.1对半结构化数据模型的研究

在数据库社区,早在1995年就有对半结构化数据模型的研究。半结构化数据模型是针对异构数据集成问题提出的。早期的半结构化数据模型研究将其作为一种独立的数据模型,主要分析其表达能力和一些基本问题。XML出现以后,人们认识到XML数据具有半结构化数据的一些重要特征,同时还附加了一些在半结构化数据模型中没有强调的特性,因此一些研究者考虑扩展半结构化的数据模型来描述XML数据,并且使用半结构化数据的查询技术来查询XML数据,事实证明这种策略是成功的,XML如果要作为通用的数据模型就必须建立严格的数学模型,进而才能支持特定数据模型上的各种查询和优化,半结构化数据模型正好能完成这个任务。所以,采用半结构化的数据模型再附加一些特性来描述XML是一条可行的道路。

1.3.2对XML查询语言的研究

对XML的查询语言,人们已经认识到应该不同于SQL,应该是一种介于SQL和通用编程语言之间的中层语言。为此人们一般采用一种类似半结构化数据查询语言的形式来查询XML,最终形成了XQuery这种w3c规范。定义了XQuery语言的形式之后还需要设计XQuery语言的实现方式,只有一个结构合理的查询系统才能够实现XML的各种灵活、强大的功能。所以XQuery的实现体系结构是我们要研究的一个重要方面,其目的就是要设计一个支持XQuery的查询系统

安徽大学硕士学位论文第一章引言

的总体结构。

1.3.3对XML数据的存储和查询的研究

XQuery语言书写的查询语句最终要转化成一系列对数据库的物理操作才能完成。如果使用XML--Native数据库,就要转化成对XML数据的物理操作;

而如果使用XML--Enable数据库,则对XML数据的操作还需要转化成对底层数据库数据的操作。这些转化都需要知道底层XML数据的存储方式。因此对XML数据的存储和查询的研究是我们的一个研究重点。对ⅪⅥL—Native的数据库,由于native--XML数据本身支持对XML文档各种物理操作,所以我们可以直接对它进行查询。而对XML--Enable的数据库,一般是关系数据库,我们要实现两个重要的步骤:第一、将XML数据保存到关系数据库中,同时保持XML数据的结构信息;第二、对保存在关系数据库中的XML数据,通过对关系数据库的查询操作,取得XQuery需要的结果集,从而支持XQuery语言。

1.3.4研究的目标

在我们的研究项目中,我们计划分析XML数据模型的表达能力,尝试用W3C有关XQuery的语言规范,实现一个支持XQuery语言的XML数据库系统。该数据库系统是建立在已有的关系数据库管理系统之上,利用关系数据库成熟的技术来实现可靠、高效的XML数据存储和检索。

§1.4.论文的内容、成果和组织

1.4.1论文内容

本文主要讨论支持XQuery语言的XML数据库的关键问题。首先,介绍研究XML查询语言,支持XQuery的XML查询系统的系统结构,为XML数据库的设计做总体规划。其次分析XML的数据模型,研究在关系数据库中有效的存储XML数据的方法。由于基于模式和基于路径的数据存储方法各有所长,所以我们对这两种方法都进行了探讨和实现。最后,本文研究了在XML数据的关系存储方式下,XML数据的查询方法,提出了一种基于XQuery数据模型的DM方法,介绍了在两类关系存储方法中的实现,并对其优缺点进行了分析。

1.4.2研究成果

本文通过对XML查询语言、数据模式、关系存储、查询支持的研究,主要在以下两个方面取得了一定的研究成果:

-塑螳堡主兰垡笙兰

笙二童型童1.基于对XML查询语言的研究,建立了支持W3C之XQuery语言的XML查询系统的体系结构。该体系结构符合XQuery语言程序执行时,需要具

备的各种语言特性要求。

2.基于XML数据模型,研究了用关系数据库存储和查询X.ML的问题。使用两类不同的基于关系的XML数据存储方法一基于模式的方法和基于

路径的方法,实现了关系数据库对XQuery的支持,并提出基于数据模型

支持XQuery的DM方法,并用该方法实现了两种关系数据存储上的

XQuery支持。

1.4.2本文的组织

本文安排如下:

第一章介绍XML的发展趋势,指出XML将成为互联网上信息交换的标准。并分析了信息系统集成面临的问题,对国内外目前的研究进行了总结,提出了研究的主要内容和目标。最后,介绍了本文的研究内容和主要成果。

第二章介绍XML语言的相关技术。XML是一个包含很多种相关技术的语言,在我们的研究中,需要了解一些这些已有的相关XML技术。

第三章研究XML的查询语言。介绍了几种XML的查询语言,讨论XML数据查询需要注意的主要问题。引出W3C的XQuery语言规范,最后建立一个XQuery语言实现的系统架构。

第四章分析XML的数据模型。对数据模型的分析是我们后面设计XML的关系存储的依据,我们对比了三种数据模型,阐述了XQuery数据模型的核心。

第五章介绍XML数据的关系存储。针对不同的XML数据到关系数据的映射方案,实现了分别属于基于模式的和基于路径的两类(各一种)在关系数据库中存储XML数据的方案。并比较了两种方案的优缺点。

第六章首先介绍已有的支持XML查询的xML关系数据库存储的实现,然后分析其局限性,进而提出一种基于数据模型的支持XQuery的方法一DM方法,使用该方法,可以灵活的、高效的实现存储在关系数据库中的XML数据对XQuery的支持。

第七章总结全文,并提出进一步研究的方向。

.兰型!:!:兰堡主兰竺丝兰笙兰里茎竺!些!!塑薹垫查

语法规则。无论是从物理结构上讲,还是从逻辑结构上讲,XML文件都必须符合规范,才能被正确解释处理。确保XML文件是‘‘形式良好的”,这是一个最低标准,符合了这个标准,才能保证机器能够阅读你的XML文件。

§2.2XML的相关技术

2.2.1XML相关技术图

XML除了本身具有的技术外,还拥有一系列辅助技术,例如:DOMi31、Schema【21、XSLTi451、SOAP[461等等,这些技术使XML的功能更加完善,XML的技术及功能结构如下图所示,对图中每项技术的介绍均可以在W3C的站点(http://www.w3.org)上找到。

图2.2XML相关技术I璺l

兰塑坠妻塑型兰型堕——

苎三皇兰竖!些些塑叁垫查§2.3与数据库相关的XML技术

2.3.1文档类型定义(DTD)和XML大纲(Schema)

形式良好的XML只要符合XML的语法,然而一个“有效的”XML文件必须遵守文件类型描述DTD(DocumentTypeDefinition)中定义的种种规定。DTD实际上是“元标记”这个概念的产物,它描述了一个标记语言的语法和词汇表,也就是定义了XML文件的整体结构以及文件的语法,即XML文档的模式。DTD源于SGML规范【ll,同时也是XMLI.0规范[21的重要组成部分,它也存在一些缺点,比如,它采用了非XML的语法规则、不支持多种数据类型、扩展性较差等等。XMLSchema规范p1在保留了DTD原有的文档结构说明能力的同时,扩充了对数据类型等特性支持,以期解决DTD的种种问题。

事实上,Schema也是XML的一种应用,它是将DTD重新使用XML语言规范来定义。这从某种意义上讲,正体现了XML自描述性的优点。采用Schema代替DTD来定义XML文档的语法结构,可以拥有许多优点。例如:数据类型,命名空间,重复次数。

2.3.2文档对象模型

在使用XML文档时,应用程序需要处理整个文档,以及文档的各个部分。要完成这项任务需要有用于处理Ⅺ帆的一系列API。文档对象模型(DOM)就是W3C标准的用于处理XML文档的对象和接口[41。参照DOM标准,不同的XML应用程序都使用相同的API调用处理XML文档的对象和接口。DOM提供了文档的结构化视图。与DOM兼容的解析器读取整个文档,并通过在内存中构造一个对象树,提供文档的一个视图。文档的主要组件结构是对象树中的节点,访问对象树并处理是通过使用DOM接口实现的。目前DOM是XML最常用的应用程序接口。

2.3.3XML简单API

XML简单APl(SAX)是另一种有效的存取XML文档的方式。SAX并不把应用程序的注意力集中在整个文档的树状图上,而是在解析时提供事件驱动。事件的内容往往是:“这里是一个起始标记;这里有一些元素内容;这里是一个结束标记”,等等。兼容SAX的解析器并不在内存中保留文档:而是在使用它的程序处理文档的每个部分时发出通知。对一个事件所做出的反映取决于使用解析器的程序。一个程序要承担维护文档状态的全部责任。这样就可以根据需要柬维持适量的信息以满足应用程序的需要。这样一来,SAX解析器会相当短小精悍,对系统资源要求甚少。对于处理大文档,特别是大量数据处理,效率更高。

兰i!!查兰堡主兰竺堡兰丝=翌:竺!丝!!塑叁丝查

2.3.4XML信息集

XML信息集(XMLInformationSet)151定义一个合法的XML文件中有哪些种类的XML信息。XML语言规范定义了XML的语法,DOM定义了XML的处理API。而InfoSet以一种独立于具体的XML语法和XML处理过程的形式,定义在XML文件中能够有的信息。所以,InfoSet是从概念上描述了XML文件的内容。

2.3.5XML查询

XML查询的工作是与数据库领域研究息息相关的。随着Web上的XML文件数量的增加,需要有一种有效的手段能够从海量的XML文件中抽取出数据,并且能够灵活的实现查询。XQuery的目标就在于将灵活和高效数据库处理能力,搬到XML文件处理中,最终实现XML数据库。后面我们还要对XQuery技术做详细介绍。

窒堕查堂堡!:堂竺笙奎塑三里苎坚生垒塑堕量第三章XML查询语言

XML是具有非凡表达能力的数据格式。通过对信息加各种标记(ta2),不同种类的数据都可以用XML格式来表示,不论是数据是结构化的关系表、还是半结构化的文档,或者是来自从某个数据源的数据流。可以肯定,Intemet上越来越多的信息将以XML的形式存储、交换和显示。

从存储在不同介质上的数据自动生成XML文档的能力,以及在不同的存储形式的之间以XML格式交换信息的能力,将成为未来面向信息的Intemet应用的关键。动态XML文档将会增加,变得与HTML一样,被用于装载任何东西,从天气报告到货物定单,从电影片段到MP3音乐,从文本到图形,从图像到声音。

ⅪⅥL的查询语言是查询ⅪvIL这种通用的数据格式的语言,是未来用XML作为数据的交换和显示格式的标准方式之一(其它还有xsLT)。XML的查询语言以XML的逻辑模型为输入、处理和输出的数据模型,独立于XML文件的物理存储,可以用不同的方法实现,比如:直接在Native--XML数据库中实现、转换为XML--Enable数据库的底层查询语言实现,或者用建立在抽象的数据源上的中间件系统实现。所以XML查询语言是XML数据库的一个逻辑上必要的组成部分。

在这一章里,我们首先讨论XML查询语言要达到的目标,通过对几种XML查询语言的研究,阐述作为XML这种特殊的数据格式的查询语言,应该具有哪些特色。然后介绍W3C的XQuery语言规范,介绍标准的XML查询语言的数据模型、语法和语义。最后总结出参考XQuery规范实现的XML数据查询系统的体系结构和处理流程。本章所研究的重点是:1)XML查询语言的一般特征;2)实现XQuery的系统架构和处理流程。

§3.1XML查询语言的处理对象

随着Intemet上以XML形式存储、交换和显示的数据日益增多的,我们逐渐可以把网络看成一个巨大的分布、异构XML数据仓库,各种不同类型的数据都以XML这种通用的数据格式暴露给能够访问它的人和机器。如何巧妙的让计算机从所有各式各样的数据源找到并提取出人需要的XML数据,这是XML查询语言希望达到的主要目标。

由于XML的来源多种多样,所以来自不同应用领域的XML文件通常带有和其应用领域相关的特征,提供的可用于查询的信息也不尽相同。不同来源的xML文档主要分为两大类:

●以数据为中心的XML文档

●以文档为【{J心的XML文档

以数据为中心的XML文档多出面向机器处理的数据库系统数据转换而柬,

兰:绁堡主堂竺笙塞

篓三童!兰!垒塑里宣而以文档为中心的XM文档包含的一般是面向人阅读的信息,

3.1.I以数据为中心的XML

XML的一个重要应用领域是面向数据处理。以数据为中心的XML一般用来进行信息的传输和交换。在这类XML文件中,文件的物理结构并不重要,例如:通常人们不介意一张订单中的几个项目的先后次序(这相应于XML文件中兄弟节点的相对次序),也不介意是使用文本节点还是属性来存储数据等等。

以数据为中心的XML与传统的关系数据库数据具有很多相似之处,它的特征是:1)具有规则的结构,2)少量的数据(一个整数,一个字符串)通常都存放在XML文件的叶节点上(文本节点或属性),3)更重要的是XML这类文档通常很少甚至没有混合的内容模式(既有文本值又有子元素)。

在应用中使用面向数据的XML,人们通常关心的是如何存储大量的数据、集成异构数据源的信息,以及转换集成遗留系统中的数据到通用的XML格式。这些应用的特点必然要影响到xML查询语言的设计。

对于以数据为中心的XML文档的查询语言研究已经进行了多年。数据库研究者从已有的关系数据库查询语言、面向对象数据库查询语言等等出发,研究XML查询语言如何才能在具有完善功能的同时,保持形式上的简洁性。半结构化数据库的相关研究对XML查询语言影响最大,人们一般认为XML是一种类型的半结构化数据。从半结构化数据模型出发,研究人员提出了多种XML数据查询语言,其中典型的代表有:XML--QLt231,YaTLt241,Lorel[2卯,Quiltt2郇,XML—GI.㈣。

3.1.2以文档为中心的XML

XML的另一个应用领域是结构化文档处理(例如:医疗记录)。对于以文档为中心的XML,人们一般使用内容管理系统来存储、更新和检索大量xML文档的文档仓库。对这类XML的查询一般为人阅读服务。

对于以文档为中心的XML,常见的查询的目标是:1)检索某类内容的文档,2)查询文档的结构信息,3)从查询结果生成新的xML。

以文档为中心的XML具有大量半结构化的特征,因而在存储和检索以文档为中心的XML时,需要重点考虑的问题是:1)不规则的结构,2)混合的内容模式。

为了对复杂的结构化文档进行灵活的查询和处理,研究文档处理的研究者同样提出了很多XML的查询语言,其中的典型代表是XQL[281。由于应用目标是文档处理,所以这类XML查询语言具有和第一类不同的许多特性。

_兰咝查兰堡!:兰篁堡塞笙兰童圣塑!鱼塑堡童

3.1.3混合形式的XML文档

除了上面两种XML的形式,还存在~些同时具有面向数据和面向文档两种类型特征的XML文档,称为混合模式的文档。在混合模式的的文档中,规则和不规则的结构都可能出现。.

混合形式的XML文档需要XML查询语言同时提供对以数据为中心的XML和以文档为中心的XML的支持。由于XML将成为Interact上数据的通用标准格式,因此XML查询语言应该是一种能够同时满足两类XML应用需要的查询语言。XML数据的查询语言就要求反映出以数据为中心和以文档为中心两种特性。通过对已有的XML查询语言的分析可以发现,作为查询XML数据的语言,它们类似之处很多。下面我们首先通过对几种XML查询语言的分析介绍作为XML的查询语言需要具备的基本特性。

§3.2对几种XML查询语言的分析

在XML数据的研究领域,XML的查询语言设计是一个重要的方向,人们已经设计了多种XML数据查询语言,这些语言在查询能力上各有差别,但是通常都具有一些共性,例如:模式匹配语句,选择过滤语句,结果构造语句等等。对XML数据都可以进行选择,投影,连接等操作。这些在文献fll】中有较详细的介绍,下面我们举例说明几种XML查询语言各自的特点。

3.2.1Lorei

Lorel[251是由半结构化数据库Lore系统的查询语言扩展来的XML数据查询语言。在Lore系统中,将XML建模成半结构化数据模型下的数据,然后用Lore的查询语言Loml进行查询。下面是一段用Lorel书写的查询程序:selectxml(bib:{

(selectxml(book:{@year:y,title:t})

frombib.bookb,b.titlet,b.yearY

whereb.publisher=”Addison-Wesley”andY>1991)))

从上面的程序可以看出。Lorel在语法上采用了类似于关系数据库SQL语言的形式,用sELECT—FROM—wHERE的格式对存储在Lore系统中的XML数掘进行查询。

Lorcl程序由select、from和where三个主要部分组成。from语句包含需要在目标XML文件中进行匹配的数据模式,并将匹配的XML数据(片段)绑定到~些变量。然后在where语句中,按照指定的条件,对绑定了实际数据的变量进行进行选择过滤。最后,所有满足条件的变量,按照select语句定义的XML数据结构构造XML结果。对于具有层次嵌套结构的查询和连接,可以用嵌套的select语句实现。

安徽人学硕}:学位论文第三章XML盘黼语音

Lorel系统在从半结构化数据的查询语言移植到XML数据查询语言中,主要改变是:

●区分属性和子元素:在半结构化的数据模型中不区分子元素和属性,而

在XML中要区分,Lorel中用@表示属性以区别于元素。

?定义结果的文档顺序:在半结构化的数据模型中不定义文档顺序,这实际上反映了Lorel作为一种数据查询语言,在设计时没有过多考虑处理

结构化文档的要求。

●对查询结果的构造:Lorel使用类似SQL的select--from--where语句。

在Lorel查询中,在from语句后面的部分进行模式匹配,bib.book定位

元素book并命名为变量b,b.title和b.year定位title和year节点。在select

语句中构造结果xml(book:{@year,title})。构造的结果XML文档只选择

原文档中的year和title两个元素(属性)而略去其它。

Lore是最著名的半结构化数据查询系统,它上面的查询语言Lorel也非常出色。但是,由于半结构化数据模型本身不同于XML(如:节点类型,文档次序等),所以Lorel在对于查询文档结构(面向文档的应用)方面功能较弱,特别是在重构查询结果方面,Lorel要通过嵌套的select语句(结果构造语句)来实现,相对比较复杂。

3.2.2XML—QL

xML—QL【231也是数据库研究者提出的一种XML数据查询语言。XML—QL基于Lore系统的OEM数据模型,扩充了对XML数据的支持,从而能够进行正规路径表达式查询。下面是一段用XML--QL书写的查询程序:

WHERE<book>

<publisher><rmme>Addison-Wesley</name></publisher>

<title>St</title>

<author>Sa</author>

</book>IN”WWW.a.b.c/bib.xml”

CONSTRUCTSa

从上面的程序可以看出,XML--QL在语法上采用了类似关系数据库SQL语言的形式,用wHERE—coNsTRucT的格式对存储在Lore系统中的XML数据进行查询。

在XML--QL中,模式匹配和选择过滤都是在where语句中实现的。通过在where语句中以XML语法的形式写出的XML片段,XML--QL可以匹配具有一定结构的XML数据,也同样可以选择满足一定条件的XML数据。满足where语句条件的XML数据,被绑定到一些变量。然后在construct语句中构造结果。包含嵌套结构的查询和连接查询,可以用嵌套的construct语句构造。

作为XML的查询语言,XML--QL比Lorel具有更强大的功能,它支持标汜变量,以及集成来自多个数据源的XML数据,并且允许用户自定义函数。

但是山j:在XML--QL中任要明确写出希望查询的XML模式,这样使得查

相关主题
相关文档 最新文档