admin 管理员组

文章数量: 1087139


2024年4月19日发(作者:编程课有什么用)

维普资讯

开发案例 

XMI 实现异构数据库间转换 

’ 

聋 。。t } 

。 许光宇 

(安徽理工大学计算机科学与技术系,淮南232001) 

摘薯:网络数据库实现技术与传统数据库在设计结构和平台上的差异成为主要障碍,要想集成 

, 

需要 种合适的数据模型和交换规范。XIVfL是最佳的解决工具,在异构数据集成方面 

【 

_ 

XML提供了相应的功能。 

关键词:XML;异构数据库;映射;对象模式 

0引言 

由于XML数据和关系数据库有着根本性的不同. 

这就需要采用合理的映射机制实现XML到关系数据库 

异构数据源中的数据通过抽取、转换等处理.最终以 

XML文档的形式与其他系统进行数据的共享 对每 

个需要共享数据的数据源.都有一些XML模式与 

之间的映射以及关系数据库到XML的转换.因此XML 

和关系数据库的结合成为了一个重要的研究领域 

之相对应.要实现基于XML的数据共享和管理,必须 

解决XML和本地数据之间的转换问题 

3.1 XML到关系数据库之间的映射 

1 XML简介 

XML语法允许自行定义任意复杂的标记结构. 

使用普通的文本.具有跨平台的优点.采用HTTP的 

在XML文档中涉及的是元素、子元素、属性、处 

理指令、实体、实体引用、名域等概念;而在数据库中, 

涉及的则是表、字段、主键、外键、视图、索引等概念。可 

以认为XML模式与关系模式之间的转换的实质是: 

(1)从XML中的数据f存在方式可以是元素的 

方式传输。因而.XML为异构数据库平台在Web方式 

下的应用提供了有利条件 

2异构数据库分析 

异构数据库系统是相关的多个数据库系统的集 

合,可以实现数据的共享和透明访问。每个数据库系 

值、属性值)到关系模式中的字段的映射; 

(2)从XML中数据的相互位置关系到关系模式 

中的元组与元组的关系及元组与字段的关系的映射 

在进行XML和关系数据库之间的映射时.主要 

统在加入异构数据库系统之前本身就已经存在.拥有 

自己的DMBS。异构数据库的各个组成部分具有自身 

的自治性,实现数据共享的同时,每个数据库系统仍 

保有自己的应用特性、完整性控制和安全性控制。 

异构数据库典型的应用如图1所示。 

工作是建立一个从XML模式到关系数据库模式之间 

的转换规则.只要建立了这个转换规则.就可以通过 

个通用的转换程序来解析这个转换规则.完成 

XML文档和关系数据库数据之间的转换 在进行 

XML模式到关系模式转换时.主要是将某一个符合 

某个XML模式定义的XML文档中的元素的值、属性 

值等部分转换成关系模式中的某个表中某个元组的 

骂 

某个字段的值.而将它们之间的位置关系转换成关系 

模型中的外键引用等关系。那么在上述这个转换规则 

中.首先需要指定数据源的连接信息.以便转换程序 

图l异构数据库应用模型 

● 

可以从数据源中提取数据以生成XML文档或者将 

, 

3 数据格式的转换 

使用XML文档作为数据交换的媒介.即将各个 

收稿日期:2007—05—08 修稿日期:2007—07—26 

 

XML文档中的数据写入到数据源中。其次.在此转换 

规则中需要指定XML元索、属性等与数据源中的表 

j 

: 

_ 

! 

: 

作者简介:许光宇(1976一),硕士,安徽舍肥人,研究方向为数据库和网络技术 

i 

, 

MODERN COM PUTER 2叭8 囝 

维普资讯

\\ 开发案 

XML实例可以包含的XML实例的元素和特性等的 

名称和类型。类似于Java语言中只有属性而没有方 

法的类定义 

或表的字段的对应关系 最后.在此转换规则中需要 

将元素的位置关系或者嵌套关系与数据源中表之间 

的外键引用等关系建立对应 

当前,XML模式和关系模式之间的转换(或者说 

映射)主要有两种方法,一种是“基于表的映射”,另一 

种是“基于对象的映射”。在“基于表的映射”中,XML 

文档作为一个单表或者表集.该方法的突出优点是编 

写代码容易、快速.特别适合于两个关系数据库之间 

的数据转换 在设计转换程序时选择“基于对象的映 

为了将对象的值映射到关系数据库的表中.需要 

建立对象所属的类与关系数据库中的表之间的对应 

关系.这个对应关系按照如下原则建立: 

(1)类中简单类型的属性映射成数据库中的某个 

表的属性列: 

射”这种映射方法 

基于对象的映射方法先把XML文档表示成一棵 

由数据对象构成的树.也即映射成一个对象模式,接 

着使用对象——关系映射技术将对象模式映射成数 

据库模式。基于对象映射示例如表1所示。 

表1基于对象映射示例 

XM 对象 表 

<A> ObjectAf T le A 

