XML存储模型研究

2024-11-27

XML存储模型研究(精选4篇)

XML存储模型研究 篇1

摘要:本文主要研究了XML的各种存储模型,对模型的特点、缺点以及存储效率进行了分析研究。

关键词:XML,存储,索引,模型

(1.中国建材地质勘查中心四川总队测绘院,四川成都610051;2.四川建筑职业技术学院测量工程研究所,

四川德阳618000)

(1.Mapping Courtyard,Sichuan Branch,China National Geological Exploration Center of Building Material In Dustry,Sichuan Chengdu 610051;2.Institute of Engineering Surveying,Sichuan College of Architectural

Technology,Sichuan Deyang 618000)

0 引言

XML存储是建立XML索引的基础,对XML存储与索引的研究有助于GML空间数据的研究。目前,国内外学者对XML数据的存储管理进行了大量的研究,提出了多种存储管理方式。这些存储管理方式归纳起来可以分为四大类:文本文件方式、传统关系数据库方式、对象数据库方式、本原XML数据库(Native XML Database)方式。

1 存储模型分析

1.1 文本文件管理方式

使用操作系统的文件系统来管理XML数据是最原始、最简单、最直接的方式,也是目前XML文档存储的主要方式。XML数据以文本格式的XML文档进行存储管理,它自然地反映了对象间嵌套关系,其数据存取并不需要使用数据库系统,可以使用任何的文本编辑器或专门的XML编辑器对XML文件进行编辑修改。对XML文档的查询都转化为对相应XML文件的操作,即先利用DOM或SAX对XML文档进行解析,遍历该文档,从中查找出符合条件的元素。这种查询处理方法的优点主要是容易实现、比较直观。缺点是存储的粒度大,当数据文件较大时,对计算机内存要求较为严格,否则容易引起操作性能大幅度下降;由于每次查询、处理都要根据XML文档进行解析,处理速度比较慢;如果要对XML文档中的数据进行更新操作,必定要重新存储整个文件,这也使系统效率降低。此外,这种管理方式也不具备传统数据库系统的高级管理功能,如数据的安全性、一致性、并发控制等。

为了提高这种管理方式的查询处理效率,有学者提出开发一个查询引擎并利用XML元素在文件中的位置(到文件开始处的偏移量)进行索引的解决方案[4],其索引结构为:(1)父节点映射到子节点的路径索引(Parent Offset,Tag,Child Offset),(2)子节点映射到父节点的路径索引(Child Offset,Parent Offset),(3)元素值、属性索引(Attribute Name,Attribute Value,Element Offset)。这种解决方案并不需要解析整个XML文档,而是利用以上三个索引,根据偏移量快速定位XML元素的位置,然后解析此元素(未涉及到的其它元素不用解析),从而大大提高查询处理效率。这种解决方案的缺陷是当文件更新时,需要重建索引。

1.2 关系数据库管理方式

XML数据在传统关系数据库系统中存储的关键是要将XML模式映射为关系模式,主要有以下几种映射方式:

(1)大对象存储方式:将整个XML文档映射为关系数据库中的大对象如CLOB、BLOB,即将XML文档作为二进制大对象直接存储为数据库的字段。操作数据之前需要将整个文档读取到内存中。

(2)通用模式映射方式:定义固定的关系模式来存储XML半结构化实例数据,这种方式不需要XML模式或DTD,所有的XML文档用相同的一组关系表进行存储。

(3)将XML模式或DTD映射为关系模式方式:对XML文档模式定义中的语法进行分析、简化、转换,产生关系模式。从XML实例数据提取关系模式,对XML文档实例数据进行分析,从中提取规则的模式信息用于产生“好的”关系模式。

1.3 对象数据库管理方式

