admin 管理员组

文章数量: 1184232


2024年4月19日发(作者:聚合函数求平均值)

维普资讯

2007年第3期 

总第28期 

海南广播电视大学学报 

Journal of Hainan Radio&TV University 

2007 No.3 

Gener ̄Serial No.28 

XML与关系数据库间数据转换的研究 

刘元鼎 

(海南大学信息学院,海南海口571158) 

摘要:文章论述了基于XML(Extensible markup language)的关系数据库数据转换体系结构,给出了 

XML数据与关系数据库之间进行数据转换采用的两种主要的映射方法。 

关键词:XML;数据转换;关系数据库;模板驱动;模型驱动 

中图分类号:TP 311.132.3 文献标识码:A 文章编号:1009—9743(2007)03—0088—03 

XML的结构化、可扩展性、自描述等最关键的特征,决定了 

一 

引言 

它在数据交换领域有显著的优势和发展潜力。XML拥有 

通用的数据表示格式,进而提供一条异构数据交流的捷 

数据库技术的广泛应用已有很长的历史,在这一过程 

中,许多行业甚至各个部门都建立了自己的业务系统,并 

且起着非同寻常的作用。这些业务系统有可能运行在不 

同的操作系统平台上,也有可能基于完全不同的数据库管 

理系统。与此同时,不同的业务系统往往因为现实生活的 

交叉和重叠自然有了共享数据的必要。然而现实就是,我 

们没有一套很好的数据交换的标准,各种各样的数据交换 

方法鱼龙混杂的交织在一起,实现复杂并带有太多的局限 

径,构筑起数据交换过程中的良好桥梁。 

二基于XML的数据交换模式 

将XML用于关系数据库数据交换能够较好地克服传 

统数据交换方式的缺点。基于XML的关系数据库数据交 

换,是以XML为公共数据模型来实现数据库系统间模式 

转换和数据交换。当某一数据库需要转换为其它数据库 

的时候,只需将它转换为XML,就能轻易的将其迁移到各 

种关系数据库中,具有很好的通用性和良好的扩展性。 

关系数据库数据交换的困难主要是缺乏一个有效的 

公共数据模型统一描述关系模式及关系。XML的出现很 

好地解决了这个问题:XML的纯文本、与平台无关性首先 

满足解决异构关系数据源所需要的跨平台性;XML的强大 

的结构性和良好的语义性满足了表达关系数据库的结构 

和各种约束的需要;XML的优良的交互性为转换带来了方 

性。因此,完美的数据整合虽然永远是一个遥不可及的梦 

想,但我们向往并且努力靠近这一目标。 

另一方面,随之Intemet的兴起以及在全球的普及,它 

已经日益和我们的工作和生活紧密的联系在一起,同时也 

意味着数据的分布性和复杂性大大的增强了。很显然,这 

些五湖四海富有价值的数据不仅仅是信息孤岛,它势必经 

过频繁的流动、分解、融合等过程,进而彰显和扩大它的价 

值,客观的导致我们对数据转换的需求更加迫切和强烈。 

换句话说,我们需要从极度分散的数据库应用系统中获取 

便,使得数据易于操纵;XML的易于扩展性使得应用可以 

进一步扩展;XML的可格式化让转换出的结果有更多的表 

现形式。因此,XML完全可以作为异构关系数据库转换的 

公共数据模型。目前,XML技术已经逐渐开始应用于异构 

并管理数据,以使数据资源得到最充分的利用。 

为了应付这些挑战,我们当然不可能重新设计和开发 

这些新旧纷繁的业务系统,这样做当然是不现实的,除了 

成本、时间等因素外,新设计的系统如何面向未来的不确 

定性,如何确保它有足够多的管道无缝连接种种异构的系 

统。况且,这些业务系统基本上正在稳妥、高效的运行着。 

因而,我们需要一个中介,XML就是这样的中介之一。 

数据库的数据交换,并且已成为事实上的数据交换标准, 

以XML为公共数据模型转换异构关系数据库也为关系数 

据库与其他数据类型的集成转换提供了便利。 

收稿日期:2007—05—05 

作者简介:刘元鼎(1974一),男,汉族,海南儋州人。海南师范大学高级工程师,海南大学信息学院在读硕士。研究方 

向为基于XML数据交换整合标准及中间件技术。 

88・ 

维普资讯

Il0RXMLAUTO 

下面是可能的部分结果: 

<Customers CuID=”CU127894”CName=”陈志忠” 

> 

<0rdem 0rID=”0R1O643”/> 

<Orders 0rID=”0R1O692”/> 

</Customers> 

从关系数据库中将数据转换到XML文件时,几乎一 

图1基于XML的数据交换模式 

定要用到基于模板的查询语言。基于模板的映射有一个 

缺点:就是它只能完成从数据库数据到XML文件的映射, 

由图1可以看出,在基于XML的数据交换模式中,每 

而不能完成从XML文件到数据库的映射。 

种数据库只需要增加一对与XML进行数据转换的功能 

(二)基于模型的映射 

模块就可实现复杂的异构关系数据库间数据转换,这就是 

基于模型驱动的映射是一种深层次的映射,它是XML 

中介的魅力所在,使得解决关系数据库间数据转换迈出重 

模式与关系数据库模式之间的映射。基于模型驱动的映 

大的一步。 

射,当把数据从数据库传送到XML文档或把数据从XML 

文档传送到数据库时,是用一个具体的模型实现的,而不 

三XML与关系数据库之阃映射的方法 

是仅仅依赖内嵌SQL命令,关系数据库的理论依据是关系 

利用XML文档进行数据库间数据交互,就是用XML 

模型,而XML文档的依据是XML Schemas或DTD。基于 

作为数据交互的中介,完成数据的传输与转换。为了完成 