<B>Id<B/> B=’’Id’’ B C D 

<C>simple</C> C=”simple 

<D>soft</D> D=-’ soft’’ Id simple soft 

J,A> ) 

为了将XML文档中元素A中保存的数据存储到 

表A冲.首先将元素A对应的数据类型建模成一个类. 

元素A中的数据保存被保存在该类的一个对象A中. 

然后建立对象A所属的类与表A的对应关系,根据这 

个对应关系将对象A中保存的数据作为表A的一个元 

组最终写入到表A中 

3.2基于对象映射的解决方案 

从XML文档到关系数据库映射时.首先将XML 

文档转化为对象.在此对象中封装XML文档的数据 

信息.这个过程的实质是对XML中的数据类型进行 

建模.将某些数据类型建模成类。然后利用对象的永 

久性存储实现从对象到关系数据库的转化 XML文 

档到对象的映射按照如下原则进行: 

现 

代 

f1)简单类型映射成标量数据类型: 

计 

(2)复杂数据类型映射成类: 

算 

f3)复杂类型的每个元素映射成这个类的属性。 

机 

简单数据类型指没有子元素或者属性的元素类 

^ 

总 

型.无法将其分解成子部分,例如XML模式规范中定 

第 

义的标准的简单类型。标量数据类型指的是由一个单 

二 

的数据值组成的数据类型,例如Java中的String数 

上 

,、 

据类型。复杂数据类型指的是有子元素、混和内容或 

五 

有属性的元素类型.复杂数据类型声明了该类型的 

期 

@MODERN COMPUTER 2oo7.8 

(2)类之间的引用关系映射为表之间的外键关联。 

对于上述的第二点.如果类A的一个实例与类B 

的多个实例之间的关联为一对多关系.那么在被关联 

的多个实例对应的元组上面设置到关联它的实例对 

应的元组的外键引用.即在类B映射到的表和类A 

映射到的表之间有外键关联关系。如果实体之间存在 

多对对关系.引入新的表表示这种关联 

对上述的基于对象的转化思想.结合一个具体的 

例子进行说明。下面是一个公司信息的XML模式。 

<xsd:element name=”companyInfo”type--”CompanyInfo— 

Type”,> 

<xsd:complexType name=”companyInfoType”> 

<xsd:sequence> 

<xsd:element nanle=”id”type=”xsd:string”> 

<xsd:element name- ̄”address”type=”Addresslnfo” 

</xsd:sequence> 

 ̄xsd:complexType> 

<xsd:eomplexType name=”Addiesslnfo”> 

<xsd:sequence> 

<xsd:element name=”id”type=”xsd:string”> 

<xsd:element name=”state”type=”xsd:string”/> 

</xsd:sequence> 

</xsd:eomplexType> 

它描述了一个公司的信息以及地址信息.这里的 

地址包括公司所在地的信息。 

首先需要完成从XML模式到类的转换。在这个 

XML模式中具有复杂数据类型的元素companylnfo 

和address。所涉及到的复杂类型有CompanylnfoType 

和AddreSSInfo。根据复杂类型对应到类这一规则。需 

要建立两个类.假设分别是CompanylnfoType和Ad— 

dressInfo。在XML模式中可以看到:类型为Companv 

InfoType的companylnfo元素包含了类型AddreSSInfo 

的address元素。根据复杂元素之间的嵌套关系表现 

为类实例间的成员引用关系这一原则。在Companv. 

InfoType类的实例对象companylnfo中有指向Ad. 

维普资讯

dressInfo类实例address的引用。然后通过方法se— 

</Maps> 

</Map> 

tAddress(AddressInfo address)、getAddress0;setcompa— 

nyId(Stirng id)、getcompanyIdO来返回信息。 

接下来需要完成从类到数据库模式的转换。从类 

到数据库模式进行转换就是完成对象到实体的O—R 

映射,这个映射关系需要自己来指定,根据指定的 

XML模式和关系数据库元数据之间的对应关系可以 

在上述的映射文件中.CompanylnfoType类型中 

的元素映射到CompanyIn表.Addresslnfo类型中的元 

素映射到AddreSSInf表.其中Companylnf和Address— 

Inf表是一对多的关系.Addresslnf表中的CompanyID 

字段是CoInpanyInf表的外键.它与Companylnf表的 

生成一个映射文件。映射模块依据这个映射文件将对 

主键id相对应 一个ClassMap元素描述了一个表的 

象存储到关系数据库中去。根据前面的映射原则,类 

对应于表,类中的简单类型成员对应于表中的字段, 

类和类之间的引用关系通过不同表之间的外键关联 

实现。对应的映射文件如下所示: 

<Map> 

<Database Name=”Default > 

<Table Name=”Companyln_e > 

<Column Name=”Id“DataType=”VARCHAR2”,> 

・・・

Primarykey deifnition・・_ 

</Table> 

<Table Name=”Addressln_e’> 

・-・

Column type edfinitoin・・・ 

・・_

Primarykey edifnitoin・・・ 

・・・