虽然关系数据库技术相当成熟,但是用关系数据库来存储XML数据还存在许多不足:为保留数据的结构,需要用很多的表和列;复杂的表结构将导致语义的模糊;大量的表之间的连接将导致性能下降;简单的数据文件结构重新构造可能代价巨大。另一方面,由于XML具有对象结构特点,同时面向对象的模型支持复杂数据类型,因此可以方便、直观地建立XML数据的对象模式,进而利用对象查询语言(OQL)实现对XML数据的结构化查询。面向对象的方法已普遍地应用于软件开发的各个阶段,OODB能够与面向对象的程序设计方法无缝结合,因此OODB很有可能成为未来数据库的主流。以一致的方法访问XML数据和OODB中的数据无疑将使应用系统的开发得到简化。这使得XML更适合采用对象数据库存储。文献[4]中提出用file_object来存储整个XML文档,lw_object(light weight object)存储XML文档中的每个元素,一个file_object包含多个lw_object,file_object结构为:(Offset(oid),lw_object)。lw_object的格式为:(Length,Flag,Tag,Parent,Prev,Next,Opt_child,Opt_attr,Opt_text)。lw_object在file_object中的偏移量作为元素的id,Length记录lw_object的长度,Flag用来标识lw_object是否有Opt_child、Opt_attr或Opt_text,Tag是XML元素的标签名,Parent为父节点的id,一个节点的多个兄弟节点用Prev和Next指针链接成双向链表,lw_object有3个可选属性Opt_child,Opt_attr和Opt_text,如果lw_object有孩子节点,则Opt_child记录它的第一个和最后一个孩子的指针,Opt_attr记录该元素的所有属性的名字,文本数据存储在Opt_text列中。文献[5]提出了将XML数据映射为ODMG对象模型的方法。

其映射规则如下:

(1)元素被映射为一个对象。同一类型元素的对象属于相同的对象类型;

(2)元素与其子元素的嵌套关系被映射为相应对象的从属联系。由父元素向子元素的遍历路径以子元素名称命名,反向遍历路径以“parent”命名,将基数大于1的目标映射为List(如果对象之间有次序)或Set。兄弟元素之间的次序关系映射为联系precede和succeed;

(3)复杂的内容模型可以通过定义附加的类型并结合复杂对象类型(如Struct,List和Set)来描述;

(4)元素的数据内容被映射为元素对象的string类型的属性;

(5)根据不同的类型,元素的属性可以被映射为对象的属性或联系。

(1)字符串类型、ID和枚举类型的属性被映射为相应对象的属性;

(2)类型为IDREF或IDREFS的属性被映射为相应对象的引用联系。由于在这种类型的属性声明中并未定义所引用的元素类型,因此需要根据XML数据的内容进行推测;

(3)属性值类型为ENTITY或ENTITYS的属性被映射为指向相应实体对象的联系;

(6)对于REQUIRED和IMPLIED类型的缺省声明无需特别处理,但对于FIXED声明的信息应予以保留,因为这样的属性总是以唯一的值出现。ODMG的对象模型中无此概念,ODL中也没有类似的声明机制,因此需要作适当扩展;

(7)将未析实体映射为一个对象,具有相同符号(NOTA-TION)声明的实体被映射为同一对象类型。将已析实体作为替换文本复制到每一个引用它的位置;

(8)处理指令(processing instruction),注释(comment)和CDATA予以忽略。

1.4 本原XML数据库管理方式[6]

采用传统数据库存储管理XML,首先通过模式映射将XML模式映射成传统数据库模式,并将XML数据存入数据库中;在查询XML数据时,利用SQL语言的优化技术将数据库中的表格型数据取出并还原成XML结构型数据。这种管理方式需要在XML模型和传统数据库模型之间来回转换。由于XML数据模型(图/树模型)与传统数据库的关系模型之间存在的重大差别,前者表示的是一种半结构化数据,而后者表示的是规则的结构化数据,在两者之间进行数据的转化必然要损失部分信息,而且这种转换相当耗时,从而导致系统性能下降。

本原XML数据库是专门针对XML而设计的,它以自然的方式管理XML数据,不需要传统数据库管理中的那种来回的模式转换,是极具潜力的XML数据管理方式。

Xindice是Apache软件基金会开发的开放源代码的基于文本的本原XML数据库,其存储的基本概念是文档集和资源,资源通常指XML文档,但也可以是一般文本或一段二进制代码;文档集是包含资源的容器,这两个概念类似于关系数据库的表和记录,多个记录组成一张表,多个文档组成一个集合。文档集的层次结构是指父文档集下可有数个子文档集,子文档集下可有孙文档集,这类似于文件系统的目录结构。文档以压缩方式存入文档集,文档集以文件形式写入磁盘。Xindice中文档集的具体实现是采用Java语言collection类中的一个子类Hashtable,每一个collection作为一个子目录写到磁盘上,每一个collection既可包含XML文档,XML文档作为文件写入该目录,也可包含子collection,其作为子目录写到该目录下。本文研究的基础数据库其就上基于Xindice建立起来的本原空间数据库。它主要的特性就是支持集合存储,而且其对于存储在同一集合的模式没有限制,这样就为我们提供了模式聚类存储的可能行,把具有相同或是类似模式的GML空间数据文档存储在同一集合中。

