□馬東波
分布式數據庫是信息時代下數據庫技術與計算機網絡技術的融合產物,現階段發展下主要是為行業發展提供相應的互聯網數據,實現數據的并行計算、分布策略以及數據分片等等,目前分布式數據庫早已經脫離數倉領域的單純應用,在大數據背景下,數據種類復雜多樣,各種數據在互聯網中海量共存,數據管理以及分析成為社會發展的重要課題,也是現階段行業發展中各公司競爭力的重要戰線,由于數據量龐大以及種類多樣,這就需要數據庫能夠實現實時交互,發掘數據中隱藏的商業價值。分布式數據庫的數據交換實現,實際上就是對數據的實施交互性要求,無論是對集團性企業還是行業企業競爭而言,由于各部門以及運營方向不同,分層式數據庫系統以及數據信息也是不同的,所以需要在網絡中實現數據的處理以及交換,從而挖掘數據中潛在的商業價值以及決策信息。
ORACLE對分布式數據庫環境的要求不大,既能夠在同構也能夠在異構分布式數據庫環境中實現,能夠支持應用程序于本地數據庫連接之后,同時實現對遠程數據庫以及本地數據庫的訪問,這樣就能夠將本地數據庫與遠程數據庫看成是異構分布式數據庫環境,可以通過DBLINK實現本地數據庫與遠程數據之間的連接,之后就可以實現應用程序在遠程數據庫中對表數據的透明訪問,就省略了本地數據庫與遠程數據庫的物理連接環節。統一分布式數據庫就是所有數據庫為ORACLE,而異構分布式數據庫則是所有數據庫中存在非ORACLE數據庫,無論是哪一種分布式數據庫環境都能夠實現數據庫之間的訪問,同構分布式數據里直接利用DBLINK,而異構分層式數據庫則是通過透明網關組件對非ORACLE數據庫訪問,實現非ORACLE數據庫與ORACLE數據庫之間的連接,ORACLE到非ORACLE數據庫通過DBLINK連接透明網關組件,這樣一來就能夠實現多個數據庫之間的透明訪問。若是基于元數據的數據庫構建,通過數據交換系統的設計,通過對多個DSS的整合,通過統一的數據交換服務器,將多個分布式元數據服務器中的元數據形成統一的元數據庫,這樣一來在查詢的時候就能夠在多個元數據庫實現數據的交換,通過DSE服務器之間的數據查詢,客戶導向數據服務器訪問和數據下載。
(一)數據交換技術的方法。分層式數據庫的數據交換方法一共有兩種,一是中間件方法,通過在兩個數據庫之間構建一個中間數據庫,然后在中間數據庫中通過結合字段的含義以及對應關系,使得中間數據庫能夠與其他數據庫之間通過設定的中間件實現兩個數據庫之間的數據信息交換,不過目前中間媒介較少,所以需要花費更多的中間環節構建,不僅費時費力,還難以實現數據庫之間的數據轉換;二是件雙向中間件,通過中間件與兩個數據庫之間連接,雙向中間件的構建雖然費用很高,但是能夠實現數據庫之間數據的完全轉換,雙向中間件的構建是利用中間數據庫數據傳遞的雙向性,實現數據庫之間的數據流通交換。
(二)數據交換技術的拓展。無論是異構分層式數據庫之間的數據交換,還是同構分層式數據庫之間的數據交換,都需要DBLINK實現數據庫之間的連接,不同數據庫之間雖然連接方式不一樣,但是DBLINK與透明網關組件都能夠在分層式數據庫之間實現數據連接,XML可以作為中間件進行數據庫數據傳遞。XML是基于SGML元語言的簡單組件,具有良好的自我描述性以及網絡快速傳遞等優勢,所以能夠實現跨平臺,能夠在非結構化數據以及半結構化數據進行數據交換,實現各數據庫之間的基礎交換,所以XML現在是數據交換技術基礎。XML能夠通過設定的語言實現各個特定領域的數據交換運用,在不同領域中采用的XML形式也不一樣,例如在無線通訊領域中采用的是WML,另外XML存在文件格式,所以也能夠以文本形式進行數據結構描述,所以能夠在各個平臺及數據庫之間跨界交換,主要是基于元數據以及元素標記,標記能夠在數據交換過程中保持數據的原本結構以及含義,從而使得各個數據庫之間的數據在交換過程中能夠實現準確性以靈活性的獲取。XML數據轉換雖然沒有辦法完全替代傳統數據轉換技術,但是在新時期的分層式數據庫數據交換過程中能夠對各種數據類型進行提取轉換,保留數據原形式,再通過中間件實現XML數據模型與各數據庫之間的數據轉換。
分層式數據庫之間的數據交換一共分為以下三個過程,一是利用監聽組件例如socket,在網絡服務的斷口對客戶端的實時要求進行監聽,經過確認之后,建立兩個數據庫之間的連接,再者就是客戶端的請求利用網絡服務器將數據查詢結果轉變為XML形式后再通過socket轉發到客戶端上,從而實現客戶端對數據庫之間數據交換信息的獲取;二是開放服務器端口,實現監聽功能以及信息的XML轉化,監聽功能主要實現LocalPort、Bindssckserver、Sckserver與本地客戶端的綁定,設定請求觸發,針對客戶端的連接請求觸發相應的代碼,進行數據庫的數據查詢工作,查詢結果轉換后需要利用MSXML進行解析,才能夠將數據進行還原,這就需要構建一個“XMLDOC”,將結果記錄在文檔中,這樣就能夠在客戶端發出請求之后,從“XMLDOC”存放的XML中直接將實例轉發給客戶端;三是開發客戶端,通過對客戶端的開發,與服務器進行連接,宏觀上采用DBLINK與透明網關,具體則是利用Winsock進行服務器連接,與監聽組件實現實時監控,再者通過代碼設定將相應的程序通過請求轉變為SQL言語,從而通過監聽組件發送查詢請求,在接收查詢結果的時候利用服務端轉化請求數據,將XML文本格式通過“DATAARRIVAL”事件,實現客戶端對查詢信息回饋的數據處理。
總而言之,要實現分布式數據庫的數據交換,根據不同的網絡環境以及數據庫類型,可以選擇DBLINK或是透明網關實現數據庫之間的連接訪問,然后再通過客戶端實現數據的XML轉化,通過監聽組件以及數據轉化實現數據的交換。