一种基于分层框架的XML发布方法

2008-07-14 10:05姜淑娟
电脑知识与技术 2008年18期
关键词:约束语义

曹 挚 姜淑娟

摘要:因特网的不断发展使得XML成为Web上数据交换和表示的标准格式,但是大量的商业数据仍然存储在关系数据库中。因此必须将关系数据发布成XML文档进行传输。提出了一种基于分层框架结构的关系数据库向XML的映射方法,并在分层结构中定义了一种XML模式图作为XML的概念模型。得到的XML文档能够很好地反映关系数据库的语义和各种约束并且没有引入数据冗余。初步实验结果表明方法具有较高的效率和较好的准确性。

关键词:XML;分层框架;发布;关系数据;语义;约束

中图法分类号:TP312文献标识码:A文章编号:1009-3044(2008)01-10ppp-0c

A layered Framework-based XML Publishing Method

CAO Zhi, JIANG Shu-Juan

(Department of Computer Science and Technology, China University of Mining & Technology, Jiangsu Xuzhou 221008, China)

Abstract: With the development of Internet, XML is emerging as a standard for exchanging and representing business data on the World Wide Web. However, most business data will continue to be stored in relational database systems. So some mechanism is needed to publish relational data as XML documents. A layered framework-based XML publishing method is presented in this paper, and a XML concept model is defined in the layered framework. The result of XML documents can reflect semantic and constraints in relational source while introduce no data redundancy. Experiment result can prove the method effective and precise.

Key words: XML; publish; relational data; semantic; constraints

可扩展标记语言XML从出现到现在,已经逐渐成为Web上表示和交换数据的标准格式。XML没有标签集,每个应用可以选择自己需要的标签。这种特征是XML用于数据表示和交换的关键所在。

但是,由于关系数据库技术的成熟,并且有很好的稳定性和处理能力,大量企业数据仍然存放在关系数据库中,所以为了在Web上进行数据交换和集成,必须把关系数据库中的关系数据发布成能在Web上传输的XML数据,这在电子数据交换领域中的需求十分迫切,比如医保系统,电信系统等等。一般来说,该类转换称为XML的发布[1](XML Publishing)。

本文的贡献在以下几个方面:①提出了一种基于分层结构的关系数据库向XML转化的框架。②在分层框架结构中定义了一种XML模式图作为XML的概念模型。这种模型与EER模型相对应。体现了关系数据中的各种语义和约束。③分析了分层框架结构中的几个转化步骤并详细阐述了其中重要的几个方面。

1 相关工作

关系数据的XML发布是近年来XML数据管理领域中研究的热点,学术界和工业界的研究者们从不同的侧重点出发取得了许多成果,提出了一些发布算法并设计了一些转换工具。目前与之相关的研究工作已经取得了一定的进展。

两个著名的XML发布系统SilkRoute[2]和XPERANTO[3]分别基于视图定义语言RXL和扩展SQL实现关系数据的XML发布。SilkRoute中间件系统通过RXL这种描述性的查询语言指定关系到XML视图的转换。XPERANTO系统中描述关系数据到XML文档的转换语言是基于SQL的,加入一些标量函数和聚集函数扩展SQL,使其具备XML构造能力。这两种系统的缺点是没有考虑XML文档的类型和约束问题,也仅支持单数据源查询。

比较著名的算法是Lee等人提出的三个算法即FT和NeT[4]以及CoT[5]。FT算法将平坦的关系模型转化成平坦的XML模型,丢失了所有的结构和各种约束。而NeT算法对FT进行了改进,通过不断地将嵌套操作符应用到每张表来从一个平坦的关系模型中获得一个嵌套结构使得XML模式的结果成为层次性的结构。而CoT算法做了进一步的改进,不仅仅考虑了关系模式的结构,同时也考虑了转换过程中例如包含依赖等的语义约束。

2 分层框架结构

我们将数据库分成三层,分别为关系数据层,关系模式层和概念模型层。关系数据层抽象为通过主键和外键连接的一些关系表,而关系模式层即为关系模式,概念模型层为EER模型(扩展的实体-联系模型)。我们同样把XML也相应地分成三层,从下到上依次为XML文档层,XML模式层,XML概念模型层。XML的三层与数据库的三层一一对应。其中XML模式层我们选择了DTD。而我们提出了一种XML模式图作为XML的概念模型。整个框架结构如图1所示:

图1 分层框架结构

3 关系数据库向XML文档的映射过程

从图1中可以看出,整个转换过程可以细分为以下几步:第一步将关系模式转化成EER模型,这个过程称为反向工程;反向工程的过程中保存了关系数据源的所有语义。第二步是将EER模型转化成XML的概念模型。第三步将XML的概念模型转化成XML的模式,最后一步是根据数据库和XML模式来获得最终的XML文档。

3.1 关系模式向EER模型的转换

这一转换过程被是由逻辑模型到概念模型的转换,与正常数据库的设计顺序相反,因而被称为反向工程。反向工程描述怎样从关系数据库中根据各种约束条件得到EER模型。其基本思想是基于主键及外键约束来建立初始关联,包括所有的一元,二元及多元关系。然后确定基数约束,进而优化消除对称,传递等关系,并分辨出那些是is-a关系,那些是part-of关系及关联关系,并通过集成将表达相同意思的同类实体合并,由这个过程可以抽取出关系数据库的语义信息。文献[6]描述了这个转换过程。