Ozone是一种基于对象模型的本原XML数据库,它通过扩展对象数据库模型ODMG(在ODMG中引入新的支持半结构化数据的OEM类)和对象查询语言OQL(Object Query Language)来支持结构化数据和半结构化数据的存储管理。OEM类分为OEMcomplex和OEMatomic两种,分别表示复杂的和原子的OEM对象。OEMcomplex是(label(as string),value(as OEM object))对的集合,由于XML数据是有序的,OEM-complex有两个子类OEMcomplexset和OEMcomplexlist,分别表示无序的和有序的对象。

2 结束语

通过上面的研究分析,最适合XML存储的方式为本原xml系统数据库方式,这也是未来发展的主流方向。索引问题是存储效率的关键问题,很多情况下数据需要经常的更新和查询,所以笔者下一步的研究主要集中在XML的索引问题上。

参考文献

[1]兰小机,闾国年,刘德儿.GML空间数据查询与索引机制研究[J].遥感学报,2006,6(10).

[2]盛惠娟.NativeXML数据库存储模型研究[D].西安:电子科技大学,2005.

[3]李涛.NativeXML数据库的研究及其性能测试方法的改进[D].湖南:湖南大学,2005.

[4]http://download.oracle.com/technology/tech/xml/xmldblcurrent/twp.pdf2005.

[5]Phil Bohannon et al.From XML Schema to Re-lations:A Cost-Based Approach to XML Storage.Data Engineering,2002.Proceedings.18th International Conference on,26Feb.-1March2002.Pages:64-75.

[6]http://www.ozone.org.

XML存储模型研究 篇2

XML是W3C制定的一组规范, 是目前全球范围内用于描述数据和交换数据的一种标准方式。其最初设计的目的是用来弥补HTML作为在Internet上描述数据的标准语言的不足。然而, 伴随着XML应用的飞速发展, XML有关的数据和文档大量出现, 如何对这些XML文档进行有效管理与快速查询, 是当前学术界的研究热点。

1 XML数据库

XML数据库是可以对XML文档进行存取、管理和查询的数据库;是XML文档及其部件的集合, 并通过一个具有能力管理和控制这个文档集合本身及其所表示信息的系统来维护。和其它数据库一样, 它也应该支持事务管理、安全、多用户访问、编程API和查询语言等。

XML数据库系统分为两类:支持XML的数据库 (XML-enabled Database, XED) 和原生XML数据库 (Native XML Database, NXD) 。XED是在传统数据库的基础上增加对XML的支持, 以便保存和输出XML形式的文档, 通过适当的XML API对XML文档进行查询和修改。而NXD则是专门设计用于存储和管理XML文档的数据库, 它直接以XML文档作为数据库的存储单元进行操作和管理。

2 XML数据库及其与传统数据库的比较

关于Native XML数据库目前还没有一致公认的定义, Kimbro Staken对其作了一个说明, 得到了比较广泛的认同, 介绍如下:

(1) Native XML数据库为XML文档 (而不是文档中的数据) 定义了一个逻辑模型, 并且根据该模型存取文档。

(2) Native XML数据库以XML文档作为其基本 (逻辑) 存储单元, 正如关系数据库以表中的行作为基本逻辑存储单位一样;

(3) Native XML数据库对底层的物理存储模型没有特殊要求, 即它不一定必须建立在关系、层次或面向对象的数据库基础上, 也不一定必须规定存储格式, 如索引或文件压缩。

传统数据库是关系型的、结构化的, 而XML是层次型、半结构化或非结构化的。在引入Oracle XML DB之前, 一直不存在将两者结合起来的简单巧妙的方式。Oracle XML DB是Oracle数据库的一个特性。它提供一种自带的高性能XML存储和检索技术, 提供存储独立、内容独立和编程语言独立的基础架构来存储和管理XML数据。该技术将W3C XML数据模型完全集成到Oracle数据库中, 并提供浏览和查询XML的新的标准访问方法。该技术扩展了普通的Oracle关系数据库, 不仅提供目前最复杂和完整的关系数据库所提供的所有功能, 还提供了与Native-XML数据库所相关的所有功能。各种存储方式的比较如图1所示:

