XML在异构信息资源集成模式中的应用

2011-02-19 07:48
制造业自动化 2011年2期
关键词:关系数据库数据类型结点

苏 茁

SU Zhuo

(内蒙古电力勘测设计院,呼和浩特 010020)

0 引言

随着数据库技术发展和应用的逐步深入,不同的数据库管理系统导致了在各行各业的信息系统中信息资源的异构性,形成了不少信息孤岛,阻碍了信息资源的集成与共享。只有有效的集成异构数据库中的数据,才能进一步实现网络环境下的信息共享。本文基于异构数据库集成所面临的问题,提出了在XML框架下实现的异构数据库集成模型,具有较重要的理论价值与实践意义。

1 系统需求分析

不少信息集成系统均以自定义的格式描述和显示数据,不能用一种标准化的形式显示集成后的信息,对各个系统之间的信息交换造成了影响。信息资源集成模式最首要的需求,就是在集成传统的数据库中的结构化数据的基础上,能够对应用广泛的非结构化和半结构化数据进行集成;在集成传统数据的基础上,能够对多媒体数据进行集成;在集成己有数据源中的数据的基础上,能够对不断涌现的新数据源中的数据进行集成。

2 系统详细设计

2.1 系统的模式结构

解决异构数据库问题比较理想的方案是引入中间件,XML在这种方式中具具有数据描述和传送能力,能够作为数据源交互媒介。其中,数据转换能力由XSL和XSLT技术支持,开放的编程接口由DOM和SAX提供,从XML文档集合中提取数据可以用XQuery查询语言实现。可以看出,XML技术可以完好地支持异构数据库集成。

以XML技术实现异构数据库的集成,需要在XML格式和底层异构数据格式之间建立映射,从而将异构数据转换成XML文档,在数据结构和数据操作的基础上,还要实现完整性约束,以避免插入和删除异常。本文将XML异构数据库结构分为三层,自上而下分别是应用层、XML中间件层和数据库层。如下图所示。

其中,数据库层由不同结构的数据组成,属于系统的数据源,包括各种类型信息,如文件、多媒体等。系统为了统一处理,对来自于不同数据库的各种数据必须用一种公共媒介表示。XML支持表示数据的标准语法,能由XML语法分析程序处理的XML文档,因此集成层的数据描述工具采用XML,并采用XML Schema作为公共媒介。

图1 系统的模式结构

XML中间件层的功能是进行数据库转换以支持数据的透明访问。向上为各种应用提供统一接口,向下协调各数据源。中间层通过运行代理程序来对数据库中的数据进行访问、将此数据转换为XML格式并输出XML文档。XML在此处的功能是联系异构数据库,首先提取出一个数据库中数据,将其转换为XML进行发布,在经过了应用层处理后,重新存回数据库之中。

应用层根据用户计算环境和具体的应用为用户提供使用的界面,采用合适的应用软件和信息访问技术。基于XML能够实现多种基于Web浏览器的显示模式。

2.2 XML和数据库的映射

基于XML技术进行数据集成,一个正确的结构映射关系是十分必要的,一般来说有两种映射方式,分别是模板驱动与模型驱动方式。

模板驱动映射方式的实现,是在映射过程中将带参数的SQL命令嵌入一个模板中识别和执行,从而生成目标XML文档。这种方法步骤比较简单,但是由于不涉及关系模式或对象模式,以SQL执行的数据结果集为依据,因此不支持双向映射。模型映射不是仅仅依赖内嵌SQL命令,而是用一个具体的模型实现的,其关键之处在于在XML Schemas或DTD和数据库模式之间建立双向映射。模型驱动的映射机制有两种,分别是基于表的映射和基于对象的映射。

基于表的映射以单一的表格或者是表格的集合表示XML文档,以子元素或属性的形式存储映射到XML文档的数据。优点是直观简单,但是由于表是二维关系,难以表示如表之间的逻辑关系等XML嵌套结构;基于对象的映射则将数据映射为对象模型,然后转换对象模型,使之成为XML文档。这种模式映射比较丰富,但是由于引入了模型,限制了XML文档。

基于XML Schema的映射模式则具有良好的描述性和扩展性,属于模式和模式之间的深层映射。因此,本文描述关系数据将使用XML Schema,探讨XML文档和关系数据库模式之间的模型映射。

2.3 数据结构的映射

本文是实现从数据库模式映射到XML文档时,将各字段映射为子元素。如何实现关系数据库和XML Schema的双向映射是本文讨论的重点。

由关系模式映射为XML模式,主要解决的问题包括:1)能够用XML表示出关系数据的精确结构;2)能够用最好的方式进行表达。在对象关系映射中,由数据库一个或多个相关的表构成一片森林。考虑到XML文档的数据结构是树状结构,本文提出基于对象树的映射算法,完成XML Schema与数据库的映射,能够对关系数据库的结构和语义较好的表述。

关系数据库中的一个数据表用一棵对象树描述,XML Schema的一个元素对应树中的每个非叶子结点,进行以下定义:

1)树对应的数据表信息用树的根节点描述,说明数据源的类型数据表的名称,以及数据源所在的物理位置。

2)由于关系数据库中主键和外键约束不等价于XML Schema中主键和外键的定义,因此将数据表中的属性分为三类,分别是主键属性、外键属性和非键属性,根结点的三个孩子就是这三个结点,相应的数据表的属性是其子结点。

3)树的第三层是主键属性、外键属性和非键属性的子结点,对关系表中的各个属性进行描述。

4)关系表的自定义完整性约束描述是树的叶子结点,包括数据长度、数据类型、默认值约束和是否为空。

对象树的生成算法如下:

Create Tree()

