关系数据库与XML的映射技术研究
2010-02-23王炎
王 炎
(陕西财经职业技术学院信息工程系, 陕西 咸阳 712000)
0 前言
XML是一种近年来流行的标准信息传输和数据转换格式,因为其独立于现有的数据库和编程语言,又具有平台无关性、自描述性、可扩展性、简单方便处理等优点,因此在数据库领域XML的有效存储和管理已成为研究热点.
目前的商务数据主要存在于关系数据库中, X ML和关系数据库之间转换却比较复杂.由于XML文件是基于文本的,而且可能包含许多重复的文本,因此有较高的压缩率.一个相当大的XML文件易于压缩为原来的五分之一甚至是十分之一,从而减少了网络通信量.XML的核心作用体现为数据交换的共享标准格式,所以对关系数据库进行XML集成研究具有重大的现实意义.
1 关系数据库与XML之间的映射方法
根据映射关系的建立方式不同,数据库与XML之间的映射主要有两种方法:基于模板驱动的映射和基于模型驱动的映射,这两种映射都可以在XML文档和数据库之间转换数据.
图1 基于模板驱动的转换方法的构架图
1.1 基于模板驱动的映射
基于模板的映射方法并不是事先定义好XML文档与其他数据之间的映射关系,而是在XML文档中嵌入带参数的SQL命令,这些语句在数据交换过程中被系统所识别和执行,执行的结果被替换到指令所指的位置从而生成目标 XML文档,并用数据传输诸如中间件等实体软件进行处理.图1给出了基于模板驱动的转换方法生成模板的构架图.
例如从数据库中获取商店陈列商品的信息,并以 XML 文档表示:
Select booksname,bookscategory,price from library
该模板中嵌入了一个 sql 语句,当用数据传输中间件进行处理时,每一个 select 语句都会被它的结果所代替,该模板产生的XML 文档如下:
< libraryinfo >
……
Library >
Libraryinfo >
从该 XML 文档的产生可以看出基于模板的转换方法的好处在于转换步骤比较简单,只要给出 XML模板就可以快速地生成相应的XML文档,其不足之处在于基于模板驱动的映射是一层浅层映射,以XML内嵌的 SQL执行的数据结果集为依据,不涉及数据库赖以存在的关系模式,只是将关系数据库中的数据转换为 XML文档模式,并没有提取任何关系模式,它舍弃了关系模式中的种种约束条件,因此是不能做反向转换的,即不能将 XML 文档转换为关系模式,基于模板的转换方法关键是要生成大量合理的模板,为此系统需要为用户提供一套生成模板的工具以及相应的指令执行程序.值得注意的是,当前诸如Microsoft SQL Server 2005等大多的产品都属于模板映射.
1.2 基于模型驱动的映射方法
图2 基于模型驱动的转换方法的架构图
当把数据从数据库传送到XML文档或把数据从XML文档传送到数据库时基于模型驱动的映射不是仅仅依赖内嵌SQL命令,而是通过一个具体的模型来实现.基于模型驱动的转换方法的架构如图2所示.基于对象的映射方法是将数据库中的数据映射为一棵对象树,根据规则将文档的层次结构映射为树状结构(通常是把文档中的元素定义为树的节点),然后将这些对象转换到XML文档中或相反,这种模型对于XML文档与面向对象数据库和层次数据库之间的映射是非常便利的.当与关系数据库进行映射时,可以利用传统的“对象-关系”映射技术来实现.对象关系映射包括两个步骤:首先XML模式映射为对象模式,然后对象模式再映射为数据库模式或相反,这两个映射过程经常结合起来充当一次直接的DTD与数据库模式的映射.元素通常对应了一个对象或属性或PCDATA对象(PCDATA表示已解析字符数据,在这里指不需再解析的最小数据单元),它将XML文档用一棵对象树来表示.关系数据库的理论依据是关系模型,而XML文档的依据是XML Schema或DTD等.把关系数据库转换成 XML 文档时要把一个表或一个查询结果的数据插入到相应的位置即可,而把 XML 文档转换成数据库数据时只要把内容插入到相应的表中即可.目前有两种常用的模型——表格模型和数据专用对象模型.许多转换软件包用表格模型在 XML 文档和关系数据库之间传递数据,它把 XML 文档表示为一个单一的表格或者是表格的集合,这样的 XML 文档的结构可以用如下的形式来表示:
这里关键字 table在把数据从数据库传递到 XML 文档时表示一个单一的结果集,而把数据从 XML 文档传递到数据库时表示一个单一的表格或者视图数据.专用对象模型把一个 XML 文档表示为由数据对象构成的树,每一个元素类型和对象对应,主要在面向对象和层次数据库中使用.通过传统的关系-对象模型也可以映射到关系数据库中,基于模型的转换方法由于有了数据模型的支持,完全可以进行关系数据库和 XML 数据之间的双向转换,但是模型的引入也使得 XML文档的结构受到了一些限制,一个 XML 文档必须符合模型所规定的机构才能将 XML 文档转换成其他类型的数据,而从其他类型数据转换得到的 XML 文档也具有某种结构特点,所以基于模型的转换方法的关键在于设计一个灵活的映射模型,同时该模型能够很好的表达关系数据库的各种约束.与基于模板的转换方法相比,基于模型驱动的映射方法更适于异构数据库间数据的交换,关系数据库的理论基础是关系模型,XML 文档的依据是XML模式,因此关系数据库到XML的映射问题即为关系模式到XML模式映射的问题.
2 关系模式到XML模式的映射
在将关系模式映射为XML模式时,首先要得到XML Schema,需要从具体的关系数据库中反求出关系模式,再根据关系模式重构其有向图,由有向图再生成映射的结构,根据映射结构和有向图将关系模式映射为XML Schema;其次是根据得到的Schema从关系数据库中提取数据嵌入XML事例文档.整个流程如图3所示.
图3 关系模式映射为XML模式流程图
算法的基本流程:
Input:需要提取数据的关系数据库;
Output:用XML格式表示的局部数据库中的数据和格式文档XML Schema;
Step 1:反求提取出关系模式;
Step 2:重构实体完整性约束、参照完整性约束和用户自定义完整性约束;
Step 3:根据模式重构生成映射结构;
Step 4:根据映射结构和重构结果生成XML Schema模式;
Step 5:根据得到的XML Schema模式从关系数据库中提取数据嵌入到XML事例文档;
Step 6:输出以XML格式表示的局部数据库中的数据和XMLSchema格式文档.
3 结束语
随着Web的广泛应用,XML正发挥着越来越重要的作用,如何在数据库中有效地存储XML文档已经成为人们研究的热点,但由于其本身的结构和目前广泛使用的关系数据库不匹配,XML和关系数据库的结合一直没有很好的解决方案.本文中在模型映射法的基础上提出了一种简单的XML文档映射为关系数据库的方法.通过这种映射机制可以进一步促进电子信息的数据交换,同时也为数字图书馆与外界的信息交换提供了技术支持,为网络信息的管理提供了新思路.
[1]吴文辉,殷建平,姚丹霖.关系模式到 XML 模式的转换研究[J].计算机工程与科学,2004,30(18):165-167.
[2] 郑 荣,马世龙.网格环境下基于XML的异构数据集成系统[J].计算机工程,2008,34(22):52-54.
[3] 贾素玲,王 强.XML技术应用[M].北京:清华大学出版社,2007.
[4] 黎东华.XML数据的存储模式的研究[J].计算机与现代化,2006,(11):108-112.
[5]白昱凡,胡绪一,陈家训.基于eMIM的XML与关系数据库的双向映射[J].微汁算机信息,2006,22(1/3):175-177.
[6] 王霓虹,张光磊.基于XML的异构数据库集成的研究[J].信息技术,2006,(5):173-176.
[7] 郭瑞华.XML数据的存储策略研究[J].现代图书情报技术,2005,(6):65-69.