从图1中可以清楚地看到Oracle XML DB在充分利用了现有关系数据库成熟稳定等优点的同时, 又很好地扩展支持了XML数据的多种存储模式的存储和查询功能。根据XML数据的结构化或非结构化特征, 开发人员可同时设计映射到关系表的存储方式和基于文本、基于模型的原生XML存储方式。既有效地减少了模型转换所需的系统开销, 尽可能地保证数据物理结构和逻辑结构的一致;又能够很快地适应和实现新的XML标准, 提高数据查询操作速度, 加强数据管理性能。所以研究基于Oracle XML数据库的存储策略具有非常重要的意义。为了进一步说明Oracle XML DB存储XML数据的灵活性和全面性, 图2列出了Oracle XML DB支持XML数据存储的3种存储模式的相对优势, 以及对于给定情况选择XML存储模型的指导原则。开发人员应该分析自己的应用程序需求, 挑选出符合自己需要的最佳存储。符合“-”表示差, “+”表示良, “++”表示优。

3 Oracle XML DB技术要点

Oracle XML DB扩展了Oracle关系数据库, 添加了所有与原生XML数据库相关的功能。其有以下几个关键组件:XMLTyep抽象模型、XML DB资料库 (Repository) 、API支持和协议支持。

3.1 XMLType存储

XMLType是一个用来在列或表中保存和管理XML文档的原生数据类型。

一方面XMLType可以像其他Oracle类型一样在关系表中使用, 把XML数据存储在关系表中的XMLType列。

另一方面XMLType表或列可用于存储任何格式规范的XML文档。非基于模式的和基于模式的、二进制格式或结构化的对象集。下图3显示了XMLType数据类型存储XML的多种方式。

XMLType数据类型提供了构造器, 允许从VARCHAR、CLOB或BFILE数据类型创建XMLType。它也提供了一些XML专用的方法, 可对XMLType对象进行操作。

3.2 XML DB资料库

传统上认为关系数据库在管理层次结构和执行解释路径所需的层次遍历操作上性能不佳。为了解决这个问题, Oracle XML DB引入了可查询分层组织XML资料库的概念。Oracle XML DB资料库允许使用层次结构管理以文档为中心的XML内容, 使采用类似的文件/文件夹结构保存、组织和访问保存在数据库中的XML内容成为可能。

Oracle XML DB资料库的一个主要优势是它对常用的HTTP、FTP和Web DAV等互联网协议添加了原生支持, 使用户可直接访问由Oracle XML DB资料库管理的内容。除了基于模式XML外 (基于模式XML文档的内容保存在模式定义的默认表中) 的所有其他内容 (非xml和非基于模式的XML文档) 都保存在资料库中, 并且文档内容和关于文档的元数据被保存在了LOB中。图4显示了Oracle XML DB资料库的总体结构。

4 Oracle XML DB存储实例分析

下面我们将通过一个实例介绍在基于XML模式的XMLType中存储XML文档。例如已经开发了一个描述某校园网络新闻信息的XML文档格式, 现在想利用XML DB资料库把信息存储到数据库中。

4.1 创建XML Schema

首先根据前面的XML文档创建XML模式electroni_docume nt Schema。这里选择Altova公司的XML Schema编辑环境XMLS py创建它, 并将其命名为“electr oni_document.xsd”, XML模式如图5所示。

4.2 注册复杂的XML模式

在Oracle XML DB能够利用一个XML模式所含的信息前, 必须向数据库注册该XML模式。接着在Enterprise Manager中完成相应的端口配置和资源的创建, 并保存到:‘http://localhost:8080/pu blic/elec_doc’中。

XML模式的注册是通过调用名为“dbms_xmlschema register_schema”的PL/SQL过程完成的, 注册在URL下。在内部, URL是被用来识别XML模式的唯一关键字。注册XML模式时, Oracle XML DB不需要直接访问所指定的URL。如下代码, 一个模式在注册之前被加载到XML DB中的‘/public/elec_d oc/electroni_document.xsd’位置, 其唯一标识符是http://localhost:8080/public/elec_d oc/electroni_document.xsd。

在XML模式注册完后, 将为XML模式定义的每个全局元素创建一个默认表。任何在Oracle XML DB资料库中的数据映射到拥有路径名称 (或者URL) 的资源, 并且既存储在BLOB中, 又存储在XMLType对象中, 如图6所示。

4.3 存储XML实例文档到数据库

