admin 管理员组文章数量: 1087135
2024年4月19日发(作者:来自日本的加密软件)
数据库・信息技术・Informat ion Technology
基于XML异构数据库
数据转换技术的研究
王亮
(煤炭科学研究总院经济与信息研究分院软件研究所 北京100013)
【摘要】文章是对数据共享和同步技术的研究,主要是针对不同部门数据库之间的数据转换技术,采用系统服务
组件的设计理念,耦合程度低。主要实现方式是采用XML文件格式来描述异构数据库的结构信息,然后采用模糊匹
配的方式计算两个数据库的异构程度,抽象出符合目标数据库的表结构。最后按照这个结构抽取源数据库的有用数
据。导入目标数据库中。
【关键词】异构数据库;数据转换技术;XML
Research on Heterogeneous Database Based on XML Data Conversion Technology
Wang Liang
(China CoalResearch Institute,Economy&Information Research Institute,Institute ofSoftware Beijing 100013)
【Abslmct】This article is a research on the data sharing and synchronization,mainly for the data exchange technology between databases of diferent
sectors.The file of XML is used to describe the heterogeneous structure of the database information,and then calculate heterogeneous degree of wo t
databases by using the fuzzy matching after akitng out the ablte stuctrure which in line with the artget database.Finally,according to the structure f osource
database which contain useful data,it could be imported ot he tartget database.
【Keywords】heterogeneous database;daat exchange technology;XML
1 xML与LINQ的开发架构
Y-JV[L和数据库之间是互补的关系XML更适合于
动态的数据交换和集成,与平台无关。XML的自定义性
数据访问的内容,因此表示层中不能使用L O语法直
接去访问数据。其次。LrNQ对于过滤、排序等数据的处
理结果不容易与项目自定义的类整合,常常需要遍历整
及可扩展性,它足以表达各种类型的数据.作为独立于
平台和设备的结构化数据表达方式,它有效地实现了计
算机之间的数据交互。
LINQ技术的出现,改变了人们常用的软件开发的
三层架构。首先由于LrNQ是直接对数据源进行操作.
个数据才能生成自定义类或类的数据序列,从而影响了
软件本身的结构。以SQL Server的数据库为例.本文构
建一个基于LrNQ的三层架构的软件应用.描述在
LrNQ技术下构建的三层体系结构。
建立了对象和表之间的关系,封装了对表进行创建、修
改、删除和查询的操作,在进行简单功能开发时,利用
L[NQ生成的数据访问层直接和表示层结合,开发效率
高,并且开发代价小。在使用uNO时通常与C≠}等后台
代码混用,而三层结构不允许在表示层中使用任何有关
LrNQ到SQL层:L1NQ可以快速创建基于数据库
图1 LINQ的三层架构图
信息安全与技术-2012年8月・77・
Information Technology・信息技术・数据库
表结构的对象,并根据表之间的关系,创建对象之间的
Task info对象数据
public static void DeleteTask(Task infotask)//删除
Task info对象数据
联系。它实现了对数据库表的操作和表与对象之间的映
射。但是目前只有SQL Server对LINQ的支持较好.建
立dbml文件后利用对象设计器进行实体建模,其他产
品的数据库目前还不能使用LINQ到SQL的方法建立
public void InsertTask
Task info对象数据
(Task infotask)//插入
模型。本文中以Task info表为例,生成Task info类,并
生成了Task info表的CRUD操作的代码。
数据访问层:为了降低数据访问层和业务逻辑层的
耦合,需要在数据访问层加入对各对象的操作方法。比
如针对任务表Task info的业务处理.创建Task infoDB
类结构如下:
public abstract class Task
infoDBBase
——
{
public virtual OperationStatuslnsertTask
fTask
infotask){}//添加对象
public virtual OperationStatusDeleteTask
(Task
infotask){}//删除对象
public virtual OperationStamsUpdateTask
(Task
infotask){}//更新对象
public abstract Task
—
infoGetTask(stirng tasklD){}//
获取对象实例
public abstractlEnumerable<Task
_
info>GetTasks(){}
//获取对象序列
}
每个方法中接收业务逻辑层传递的参数,处理相应
的事务。根据业务逻辑层处理的需要,可对数据访问层
扩展.分别创建其他对象的对应的类。这和设计模式中
的丁厂模式有点类似,不同的是这样结构的类中的方法
直接对应于上层。也就是业务逻辑层类的方法的调用。
业务逻辑层:业务逻辑层主要是提供对异构数据库
解析和数据库结构抽取以及数据导人导出等主要业务
的处理,接收上层即表示层的数据,通过个性化需求的
处理,传递给下层即数据层处理相应事务,针对项目应
用的业务规则、合法性校验等进行处理。对于Task相关
的业务处理。创建的类结构如下:
public class Task infoBusinessObject
{
public Task
infoGetTask(string tasldD){}//获取对象
实例
public IEnumerable<Task info>GetTasks 0//获取列表
public void UpdateTask fTask
infotask)//更新
・
78・2012年8月・VtWW.infosting.org
}
表示层:表示层不需要在服务器端写代码就可以完
成本次业务的处理。在传统的三层结构中加入LINQ到
SOL的数据访问层,隔离了业务逻辑层对数据源的访
问,项目具有良好的扩展性,可以快速响应需求的变化。
比如要增加一个对task数据操作的功能.那只需要在表
示层中加入描述该功能的代码,而实现交给业务逻辑
层,继而传递到数据访问层,通过LINQ实现的数据操
作方法,完成了项目的需求上的变更,而且降低了各层
之间的耦合度,有利于程序的使用功能的扩充。
2异构数据库分析
异构数据库是指多个类型不同的数据库系统之间
相互协作,在逻辑上形成一个统一整体。使用户访问这
些异构数据库.不必关心各个局部数据库之间的硬件、
操作系统、通讯方式、DBMS和语义的不同,而同时每个
独立的数据库系统本身的应用特性、完整性控制和安全
性控制等都得到了充分保证。建立异构数据库系统的目
的就是淡化各局部数据库的不同,建立统一的全局数据
模式。实现用户对数据库的透明访问。
在数据量大而且表结构复杂的情况下,要想判定两
个数据库物理上的异构性.是非常复杂的过程,所以在
某种程度上,可以认为两个数据库的异构程度,或者说
两者的相似性是一个模糊现象,本文借用模糊数学的定
义来描述这种模糊现象,将两个异构数据库之间的异构
程度用数值来描述。
定义1:设在论域U上给定的一个映射
A:U一[0,1]
ul—A(u)
则称A为U上的模糊集,称为A的隶属函数。
通过定义可以看出,评定一种模糊现象,它的量化
范围为0到1的闭区间。取值类似于说明,该u在多大
程度上满足给定的关系映射。另外在具体决策中,决策
者还需要有个心理底线,就是说大于多大数值,这样的
程度是可以接受的,或者说两者是相同的;小于多大的
数值,这样的程度是不能接受的,认为它们是不相同的。
于是还需要借用一个截集的概念。
数据库・信息技术・Information Technology
定义2:设A∈F(u), ∈[0,l】,记A ̄{uluEU,A(U)
1,称A 为A的一个 截集。
有了这个概念,对于评价异构数据库异构程度是有
的模型M.想确定M和哪一个比较类似。确定论域U=
{u1,u2,u3,u4,u5,u6,u7},u1表示数据库产品,u2表示用户
表的数目.u3表示用户表的名称,u4表示用户表的主
帮助的.可以作为一个标准来为决策服务。与截集概念
相关的有一个定理叫分解定理,它的主要变现为按照评
键,u5表示字段数目,u6表示字段名称,u7表示字段类
型。而两个模型在论域上的值为:
价标准 来分段的论域集合。
定理1(分解定理):设A∈F(u),则A=U(kAy)
hetoa]
通过这个定理,可能会很容易辨认出符合一定程度
相似性的指标有哪些。如果再转变一下对隶属函数的观
点,将隶属度的概念转化为模糊集合的模糊度的概念的
话,那么就得出了模糊集的模糊度的概念,定义如下:
定义3:若映射d:F(U)一[0,1]满足条件:
(1)当且仅当A∈P(U)时,d(A)=0;
(2)VUEU,当且仅当A(u)=I/2时,d(A)=1;
(3)VUEU,当B(u)- ̄-A(u)l/2时,d(B) d(A);
(4)A∈F(u),d(A)=d( ;
成映射d为上的一个模糊度,d(A)称为F集A的模
糊度。
从这个定义可以看出几点,(1)普通集合不模糊;(2)
隶属度恒为时,最模糊;(3)在[0,1,2],模糊度也是递增
的;(4)模糊集的模糊度和模糊集的补集一样模糊。
以上讨论的都是单个集合的模糊特征.当涉及到两
个模糊集合的关系问题,需要引入一个新的概念,模糊
集的贴近度。
定义4:设A,B,C∈F(u),若映射N:F(U)×F(U)一
[0,l】满足条件:
(1)N(A,B) (B,A)
(2)N(A,A)=1,N(U, )=0
(3)若AC_B C,则N(A,C)- ̄-N(A,B)AN(B,C)
则称N(A,B)为F集A与B的贴近度,N称为F(u)
上的贴近度函数。
定理2(格贴近度定理):
n
(1)当u为有限论域时,Ao B=U(A(Ui)AB(Ui))
(2)当u为无限论域时,Ao B=U(A(u)AB(u))
u∈U
N(A,B)=(A。B)八(( 。B0称为F集A,B的贴近度,
叫做A,B的格贴近度。
举例一个简单的例子:现在有已经与目标库对比过
的两个异构数据库的指标分析样本M1,M2以及待确定
Ml={0,0.1,O.1,0.1,0.3,0.1,0.2}
M2={O.9,0.4,0.5,0.5,0.2,0.5,0.5)
通过与目标数据库结构XML文件的对比,按照隶
属度计算公式,得到模型M的值:
M=f0.5,0.5,0.2,0.6,0.6,0.1,0.5)。
根据格贴近度计算公式N(A,B)=(AoB)八 。B0,
则可以得出模型M分别与两个样本模型的计算结果:
7
M1。M=U(Ml(ui)八M(ui))=0.3
l=l
7
M2。M=U(M2(ui)A M(ui))=0.5
1=1
可以看出,0.3小于0.5,数值越大贴近程度越高,即
M与M2贴近程度更大,结构上与其更相似。
样本模型比较多时,可以运用聚类分析的原理,构造
模糊矩阵,然后按照截集的大小,给隶属度相近的集合归
为一类,从而判定哪几个异构数据库在结构上相同。
3总结
本章分为两部分介绍了异构数据库之间进行数据
交换时,采用的工具和分析过程。讨论了XML和LINQ
实用性,并列举出了简单异构情形,运用了模糊数学中
格贴近度的计算方法,来量化两个数据库的贴近程度,
这也是本文的重要理论基础。
参考文献
【1]李玉洲.基于XML技术的异构数据库数据交换系统(硕士学
位论文1.贵州:贵州大学.2007.
[2】王炯伟.基于LINQ的三层体系结构应用.计算机与网络,2010:
510-512.
[3】王学军.异构数据库数据集成技术在计划生育系统中的实现
(硕士学位论文).天津:天津大学,2004.
[4】杨纶标.模糊数学原理及应用(第四版).广州:华南理工大学出
版社.2005:1—25.
作者简介:
王亮(1982-)男,汉族,天津人,硕士研究生,软件开发工程师;研
究方向:数据库安全方面。
信息安全与技术・2012年8月・79・
版权声明:本文标题:基于XML异构数据库数据转换技术的研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713539731a639776.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论