3.2 EER模型向XML Schema的转换

这一步又被称为正向工程,是语义保存的过程。整个映射过程分成两个部分,分别是结构映射和语义映射,下面分别加以阐述。

3.2.1 结构映射

结构映射的过程很简单。第一步是“根”关系转化成根元素。这里就是要定义EER模型中的根关系作为DTD中的根元素。然后将根元素和相关信息加入到DTD中。第二步是将EER模型中的实体转化成DTD中的元素。第三步是将外键转化成元素/子元素的联系,在DTD中用ID和IDREF来表示。

3.2.2 语义映射

我们将EER模型分成以下几种情况:分别是ISA联系的转化,分类的转化,聚集的转化,不同基数的转化,以及多元联系的转化和弱实体的转化。其中基数又分成一对一、一对多和多对多的情况。这些都是语义的转化。

(1)ISA的映射:

ISA的联系是一种继承的关系。ISA定义了一个子类实体和一个父类实体之间的联系。我们将每个子类实体作为一个孩子元素指向其父元素。如图2所示。

图2 ISA联系的映射

(2)聚集的映射:

聚集是EER模型中所特有的一种语义,是一种高度的抽象。通过这种抽象,联系被当作实体来看待。在图3中,实体B、实体C和联系R1形成了一个聚集实体同时与另外一个实体A相联系。它们可以被映射成DTD和XML文档如下所示。

图3 聚集的映射

(3)基数的映射:

基数是指一个实体通过一个联系集能同时与另一实体相联系的实体数目。在EER中,基数可以分成三种,分别是一对一、一对多和多对多。我们对这三种不同的类型进行分别讨论。其中图4表示基数为一对一的映射,图5表示多对多的映射,而对于一对多的情况只需要在子元素后面加上星号即可。

图4 基数为一比一的映射

图5 基数为多对多的映射

(4)多元联系的映射:

多个表相互关联就形成了多元联系。这里主要是指元数大于3的情况。在DTD中,我们将多元联系转化成元素的组,映射过程如图6所示:

图6 N元联系的映射

(5)弱实体的映射:

弱实体依赖于强实体。在DTD中,我们将强实体转化成一个带有ID属性的元素而将弱实体转化成另一个带有IDREF属性的元素。如图7所表示。

图7 弱实体的映射

3.3 XML文档的生成

根据原有的关系数据库和生成的XML模式,可以得到对应的XML文档,限于篇幅,仅仅给出算法的描述。

输入:XML模式和关系数据库

输出:对应XML文档

begin

while not end of element do

read an element from the translated target DTD;

read the tuple of a corresponding relation of the element from the source relational database;

load this tuple into a target XML document;

read the child elements of the element according to the DTD;

while not at end of the corresponding child relation in the source relational database document

read the tuple from the child relation such that the childs corresponding to the processed parent relations tuple;

load the tuple to the target XML document;

end loop

end loop

end

最后,我们对关系数据库和XML文档进行相同条件的查询,得到的结果从内容上说是完全相同的,这就证明了我们转化算法的精确性。

4 结论与进一步工作

我们提出的分层框架结构能够很好地解决XML发布过程中的语义丢失的问题,并且保存了原有关系数据库中的各种约束。由于XML的嵌套特性,容易引起冗余,我们在转化过程中保证了没有引入冗余现象。进一步要完成的工作是利用这个分层结构进行反向转化,即由XML文档向关系数据库进行转化,称为XML的存储。另外这种反向转化同时也能够很好地验证XML发布的结果是否准确。

参考文献:

[1] J.Shanmugasundarm,E.Shekita,et al.Efficiently publishing relational data as XML document[A].Proceedings of the 26th VLDB Conference[C],Egypt,2000:65-76.

[2] Mary Fernandez,Yana Kadiyska,Dan Suciu,et al.SilkRoute: A framework for publishing relational data in XML[J].ACM Trans on Database Systems(TODS),2002,27(4):438-493.

[3] Michael Carey,Daniela Florescu,Xachary lves,et al.XPERANTO: Publishing object-relational data as XML[A].In: Proc of Workshop on the Web and Databases 2000[C].New York:ACM Press,2000:105-110.

[4] D.Lee,M.Mani,F.Chiu and W.W.Chu.Nesting based relational-to-XML schema translation[A].In Int'l Workshop on the Web and Databases (WebDB)[C],Santa Barbara,CA,USA,2001,3:61-66.

[5] D Lee,M.Mani,F.Chiu and W.W.Chu.Net&CoT: Translating relational schemas to XML schemas using semantic constraints[A].In 11th ACM Intl Conf. on Information and Knowledge Management (CIKM)[C],McLean,VA,USA,2002,12:282-291.

[6] Reda Alhajj,Extracting the extended entity-relationship model from a legacy relational database[J].Information Systems,2003(28):597-618.

收稿日期:

作者简介:曹挚(1983-),男,江苏徐州人,硕士研究生,研究方向为计算机网络和XML数据库等;姜淑娟(1966-),女,山东莱阳人,博士,教授,研究方向为程序设计语言。

猜你喜欢
约束语义
“碳中和”约束下的路径选择
约束离散KP方程族的完全Virasoro对称
语言与语义
“上”与“下”语义的不对称性及其认知阐释
认知范畴模糊与语义模糊
不等式约束下AXA*=B的Hermite最小二乘解
语义分析与汉俄副名组合