在已经定义了XMLType存储之后, 可以通过使用SQL、API协议, 或者SQL*Loader实用程序将数据加载到XMLType表中。当实例文档被装载进Oracle XML DB资料库时, 文档内容将保持到默认表中。

5 结束语

综观国际数据库界的研究, 新的“热点”不断涌现。在未来几年内, 预测数据库学科发展主要会以数据库技术与相关 (硬件与软件) 新技术相结合为主, 呈现多学科交叉及融合的趋势。而Oarcle XML DB主要的特点就是在数据库中提供了一个原生的XMLType类型和一个以层次视图展示出来的资料库。通过XML功能在数据库内部的集成, 为应用开发和数据的管理带来了很多好处。

参考文献

[1]XML1.0标准[EB/OL].http://www.w3.org/TR/-2000/REC-xml-20001006, 2006-09-26.

[2]周勇, 韩洁, 等.XML数据库与关系数据库协作研究[J].计算机工程与应用, 2002 (13) .

[3]KIMBRO STAKEN.Introduction to Native XML Databases[EB/OL].http://www.xml.com/pub/a/2001/10/31/nativexmldb.html, 2001.

[4]AKAMAL B.CHAUDHRI, AWAIS RASHID, ROBERTO ZICARI.XML数据管理:纯XML和支持XML的数据库系统[M].邢春晓, 张志强, 李骅竞, 等译.北京:清华大学出版社, 2006.

[5]BOURRET R.Native Database Architectures.September, 2005[EB/OL].http://www.rpbourret.com/xml/XMLAndDatabases.htm#nativear chitecture.

[6]谷长勇, 王彬, 陈杰, 等.Oracle11g权威指南[M].北京:电子工业出版社, 2008.

[7]MARK SCARDINA, BEN CHANG, JINYU WANG.Oracle Database10g XML与SQL开发指南[M].孙杨, 译.北京:清华大学出版社, 2006.

XML存储模型研究 篇3

一、XML及DTD技术简单介绍

XML是互联网环境中跨平台、依赖于内容的技术,是当前处理结构化文档信息的有力工具,它使用一系列简单的、用户可自行定义的标记描述数据;以文本文件的形式存储数据,不受操作系统和软件平台的限制,非常适合于异构数据的交换,目前大量的业务系统都采用XML技术进行数据的交换、存储和展示。

DTD(Document Type Definition)是一套关于XML的语法规则,在XML1.0版中,它是XML技术的一部分,它描述和规范了XML文档的逻辑结构、提供了XML文档的验证机制(关于XML的规范、验证技术还有XML Schema),使得XML能够成为数据交换的标准。(图1和图2给出了XML和DTD的样例)

从图1的示例可以看出,XML文档以树状层次结构组织数据,其根元素(orders)包含了若干个子元素(order),子元素(order)又包含了其他的子元素(cust_id,acct_id,inst_id,acc_nbr,fee),结构十分清晰,且各个元素可以由用户自行定义,含义明确,具有良好的开放性和扩展性。

XML以DTD(或XML Schema)来描述、定义其逻辑结构(包括定义XML中的元素、元素类型、元素的上下级关系、属性及其顺序关系等等,如图2)。

而对于XML文档数据的解析、存取,从编程接口来说,有DOM和SAX两种主流的操作方式:DOM(Document Object Model)以树形结构加载整个XML文档,提供了直接获取和操作文档中各个组成部分的API;而SAX(Simple API for XML)则提供了一种事件驱动型的XML标准接口,不需要在内存中构建整个XML树,但是不允许开发人员实际更改原始XML文档中的数据。

二、关系型数据库中的两种XML存储模式

关系型数据库技术是当前最为成熟的数据库技术。商用关系型数据库系统都具有高性能的查询引擎、良好的可扩展性、安全性和健壮性,因此利用关系型数据库系统管理XML数据可以重用数据库的查询优化器和事务处理机制,能够保证XML数据的一致性和完整性;同时,目前大量的应用系统的数据主要都是存放在关系数据库中,将XML数据存储在关系数据库中,可以将XML数据融入到应用系统的其他数据中,便于系统数据的管理和使用。

由于XML采用树型结构组织数据,而关系型数据库采用平面的二维关系存储数据,两者在数据组织结构方面存在差异,所以利用关系型数据库存储XML数据的基本思想就是通过将XML模式向关系模式进行映射来完成数据的存储,而从映射的粒度来说,可以分为文档存储模式和元素存储模式两种(下文中关于关系型数据库的描述以oracle数据库为例)。