模型驱动实现数据在数据库和XML文档之间的双向传输 

数据的转换,必须首先在数据库和XML文档之间传递数 

关键是在数据库模式和DTD或XML Schemas之间建立双 

据,也就是在文档结构和数据库结构之间建立映射关系, 

向映射。具体的思路是把一个XML文档表示为由数据对 

其映射关系可以分为两类:基于模板的映射和基于模型的 

象构成的树,每一个元素类型和对象模式中的对象相对 

映射。 

应,通过传统的对象——关系模型可以映射到关系模式 

(一)基于模板的映射 

中。 

基于模板驱动的映射会在一个模板中嵌人带参数的 

基于模型的映射也有两种:基于表的映射(table— 

命令,用数据传输软件诸如中间件等实体软件进行处 

based mapping)和对象——关系映射(object—relational 

理。基于模板驱动的映射是浅层次映射,以XML文档内 

ampping,也叫基于对象的映射(object—basde mapping) 

嵌的sql执行的数据结果集为依据,不涉及数据库赖以存 

)。这两种映射都建模在XML文档中的数据而不是文档 

在的关系模式或对象模式,当前诸如Microsoft SQL Server 

自身。这使得这些映射适宜于以数据为中心的文档,而不 

2000等大多的产品都属于模板映射。 

适宜于以文档为中心的文档。基于表的映射不能处理混 

例如,执行下列查询: 

合内容模型,基于对象的映射处理混合内容模型也是非常 

SELECT Customers.CuID,Orders.OdD,Customers. 

低效的。 

CName 

1、基于表的映射 

FROM Customers,Orders 

许多转换XML到数据库的中间软件都采用基于表的 

WHERE Customers.CuID:Orders.CuID 

映射。在下面的XML文档和表之间有明显的映射: 

<Customers> 

<Person> 

<CuID>CUOoo1</CuID> 

<0rid>0R7845</0rd> 

<CName>李维</CName> 

</Person> 

<Person> 

<CuID>CUOoo2</CuID> 

<0rid>0R7846</0rid> 

<CName>王丽</CName> 

</Person> 

</Customers> 

图2基于表的映射 

89・ 

维普资讯

通过上面的示例我们可以发现,基于表映射的策略中 

关键是它把文档看成一个单一的表或组表。在双向的映 

射过程中: 

基于表的映射通常被中间件用来在XML文档和关系 

数据库之间传输数据。它还在某些Web应用服务器中用 

来把结果集数据返回为XML。 

这种映射有许多缺点,它只能处理XML文档的非常 

当数据从XML文档映射到关系数据库的时候,该策 

略是根据文档的结构分别将文档中的子元素或属性映射 

成数据库中对应表的列(字段)的名称,而文档的内容则对 

应于相应的列(字段)的值。这个时候生成的关系表可以 

是一个实际的单一物理表或者是虚表——视图。 

当数据从关系数据库中映射到XML文档中,该策略 

小的子集,只能对符合上述结构的文档进行映射,当XML 

文档包括多个复杂嵌套的时候(表是二维关系,一个表是 

较难表达嵌套关系的),这种传递方式就不能适应了。 

2、基于对象的映射 

基于对象的映射就是把XML文档结构映射为对象模 

型,然后通过传统的对象——关系映射技术把该模型映射 

到关系型数据库。具体而言,就是把一个XML文档表示 

将表或者是查询结果的数据按照将各字段数据以子元素 

的形式或以属性的形式存储,子元素或属性的名字就对应 

了数据库中表的列名。 

为由数据对象构成的树,每一个元素类型和对象相对应。 

这样一来,我们在把数据库中的数据转换成XML文 

在这个模型中,复杂元素(具有子元素和混合内容)通常被 

档时,只要把一个表或者一个查询结果的数据插入到相应 

视为类。只具有PCDATA内容的元素(简单元素类型)、 

的位置即可;而把XML文档数据转换成数据库数据时,只 

属性以及PCDATA都被当作简单属性。接着将该模型映 

要把内容插入到相应的表或视图中即可 

射到关系型数据库,也就是将类映射到表格,简单属性映 

这种映射的明显的优点是它的简单性。因为它匹配 

射到字段,而对象属性映射为成对的主键/外键(prima— 

在关系数据库中的表和结果集的结构,基于这种映射写代 

rykey/foreign key)。对象和数据库之间有着明显的对应关 

码很容易、快速、缩放自如,并对特定应用非常有用,比如 

系,如下图所示。 

在数据库之间一次一个表的传输数据。 

图3基于对象的映射 

有许多问题有待我们进一步去解决:如何对复杂结构的 

四结束语 

XML文档进行同类处理;如何将这些操作进行集成,并实 

本人提出的方法在基于XML的数据转换领域中有广 

现计算机的自动处理,从而减少人工干预;如何在信息抽 

泛的应用,可以实现大部分的数据转换工作,实现效率也 

取过程中完善或改进抽取规则,以生成更加合理并便于处 

很高。然而,在XML与数据库进行数据转换的过程中,还 

理的XML文档。 

参考文献: 

[1]Charles F.Goldfarb等.XML手册[M].北京:电子工业出版社,2003. 

E23 Didier Martin,李吉等译.XML高级编程[M].北京:机械工业出版社.2001. 

E33刘先锋,曹步文.XML与数据库数据的交互技术研究EJ3.计算机工程与应用,2006(32). 

[43王仲,陈晓鸥.基于XML的数据交换与存取技术研究[J3.计算机工程与应用,2001,(24). 

[53孙霞,程宏斌.XML数据交换技术在数字化校园中的应用研究[J3.江汉大学学报,2006(3) 

(责任编辑:胡晋杰) 

90・ 


本文标签: 数据 映射 转换 数据库 文档