{结合数据表,生成一棵对象树,使用XML Schema描述;

生成结点名为数据表的基本信息的根结点,;

为根结点生成三个孩子结点:分辨代表主键属性、外键属性和非键属性;

While Not End of(Attribute)

{If属性属于主键

If属性不属于外键

Then为主键属性结点生成以该属性名命名的孩子结点;

生成两个孩子结点,分别代表类型和长度;

If属性的组合是数据表主键,

Then在个定义主键时生成孩子结点,表示是否为空;

Else If 属性属于外键

Then为外键属性生成一个以该属性名命名的孩子结点;

生成两个孩子结点,表示是否为空和关联字段;

Else生成一个以该属性名命名的孩子结点;

为该属性结点生成类型、长度、是否为空和默认值的四个孩子结点;

基于对象树的映射算法可以多次复用,系统的性能大大提高了。

2.4 语义约束的实现

1)主键约束

在XML中ID属性可以为空值,而关系数据库中主键的定义具有强制性,没每关系必须有主键;因此,如果出现关系表的主键是属性的组合等情况的话,文档会出现语法错误。在XML Schema中对主键定义的方法进行了明确,需要对两部分进行说明:(1)主键的XML元素或属性;(2)主键起作用的范围和组成。

在基于XML Schema的语义约束中,分两种情况,即主键是单一属性和主键是属性组合。主键是单一属性,则用Primary Key约束定义;主键是属性组合,则使用Unique约束。

2)外键约束

XML实现层次数据是通过使用嵌套元素或者以近似外键的引用机制进行的。在管理具有层次特征的数据库方面,XML比关系数据库具有更多的灵活性。XML与关系数据库的不同之处在于:被外键引用的元组在关系数据库被限制在该元组的关系中;而被引用的元素在XML中并不限制元素类型。

3)用户自定义完整性约束

在XML Schema中,使用元素或属性的default属性设置默认值作为列的默认值,数据的长度设置使用length属性,XML与关系数据库相似,允许元素的属性为空。有三种方法可以实现XML表示是否为空,分别是:use(可选属性),nillable元素和minOccurs/maxOccurs元素。如果是简单类型,则使用可选属性use;如果是复杂类型,则可以使用nillable元素和minOccurs/maxOccurs元素。其中,maxOccur的含义是字段取值的最多个数,minOccurs的含义是字段取值的最少个数。

2.5 数据类型的映射

对数据类型的定义,不同的数据库以及不同版本的数据库是有差别的。XML文件中的所有数据都是文本(非解析实体除外),XML和关系数据库之间存在着许多不同,包括数据类型、格式和表示方法。这是由于数据库在于描述结构化数据,XML适于描述半结构化数据。所以,解决这两者之间数据格式转换问题是实现基于XML的异构数据库集成的前提条件。XML和数据库数据类型的转换通常由数据交换程序负责完成。常见的转换方法有两种。一种方法是由用户明确指定数据类型,另一种方法是程序根据数据库模型来确定数据类型。数据类型的映射分为以下几种情况:

1)基本数据类型映射的实现

XML Schema数据类型体系是比较完善的。XML Schema定义了简单数据类型和复杂数据类型两种主要的类型,简单类型的组合就构成复杂类型是,简单类型还可以进一步细分为三种,即原子类型、列表类型和联合类型,二者之间通过基本数据类型映射表实现映射。

2)二进制数据映射的实现

XML文档是文本文件,二进制数据映射的实现有三种处理方法,分别简述如下:(1)将二进制数据使用CDATA标记嵌入到XML文档中。(2)使用BASE64将二级制数据进行编码,赋予其字符特征。(3)使用基于MIME标准的编码方法,将二进制数据嵌入到XML文档中。

3)空数据映射的实现

当映射XML文档的结构到数据库时,将空值属性映射到 null columns 允许空值的字段,以避免产生插入错误或非法文件错误。

4)指令和注释映射的实现

XML文档数据并不包括处理指令和注释,因此,大部分数据转换软件都不能处理指令和注释。这些指令和注释可能在XML文档中的任何地方出现,因此进行对象-关系型映射或基于表格映射是不容易的。如果为这些注释处理和指令专门准备一个表格,将指向这个表格的外键附加在其他表格上,则会导致每当处理别的表格时,这些表就要被检查。因此,本文选择简单地忽略处理指令和注释。

3 结束语

本文结合XML具有自描述性、可移植性和互操作性的优势,以这种技术构建中间件,实现异构数据库的资源共享和集成。本文提出了一种基于对象树的映射方法,实现了关系模式和XML文档的相互转换。同时对数据的语义约束进行了保留。这种方法的优势在于完整地保留了关系模式中的语义约束条件以及主键、外键、数据类型等,同时也保证了数据结构在模式映射过程中的正确性,具有较好的推广价值。

[1]B.Srinivasan &J.Zeleznikow Ed.,“Databases in 2007s”,World Scientific,Singapore,2008.

[2]张雪洁.基于XML的数据库集成平台框架及关键技术研究,南京:河海大学,2006.

[3]陈刚.基于CORBA的异构数据库系统集成模型的研究 [J],现代计算机,2005,(5):9-13.

[4]Won Kim,Ki-JoonChae.Component-Based Knowledge Engineering Architecture[J],JOOP,2009,12(6):44-45.

猜你喜欢
关系数据库数据类型结点
关系数据库在高炉数据采集系统中的应用
LEACH 算法应用于矿井无线通信的路由算法研究
基于八数码问题的搜索算法的研究
如何理解数据结构中的抽象数据类型
关系数据库技术在计算机网络设计中的应用
基于SeisBase模型的地震勘探成果数据管理系统设计
探讨关系数据库设计中范式理论的教学方法
线上众筹产品的特征分析与研究
相似度计算及其在数据挖掘中的应用