1. 文档存储模式:

文档存储模式是将整个X M L文档作为存储对象,直接将XML文档构造为数据库中的一个字段。如图1中的文档可以直接映射为一张关系数据表t_orders的order字段,具体的操作方式如下:

①首先创建关系表:Create t able t_orders(id number(10),odr blob);

②然后将orders.xml的内容直接写入到odr字段中(blob是oracle数据库用来存储大对象的字段类型,其他商用关系型数据库对大对象都有类似支持)。数据库中的存储结构如图3:

2. 元素存储模式:

元素存储模式则是按照xml数据的结构,在关系型数据库中建立起与其结构对应的、具备父子关系的多张关系表,如图1中的文档可以映射为t_orders表和t_order表,具体操作如下:

①首先创建关系表:

②然后将orders.xml的内容根据结构关系写入到表中。数据库中的存储结构如图4:

三、两种存储模式的对比分析

上述两种存储模式虽然都是采用关系型数据库的表来存储XML数据,但在具体操作上有本质的区别,且各有不同的应用场景和数据使用方法:

第一种模式将整个XML作为一个整体存储,不利于利用关系型数据库的标准查询语言进行数据元素的检索,然而在具体应用系统中,特别是在不同应用系统之间利用XML格式进行数据交互的场景下,由于在生产环境下数据库表结构的修改很多时候比XML结构的修改成本更高;而且在复杂的应用环境下,确实有时候是需要利用XML存储半结构化或者非结构化数据的;另外很多商用关系型数据库(如oracle)本身提供了利用XPath等技术对XML文档进行操作的手段,所以该模式也还是有其应用场景的。

第二种模式将XML数据映射成了关系型数据库中的若干张表,也就自然而然地继承了关系型数据在数据检索、查询优化、事务管理等方面的诸多优势,在纯粹利用XML存储结构化数据的场景下有很大的优势。

所以在实际的应用系统设计过程中,针对XML数据的存储方案需要根据实际的应用情况来确定,只有对系统情况进行了详细分析,才能在不同的应用场景下采用最合适的存储方案,另外,也可以尝试一种折中的存储模式即文档存储模式与元素存储模式相结合的方式,具体可以参考文献[5]等相关技术资料。

四、结束语

应用系统的日新月异推动了数据表示和存储技术的发展,XML的易扩展性、灵活性使得其在当前应用系统的数据表示和存储方面发挥了巨大的作用。利用关系型数据库进行XML数据的存储,更是提高了数据的安全性和检索速度,另外由于目前大部分应用系统的业务数据都是存储在关系型数据库上的,所以利用关系型数据库存储XML数据也可以将整个系统的数据类型、查询方式、管理手段统一起来,有利于系统的数据管理。

参考文献

[1]罗军珍,XML在关系数据库中存储方法的研究,重庆大学,May2005。

[2]翁亮,曾昭平,XML技术分析,计算机与网络。2000(1):24-25。

[3]严海兵.基于数据集的X M L数据存储技术[J].2006,23(3):68-70。

[4]万常选,XML数据库技术。清华大学出版社,2005。

[5]杜向华.几种X M L数据存储技术[J].科技信息,2007,(2):190-190.

基于XML的数据交换模型之研究 篇4

1 相关技术介绍

1.1 XML技术

XML语言(Extensible Markup Language)是1982年2月由W3C组织制定的一种通用语言规范,它没有复杂的语法和数据定义。X M L具有易扩展、结构性强、语义性强、纯文本、易于处理、与平台无关等特点。XML的自描述性使其非常适用于不同应用间的数据交换。XML作为数据传输的中介格式,为异构数据源提供了一层理想的缓冲,从而使异构数据源之间保持透明。XML作为独立于平台和设备的结构化数据表达方式,可以有效地实现异构数据源的集成。

1.2 异构数据交换

数据交换是实现数据共享的一种技术,因此通过数据交换,实现各系统间的数据共享、互联互通、业务协同是解决目前“信息孤岛”现象的关键途径。

目前常见的异构数据交换技术可分为电子数据交换方式、中介层方式、数据仓库方式、中间数据方式,但都还存在不足[2]。基于X M L的数据交换技术具有良好的通用性,扩展性,可移植性和自治性,同时满足一定的实时性要求,从而它弥补了以上数据交换方法的缺点,提高了数据交换系统的兼容性和扩展性,在一定程度上提高了数据交换系统的开发效率。

