APP下载

一种基于中间库的数据转换模式设计研究

2016-11-24唐勇

电脑知识与技术 2016年26期
关键词:设计

唐勇

摘要:从当前企业和单位中数据库孤立的现状入手,提出了利用中间库来统筹业务基础数据库的方法,阐释了该方法的使用方法及数据转换的关键步骤,并利用JAVA语言实现了此关键步骤,通过验证,论文提出的设计方法是可行的。

关键词:中间库;数据转换;设计

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)26-0115-02

随着大数据时代的来临,数据与数据之间的联系被进一步挖掘,并在此基础上进行综合分析,形成决策。将不同数据库中的数据联合起来,形成相关,具有多种解决方案,设计一个中间库和一个中间件,专门负责数据的联系和转换,是当前主流的解决方案。

1 现状

伴随信息化的高速发展,我国绝大多数中小型企业和单位在信息化建设方面已经取得一定的成效,但在大数据背景下,以往建设的信息化系统出现了如下明显问题:

1)信息化孤岛。有些政府和事业单位,根据自身的业务范围,已经建设了几十个大小不一的信息管理系统,这些系统中,每个系统都有一个自身独立的数据库,系统与系统之间,数据库与数据库之间即使具有相同的字段,它们也没有任何数据关联。

2)由于数据库没有关联,则存在着明显的二次录入现象,比如一个人员名单的增加,需要在人事系统中增加,也需要在业务数据库中增加,工作量大而繁琐。

3)数据不一致。由于一条信息可能会在多个业务数据库中出现,如果这条信息没有及时流通到相关部门中,则这个部门数据库的数据不会更新,比如在一个高校的招生中,招生部门录取了一名学生,但名单还未到达教务处前,教务处的系统没有更新,导致了数据的不一致性。

4)数据沉睡。由于不同的数据库之间没有联系,故不能挖掘相关数据的相关性,不同数据库之间的数据不能联合分析,致使数据沉睡,价值发挥不足。

基于以上的问题,将不同数据库之间的数据有效联系起来,成为了数据有效发挥其价值的重要环节。

2 中间件设计

1)模型设计

经过多年的信息化建设,众多企业和单元已经具备多套信息管理系统,这些系统和系统之间具有如下特征:

① 系统之间相互孤立。在建设初期,每个系统都拥有独立的数据库,各数据库之间没有联系,修改其中一个数据库中的数据,其他数据库的数据不受影响。

② 系统之间存在联系。在操作某个业务时,修改一个数据库中的信息,其他数据库中的信息可能要改变。如删除一个名单时,涉及多个系统多次删除,形成二次录入。

③ 新形势下需要将多系统数据联合分析。在大数据背景下,需要将所有的信息系统统一起来进行综合分析,以形成精准决策和精准管理。

其具体模型如图1:

上述问题至少有2种解决方案:

方案1:在设计统一查询平台时,将综合平台的每一项信息与各业务平台中的数据联立。当需要在统一查询平台上查询某些信息时,在其中一个或几个数据库联合查询即可,如需进行数据转换,则进行适当转换。当综合平台中某个数据修改时,对应的若干个业务数据库统一完成修改。

方案2:在设计统一查询平台时,设计一个中间库。中间库与各基础库联立统一查询平台只在中间库上进行查询,在统一查询平台上进行修改操作直接修改中间数据库。在中间数据库和各基础业务数据库之间,设计一个数据转换模型,设计中间库与基础库数据之间的转换关系和转换规则。具体见图2:

比较分析方案1和方案2可以发现,方案2明显优于方案1。方案1具有两大明显不足,一是综合统一平台在查询某个数据时,需要从业务数据库中调取,这个数据有可能存在多个数据库中,多个数据库对这个数据的保存信息可能不一致,综合查询平台基于不同的基础业务数据库时,查询结果不一样。二是每次在修改数据时,都需要向多个数据库写数据,所有的数据库都必须全部打开等待数据写入,非常浪费系统资源。

