?

一種基于中間庫的數據轉換模式設計研究

2016-11-24 17: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的波形發生器仿真設計
瞞天過?!律O計萌到家
設計秀
有種設計叫而專
基于iOS的室內定位系統設計與實現
設計之味
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合