2 系统设计

2.1 系统结构设计

数据交换平台主要由数据提取、数据读/写、数据分析、数据转换几部分构成。

2.2 数据提取部分

在进行数据交换时数据提取部分根据用户的指令将需要进行交换的数据从数据库中提取出来。数据提取的数据源主要有:(1)文本文件:主要指部门自定义的特定格式的文件;(2)数据库:主要指专业用于存储数据的各种关系数据库系统;(3)X M L文档,它是一种简单、灵活的文档,可对结构化数据提供透明的组织及交换的方法[3]。

2.3 数据读/写部分

数据读/写部分负责对数据源的读写操作,具体包括从源数据中读取要进行交换的数据及把转换后的数据写入目标数据。数据读/写部分根据不同的数据采用不同的读写方式:(1)对文本文件,通过字符输入/输出流依次读/写文本中的字符来实现;(2)对数据库,利用数据库连接驱动(如J D B C)来实现;(3)对X M L数据文件,通过调用X M L解析器的读/写接口加载整个XML文件来实现。

2.4 数据分析部分

数据分析部分负责解决数据映射的问题,并构建出异构数据之间进行数据转换的映射文件。此处主要针对异构关系数据库之间的数据交换进行研究,为了在数据库与X M L文档之间传递数据,必须在X M L文档结构和数据库结构之间建立映射关系。在设计时应考虑:(1)数据类型:为了匹配关系型数据库严格的数据类型,本系统采用X M L Schema数据类型。(2)主键/外键:在进行基于XML的双向数据转换时,要将源表中的主键/外键信息保留下来。(3)空数据:当将XML文档与异构数据库进行双向转换时,要注意那些可为空的列。(4)数据结构:在进行基于XML的双向数据转换时,要保留源数据的结构,可将XML文档设计成两部分,一部分存放结构信息;另一部分存放数据信息。结合以上要求,定义异构数据库双向数据交换的中间数据模型如下:

2.5 数据转换部分

在数据分析的基础上,数据转换部分负责源数据和目的数据之间的转换操作,其中包括源数据到中间数据的转换及中间数据到目标数据的转换。异构数据之间的转换方法有两种:基于模板的转换方法和基于模型的转换方法[4]。鉴于本系统要实现XML文档与其他格式数据的双向转换,采用基于模型的转换方法。

基于模型的数据转换方法用事先定义好的数据模型来映射XML文档结构与其他格式数据的结果之间的关系(如图2)。

3 系统实施

该系统在Windows Server 2003平台上开发,使用Oracle9i数据库、S Q L Server 2000数据库。系统采用Java技术实现,XML是独立于平台的标记语言,而Java是与平台无关的计算机语言,XML与Java的结合能够最大限度地体现系统平台的无关、应用无关性[5]。该系统具有如下特点:(1)基于开放的标准技术,具有良好的可扩展性;(2)类模块架构设计,效率高;(3)Java和XML结合,可以跨越多种平台。

4 结语

数据交换是X M L的重要应用之一,XML使得不同应用系统间能够方便地交换数据,实现异构系统的集成。本文的创新在于构建了一个新的基于X M L的数据交换模型,该模型能有效地解决企业各部门之间资源共享问题。

参考文献

[1]徐俊杰.基于XML的数据交换模型研究[D].哈尔滨:哈尔滨工程大学,2007.

[2]李雯,谢辅雯,邹道.XML数据交换技术的应用与研究[J].计算机与现代化,2008(1):91~93.

[3]刘敏.基于XML和JMS的数据交换模型的设计及应用[D].沈阳:东北大学,2005.

[4]刘立华.基于XML的异构数据库之间的数据交换[D].武汉:华中科技大学,2005.

[5]陈兵,万晖.基于XML的Web数据交换[J].计算机工程,2002(2):112~114.

[6]王大刚,谢荣传.基于XML Schema的数据匹配方法的研究[J].计算机科学与技术,2008(6):28~31.

[7]L.Seligman,A.Roenthal.XML’s im-pact an databases and data sharing[J].Computer,2001,34(6):59~67.

[8]Maria Arigeles.The challenges thatXML faces[J].Computer,2001,34(10):15~18.

上一篇:机械自动变速器下一篇:区间隧道疏散