方案2设计了一个中间库,统一查询平台的数据查询都基于此中间库,平台修改的数据也仅仅是修改中间库的数据,中间库设计了一个触发器,当中间库有变化时,才向各业务数据库写入数据,当各基础业务数据库发生变化时,向中间库写入数据。也可以设计一个算法,定时批量同步数据。

2)数据同步方案

① 数据转换基本流程

数据同步时,有两种情况,第一种是统一查询平台修改数据后,中间数据库的数据被修改,按照一定的规程根据被修改的中间数据库的情况修改业务数据库,其基本流程对应于图3。第二种情况是,在各业务平台上修改了数据,这些数据引起了业务基础库的更新,更新的数据库将引起中间库的更新,其基本流程图对应于图4。

② 数据同步方案

中间数据库与业务基础库中相同变量的对应关系是一对多,在中间数据中修改一个数据,可能涉及多个业务基础库的修改,但每个业务数据库修改的方式又不一样。如在中间数据库中增加一个姓名,定义为8个字节,业务基础数据库1和业务基础数据库2都涉及了姓名列,但在业务数据库1中,其字段长度为20,而业务基础库2中,其字段长度为30,故在转换时,需要为中间数据库每一个字段与所有的业务基础库的相同字段定义好转换规则,在转换时,必须查找对应的规则进行转换。

当在业务平台i上进行了数据处理(图4),对应的业务数据库中的数据也要进行更改,同时也要将修改的数据同步到中间数据库中。此时,业务数据库中的某变量与中间数据库中的某变量的对应关系是一对一。在进行数据转换时,只需要查询他们的转换关系即可。当中间数据库的数据完成更新后,会触发中间数据库更改程序,将所有其他与此字段有关的其他业务数据库所有的相关字段统一进行更改,这样也达到了某个数据库修改、其他数据库同步的效果。

③ 数据库同步的关键技术

由于中间数据库与各业务数据库存在一对多的关系,则他们之间将会出现多线程同时写入的情况,为了保证数据的准确性,在向中间数据库进行数据写入时,必须进行加锁技术(在java中,synchronized技术就可以实现),只有在写入完毕后,才进行解锁操作,允许下一个进程写入数据。

3 算法实现

数据转换算法(JAVA语言):

public void writer(int num) //

{ { for(int i=0;i<=n;i++) //逐个判断参数,是否需要进行写操作

{ if(flag(i)=0){

synchronized (读进程) //死锁进行

try // 需要进行写操作

{ if(fileNotFound){ //判断文件是否存在

System.out.println("error"); } } //如果不存在,显示错误

catch (InterruptedException e) { //抛出异常

e.printStackTrace(); } } }//显示异常信息

for (int j = 1; j <= num; ++j)

{conversion(A[i],B[j],)AB[ij]; } //将参数i,按照与每个数据库特定的关系,逐个写入有关系的数据库j中,

writeBufferedInputStream.out(B); } }

4 结束语

利用中间件来完成对数据的转换是当前企业的一种主流解决方案,这种方案可以在不更改旧系统的情况下建立新系统,并且通过中间库和中间件,使新旧数据库及时更新,满足数据一致性要求。但随着数据量越来越大,在设计中间库时,各变量之间的联系将越来越复杂,只有将这些负责的关联建立清晰的模型,数据转换才不会出错,业务逻辑才能得到保证。作者在多个不同系统中测试了本文的设计,能够有效满足数据转换的要求,且安全性和稳定性都较好。

参考文献:

[1] 杨晓强,陈冰,魏生民.用基于XML的中间件访问异构数据库[J].计算机应用研究,2004(6).

[2] 王振辉,王振铎,张敏,王艳丽.Web数据库安全中间件设计与实现[J].科学技术与工程,2003(5).

[3] 蒋念平,陈夏.实时Web数据库中间件的研究[J].上海理工大学学报,2010(2).

猜你喜欢

设计
二十四节气在平面广告设计中的应用
何为设计的守护之道?
基于PWM的伺服控制系统设计
基于89C52的32只三色LED摇摇棒设计
基于ICL8038的波形发生器仿真设计
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
基于iOS的室内定位系统设计与实现
设计之味