Foreignkey edifnitoin・・・ 

</Table> 

</Dat ̄Iase> 

<Maps> 

<ClassMap> 

<ElementType Name=”CompanylnfoType”,> 

<ClassTable Name=”Companylnf'’,> 

<PropertyMap> 

<ElementType Name=”id”,> 

<Column Name=”id”,> 

</PropertyMap> 

</C1assMap> 

<ClassMap> 

<ElementType Name=”Addresslnfo”,> 

<ClassTable Name=”Addresslnfo”,> 

<PropertyMap> 

<ElementType Name=”id”,> 

<Cohmn Name=”Id”,> 

</PropertyMap> 

<Propert3,Map> 

<ElementType Name=”state”,> 

<Column Name=”State”,> 

</PropertyMap> 

</ClassMap> 

字段与XML模式中元素的属性的对应关系 

3.3关系数据库到XML的转换 

从关系数据库到XML的过程是从XML到关系 

数据库的逆过程。它分两个步骤完成。首先从关系数 

据库中获得一个对象.然后以该对象作为参数.调用 

映射模块将对象转化为XML文档。再将对象转化为 

XML文档的过程中采用DOM文档对象模型.将对象 

映射为XML文档中的元素.对象的简单类型的属性 

映射为该元素的子元素.并且该子元素是一个叶子节 

点 对象之间的引用关系表现为XML文档中元素之 

间的嵌套关系。如果一个对象是另一个对象的成员. 

那么这个对象在XML文档中对应的元素是另一个对 

象所对应的元素的子元素。最顶层的对象转化为 

XML文档的根元素 对于每个对象的处理都是创建 

个元素.同时将该元素添加到文档树的某个位置 

当对象处理完毕后.在内存中建立了一棵完整的 

DOM树.将此DOM以XML格式输出.即可生成最终 

的XML文档 

4 结 语 

目前.数据库已不再仅仅局限于存储数据.而是 

向着更深层次、更多样化发展.它已经广泛运用于 

OLAP、OLTP、数据仓库、数据挖掘、移动计算、嵌入式 

计算和Web应用等诸多方面 通过XML来集成数据 

库.以达到异构数据库之间的共享和透明访问。 

参考文献 

习i 

【1】特(White,C).XML从入门到精通:黄金版.周生炳等译. 

爿 

北京:电子工业出版社.2002,1 

【2】埃克尔(Eekel,B).Java编程思想(第二版).侯捷译.北京: 

# 

机械工业出版社.2002.9 

, 

『3]John Camell等.Oracle 8i应用高级编程.郝启堂译.北 

{ 

京:清华大学出版社.2002.1 

j 

: 

【4】http://www.xm1.org, 

J 

, 

(下转第118页) 

j 

I 

、 

MODERN COMPUTER 2007.8 o 

维普资讯

vin.clear0; 

】 

l; 

以上的版本才能全部实现,并在Flash 8中调试通过。 

当然加载外部资源的方法和文件还不止以上所述.还 

需要Flash的编程爱好者进一步的探索和研究。Flash 

中的ActionScript描述语言.为Flash的使用者提供了 

更广阔的空间,也便Flash本身更加“闪光”。 

参考文献 

、 

cload.addevendistenerf“click",oloader); 

cunload.addeventlistenerf“click",oloade ̄; 

focusmanager.defauhpushbutton=cload; 

⑩保存aa4.fla文档。在tv字段输入sp.fly。单击 

ad FLV按钮,视频将在vid实例中播放;如果单击 

Unload FLV按钮.停止播放并且图像不出现在rid实 

例中。 

【1]Reinhardt,R.Flash 8宝典.邱燕明,周瑜萍等译.北京:电 

子工业出版社.2006 

[2】陈冰.Flash第一步——Acti0nScripl编程篇.北京:清华 

大学出版社.2006 

5结语 

Flash的上述加载外部资源的功能.需] ̄"Flash 8 

Load Exterior Resources in Flash Film 

LI Shu-mei 

(Computer Center,Liadong oUniversity,Dandong 1 18OOO) 

Abstract:The ActionScrep is a kind of program languagein Flash,it provides the method of basic and 

advance method to make preloader,it can create the alternation of film,load more exterior 

esourcesr in Flash film,make Flash Can realize more function. 

Key', ̄ords:Flash Film;Load;Exterior 

(_Lag 99页) 

Conversion between HeterOgeneOUS Databases 

Based on‘X  M L

现 

代 

计 

尊 

饥 

^ 

XU Guang—。yu 

(Department of Computer Science and Technology,Anhui University of Science and Technology,Huainan 232001) 

总 

: 

、 

Abstract:The diferences between implement technology and traditional database in structure and plat— 

form become the main obstacle.It is essentil tao find a suitable data model and exchange 

standard.In the integration Heterogeneous database,XML is the best solution. 

Key', ̄ords:XML;Heterogeneous Datbaases;Mapping;Object Model 

l 

, 

MODERN COMPUTER 2伽7.8 


本文标签: 映射 对象 关系 数据