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・
版权声明:本文标题:XML与关系数据库间数据转换的研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713539818a639780.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论