admin 管理员组文章数量: 1086019
2024年4月19日发(作者:c语言期末考试编程题)
第12卷第6期 重庆科技学院学报(自然科学版) 2010年12月
XML与关系型数据库数据转换技术的研究
代 丽 李晓燕孙 良
(浙江理工大学,杭州310018)
摘要:基于XML文档的数据转换算法和模型分析一种基于元素树的数据转换方法,使用DTD元素树来刻画XML文
档的结构,并在此基础上建立XML文档与关系型数据库数据的结构映射关系,从而完成数据转换。基于元素树方法,
在.NET开发环境中实现XML文档与关系型数据库数据相互转换的应用系统。该系统为用户指定的DTD自动生成其
对应的元素树,在此基础上,根据用户定义或系统自动生成的元素与数据库字段的映射关系,实现XML文档与关系
型数据的相互转换。
关键词:XML:关系型数据库;映射;元素树
中图分类号: rP3ll 文献标识码:A 文章编号:1673—1980(2010)06-0169—05
在Internet技术应用发展中,数据库技术首先要
WEB应用的开发。
考虑的是,在数据库与Internet之上所架构的信息系
统之间有没有可结合的共同点。原有的数据库技术
1 XML与数据库
面对的空间是若干数据库在一定的网络空间上连接
1.1 XML数据库的应用模式
起来的一个世界.在这个世界上它可以实施相应的
XML数据库是一个能够在应用中管理XML数
技术,使用户有效地管理各自的数据库,并集成起来
据和文档的数据库系统,一个XML数据库是XML
去完成一定的任务。但是在Web世界中,这一情况发
文档及其部件的集合.并通过一个具有能力管理
生了本质的改变。Web上存储的是一些无结构、无法 和控制这个文档集合本身及其所表示信息的系统
组织管理的数据,每个站点上的数据都在无序的状
来维护。XML数据库不仅是结构化数据和半结构
态下产生和消失。因此,XML技术在数据库中的应用
化数据的存储库,像管理其他数据一样,XML的数
是必然的。
据管理也包括数据的独立性、集成性、访问权限、
获得XML数据的方式很多,大致可以将其分
视图、完备性、冗余性、一致性以及数据恢复等相关
为XML纯文本文档、数据库及其他各种应用数据,如
数据库特性。
电子邮件、商务报表等。其中,纯文本文档方式是最
XML在数据库中的应用需要借助如图1所示的
基本也是最简单的。将数据存储于XML文件中,最大 三层架构来实现t31。在这种模式下。一般会有一个代
的优点是可以直接方便地读取数据。当然也可以将
理程序运行于中间层,通过它来访问数据库管理系
这些数据增加样式信息后在浏览器中显示.或者通
统中的数据并输出XML文档。代理程序充当了在客
过DOM(document Object Model,文档对象模型)接
户端应用与底层数据库之间传递数据信息的工具.
口编程同其他应用相连。数据库方式是对第一种方
它可以进行双向的基于事件的数据更新。这种机制
式的扩展,其目的是便于开发各种动态应用。其优
类似于传统的三层结构,唯一的区别是传输过程中
点是可以通过数据库系统对数据进行管理.然后再
的数据格式都是XML。
利用服务器端应m( ̄IASP,JSP等)对数据动态进行存
1.2两类XML数据库的技术规范
取[21。这种方式最适合当前流行的基于三层结构的
XML数据本身的树形结构不同于关系模型中的
收稿日期:2010—06—15
基金项目:浙江省教育厅2010年度资助项目(Y201009991)
作者简介:代丽(1976一),女,哈尔滨人,浙江理工大学讲师,在读博士研究生,研究方向为信息技术、数据库技术和农业机械机
构优化。
・
169・
代丽,李晓燕,孙良:XML与关系型数据库数据转换技术的研究
二维表结构.这种差别反映在数据库产品处理XMI
数据的技术上,形成XML—Enabled DBMS(简称
XED)和Native XML DBMS(简称NXD)两大阵营。
图1 XML在数据库中的应用模式
(1)XML—Enxabled DBMS。支持XML的数据库
XED通过对原有数据库(如关系数据库等)的扩展,以
支持XML文档到数据库中数据的映射和转换,主要
面向以数据为中心的应用[4I。据统计,目前有十余种
XED产品,并且都是商业产品,其数据库类型包括关
系数据库、多值数据库、导航数据库、文件系统数据
库和面向对象数据库等。根据存储粒度,可以把整
个XML文档作为RDBMS表中一行,或把XML文档进
行解析后,存储到相应的表格中。为了支持W3C的一
些XML操作标准, ̄IXPath,XED提供一些新的原语
(如Oracle9iR2增加了一些数据包来操作XML数据
等).并优化了XML处理模块。
(2)Native XML DBMS。原生XML数据库NXD以
纯XML格式存储XML文档,一般采用不同的DOM映
射到其下层的数据存储.保持XML文档的树形结构,
省掉了XML文档和传统数据库的数据转换过程,其
中包括成为持久化DOM fPROM)的实现。它主要应
用于以数据和以文档为中心的应用。目前有3O余种
XED产品,商业产品有近30种,开放源码的有近l0种
[51
。
其数据库类型包括关系、面向对象、多值、基于模
型、基于文本、文件系统、半结构等。
2基于XML文档的数据转换
XML文档属于半结构化的数据,将它与结构化
数据或非结构化数据进行转换的时候,关键问题是
建立不同结构层次之间的映射关系。即如何将XML
文档的结构与其他格式数据的结构对应起来。
下面介绍一种基于元素树的转换方法,该方法
首先创建元素树和元素树节点与其他类型数据之间
的映射关系,然后在元素树和映射关系的基础上完
成数据转换。
2.1 元素树
一
棵元素树就是一个DTD所包含的元素之间的
关系树,它的构成包括:
(1)元素树的每—个节点对应于DTD中的一个元素。
(2)每个节点包含属性列表、子元素列表和其他
・
170・
信息。
(3)属性列表包含了该元素的所有属性.每个属
性是一个三元组(属性名、属性值和属性类型)。
(4)子元素列表包含了该元素的所有子元素,每
个子元素对应一个新的节点。
(5)其他信息包括父亲节点、元素内容模式、元
素内容出现次数和元素文本内容等。
一
棵元素树中.当有些元素的内容模式中包含
子内容模式时,系统将无法确定子内容模式定义的
内容应该如何出现。此时,需要插入内容模式节点网,
说明情况,然后根据实际的数据内容来确定出现哪
个内容,应该出现多少次。一个内容模式节点的子节
点是同属于该子内容模式的所有元素对应的节点。
例如下面定义的元素father,其内容模式是内容粒子
的序列列表, ̄llsonl、son2或son3、son4按顺序出现在
XML文档中的。在father元素的内容模式中包含了一
个子内容模式,该子内容模式是内容粒子的选择列
表。即son2和son3两者只能在XML文档中出现一
个。我们用一个内容模式节点来体现son2和son3
之间的选择关系。元素father对应的局部元素树
为<!ELEMENT father son1+ (son21son3),son4* ̄,如
图2所示
图2元素树示薏强
元素树的生成算法如下:
(1)解析给定的DTD,对于所有不包含在其他元
素内容中的元素 ,构造一棵以元素 为根节点的元
素树。
(2)创建一个节点,其节点名为 。
(3)根据已解析的DTD,获取元素尺的属性列表
Attributes,并将Attributes ̄ll入到节点R中。
(4)分析元素R的内容模式,获取节点 均其他
信息,并根据每一个元素内容的类型生成节点R的
子元素列表EL。
代丽,李晓燕,孙良:XML与关系型数据库数据转换技术的研究
(5)根据内容模式中每一个内容粒子CP的类
型.生成节点肭子元素列表。
2.2映射关系
素树的转换方法的架构图。
在元素树的基础上,我们还需要定义XML元素
与其他类型数据之间的映射关系。
结构化数据具有良好的结构,我们可以先定义
XML文档与该结构化数据在结构上的映射规则,然
后利用映射规则自动确定XML元素与业务数据的映
射关系l 7l。
以数据库为例.元素树与数据库模式之间的映
射规则可以定义如下:
(1)元素树的根节点对应数据库中的一个表,称
为根表;
(2)如果一个节点的属性列表或子元素列表不
为空,则该节点称为表节点,它对应着数据库中的一
个表:
(3)一个表节点的每个属性和子节点都对应于
该节点对应的表中的一个字段:
(4)数据库中,除了根表以外的表都应该包含一
个与其父表发生关联的外键:
(5)除了表节点和内容模式节点以外的节点称
为字段节点,它只对应父节点所对应的表中的一个
字段:
(6)内容模式节点不对应数据库中的任何对象。
然而,在实际应用中用户数据的结构(如数据库
模式)往往已建好,这时我们需要由用户指定XML元
素与业务数据之间的映射关系,并且将这些数据保
存到一个映射表。
对于非结构化数据,同样设计一个映射表,用于
保存XML元素与业务数据的映射关系。
2.3数据转换
基于元素树的转换方法在元素树的基础上.根
据映射关系制定一系列的执行指令。通过执行这些
指令,并将执行结果插入到数据模型中的相应位置,
就可以得到相应XML文档。同样,执行反相指令就可
以把XML文档转换为其他格式的数据。由于引入了
内容模式节点,系统对XML文档结构的限制大大放
宽了。元素树的生成基于DTD,因此符合同一个DTD
的一类XML文档的转换,该DTD所对应的元素树可
以被多次复用[81。在企业电子商务中,企业需要交互
的XML文档对应的DTD相对来说是固定的。一旦所
有DTD的元素树都生成了,系统可以复用已有的元
素树,从而大大提高系统的性能。图3给出了基于元
图3基于元素树的转换方法
3 XML文档与关系数据库的相互转换
利用基于元素树的数据转换方法来分析XML文
档与关系数据库数据的相互转换。如前所述,首先我
们来分析一下XML元素与数据库字段的映射关系的
处理。
3.1 “元素一字段”映射表
为了保存XML元素与数据库字段的映射关系,
我们来设计一个“元素一字段”映射表。在映射表中,
每一条纪录都是一个二元组,(元素全名,字段全名)
或(属性全名,字段全名)。
对于一个给定元素全名,我们可以在元素树中
找到一个唯一的与之对应的节点;而对于一个给定
的字段全名.我们也可以在数据库中找到一个唯一
的字段。这样.对于元素树的每一个节点,我们可以
根据该节点对应的字段全名生成一个SQL语句
“Select字段名Form表名Where查询条件”。以获
取该节点对应的XML元素在数据库中保存的值。当
需要给某个表T插入一条记录时,我们先从“元素一
字段”映射表中查找表T有哪些字段在映射表中出
现.然后根据这些字段对应的元素全名找到它们在
元素树巾对应的节点,再生成一个SQL语句“Insert
表名(字段名l,字段名2,…,字段名n)Values(节点
1的值,节点2的值,…,节点n的值)”将XML文档中的
内容保存到数据库中。
3.2 从XML到RDB的转换模型
从XML文档到关系型数据的转换存在两种情
况:一种情况是XML文档中的若干元素与数据库中
的某个表的字段完全对应(每个字段都有元素与之
对应,或没有元素对应的字段是NULLABLE的),这时
只需要在这个表里插入一条记录即可;另一种情况
是有的字段没有与之对应的元素,或者是不能完全
对应,这时要考虑在数据库中创建新的数据库模式。
・
171・
代丽,李晓燕,孙良:XML与关系型数据库数据转换技术的研究
模型的输出为新的数据库模式或更新的数据库
表。图4给出了从XML文档到关系型数据的转换模型
“对象一XML一数据库的相互转化”示例,说明XML数
据库文件与关系型数据库文件之间的转化的关键代
的结构图。
图4从XML文档到关系型数据的转换模型
3.3 从RDB到×ML的转换模型
将数据库里的数据转换为XML文档,也存在两
种可能的情况:一种情况是系统先根据数据库中的
数据生成一个DTD,再生成一个符合该DTD的XML文
档:另一种情况是系统根据一个已有的DTD.结合数
据库中的数据生成一个xML文档。作为电子商务平
台的文档交换系统,主要存在第二种情况。因为在现
实应用中.往往是首先知道要生成一个什么类型的
文档.订单或发票,然后再根据该类型文档的DTD,结
合数据库数据来生成XML文档。也就是说,XML文档
的类型是预先给定的.而文档的内容来自数据库。
数据转换模型需要处理的数据包括DTD、元素
树、映射表和关系型数据。对数据进行处理的工具
包括元素树生成工具、映射表生成工具、数据库操作
工具和元素树操作工具。模型的输出为XML文档。其
结构图如图5所示。
图5从关系型数据到XML文档的转换模型
3.4“对象一×ML一数据库的相互转化”示例关键性
语句示例
下面通过一个用.NET开发工具所开发的一个
・
172・
码技术实现。XML文件读、写示例代码如下:
//XML文件的读
xlnlDocument xd new xrnlDocumentO;
xd.1oad(”..est.xml”);
(1)从xML到RDB的转化,XML--SQL ̄JXML
格式描述如下:
//保存数据的XML格式
//<Data>
//L<Update> //表示更新数据(新增和
修改)
//L<TableName> //更新的数据库
表名
// L<RowKey> //记录的关键字
值
//L<KeyField> //关键字
// L<FieldName Value=,-,’> //关键字属
性例
//如:<ID Value=”1”>根据关键字判断是新增
还是更新
//t-<Field> //非关键字属性
//L<FieldName Value=…t> //4b关键
字属性
//例如:<Name Value=”张三”><Sex Value=”
男”>
//L<Delete> //表示删除数据
// L<TableName> //表名
// L<RowKey>//记录的关键字值
//L<KeyField> //关键字
// L<FieldName Value=…・>//关键字
属性
//例如:<ID Value=”1”>
//……具体实现代码略
(2)从RDB到)<JⅥL的转换(关键代码):
pubhc override System.Xm1.XmlYode
ReadData(string SQL,bool R.eadBinary)
//读取数据 ̄a]X1VIL中
{……
if(ReadBinary)
SQL:SQL+”for xml auto.BINARY
BASE64”;
//二进制数据
代丽,李晓燕,孙良:XML与关系型数据库数据转换技术的研究
else
中具有重要的应用价值。
//一般数据
参考文献
SQL=SQL+”for xml auto”:
s=GetXmlStrBySql(SQL);
//根据sql语句,得到数据的xML字符串,方法
略
[1]司功闪,王鸿谷,徐捷.以XML为核心的Tamino ̄据库的研
究与分析[J].计算机工程,2004,30(16):32.
[2】谢玉山.xML数据库设计方法研究[D】.武汉:武汉理工大
学.2006.
{ s.Replace(”\0”,””);
string str ”<rows>”+s+”</rows>”:
[3】方翔.xML文档到关系数据库的直接转换[J】.计算机工程,
2001,27(1 1):65—66.
[4】曹亮,王茜,卢菁.XML数据在关系数据库中存储和检索的
XD.LoadXml(str);
}..…‘
研究和实现[J].东南大学学报(自然科学版),2002,32(1):
1
124—127.
[5]赵尔平,李浩,雒伟群,等.基q-XML schema的XML<档在
4结 语
关系数据库中的存储[J】.西北师范大学学报(自然科学
通过上述分析得出,在数据管理方面.数据库
版),2010,46(1):43—46.
【6】邓芳.xML文档到数据库数据转换研究[J】.北京邮电大学
尤其是关系型数据库具有其他方式(包括普通文件、
学报,2004,27(1):84.88.
XML文件、对象数据库)无法比拟的优越特性。而在
[7】耿飙,宋余庆.XML: ̄档到关系数据库映射方法的研究[J].
应用方面,尤其是在Web信息共享及异构应用数据
计算机应用研究,2010,27(3):951-954.
交换方面。XML又具有其他技术无法比拟的优点。两
[8】谷长勇,徐志伟,褚兴军.xM|L结构和关系数据库的一种形
种数据库的数据转换技术在信息系统实际开发过程
式化映射[J]_计算机工程,2001,27(11):l6—17.
Research on the Data Transformation Technology
between XML and l lational Database
DAILi LIXiao-yan SUNLiang
(Zhejiang Sci—Tech University,Hangzhou 3 1 00 1 8)
Abstract:According to the algorithm and model on data transformation of XML document,this paper analyzes a
data ̄ansformation approach based on Element—Tree.In this approach.the DTD Element—Tree iS used to describe
the structure of an XML document,and the structure mapping between the XML document and the relational
database data is built based on the Element—Tree,which is used to complete the data transformation
.
Then it
develops an application system of the transformation between XML document and the relational database data
based on the.NET,which adopts the Element—Tree approach.The system generates the Element—Tree of a DTD,
and uses the mapping between XML document elements and columns in the database provided by the user to
transform the XML document and data in the database.
Key words:extensible markup language;relational database;mapping;Element-Tree
・
173・
版权声明:本文标题:XML与关系型数据库数据转换技术的研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713539665a639772.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论