国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于.NET的通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2017-12-28 09:25:57王美琴
關(guān)鍵詞:數(shù)據(jù)表設(shè)置數(shù)據(jù)庫(kù)

王美琴

(浙江同濟(jì)科技職業(yè)學(xué)院,浙江 杭州 311231)

基于.NET的通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

王美琴

(浙江同濟(jì)科技職業(yè)學(xué)院,浙江 杭州 311231)

在信息化時(shí)代,企業(yè)面對(duì)爆發(fā)式的數(shù)據(jù)增長(zhǎng)和各種新應(yīng)用的出現(xiàn),隨著數(shù)據(jù)庫(kù)應(yīng)用環(huán)境復(fù)雜性的增加,數(shù)據(jù)庫(kù)的結(jié)構(gòu)和管理系統(tǒng)發(fā)生很大的變化,而歷史數(shù)據(jù)的價(jià)值不容忽視,因此企業(yè)越來越重視不同數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換問題。本文針對(duì)現(xiàn)有數(shù)據(jù)轉(zhuǎn)換系統(tǒng)的研究現(xiàn)狀與存在問題,在結(jié)合ADO.NET與XML的基礎(chǔ)上,設(shè)計(jì)了一種靈活、通用、高效、可靠的通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)。系統(tǒng)分為數(shù)據(jù)庫(kù)配置與轉(zhuǎn)換兩大功能模塊,用戶通過簡(jiǎn)單的交互操作就可以完成復(fù)雜的數(shù)據(jù)庫(kù)之間的數(shù)據(jù)遷移與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換。本系統(tǒng)已在某水利信息系統(tǒng)升級(jí)中得到了實(shí)際應(yīng)用。

數(shù)據(jù)轉(zhuǎn)換;數(shù)據(jù)遷移;ADO.NET;XML

隨著大數(shù)據(jù)的蓬勃發(fā)展,數(shù)據(jù)平臺(tái)建設(shè)已經(jīng)被各企業(yè)提上日程而且需要不斷更新?lián)Q代。在企業(yè)發(fā)展過程中,不同信息系統(tǒng)可能使用不同數(shù)據(jù)庫(kù)系統(tǒng),信息系統(tǒng)更新的同時(shí)有時(shí)也需要更新數(shù)據(jù)庫(kù)管理工具或重新設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu),當(dāng)舊數(shù)據(jù)與新數(shù)據(jù)所使用的數(shù)據(jù)庫(kù)不同時(shí),數(shù)據(jù)庫(kù)轉(zhuǎn)換就變得很有必要?,F(xiàn)有的數(shù)據(jù)庫(kù)轉(zhuǎn)換工具往往只具有單純將舊數(shù)據(jù)庫(kù)已存在的數(shù)據(jù)進(jìn)行遷移的功能,而無法對(duì)數(shù)據(jù)進(jìn)行按需修改或者無法實(shí)時(shí)自動(dòng)對(duì)新讀入的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。本文旨在討論一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行智能轉(zhuǎn)換的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的方法,使數(shù)據(jù)庫(kù)轉(zhuǎn)換更加方便和高效。希望能對(duì)建材非金屬礦地質(zhì)系統(tǒng)目前正在編制的《中國(guó)建材非金屬礦產(chǎn)地質(zhì)志》及其數(shù)據(jù)庫(kù)建設(shè)提供借鑒和參考。

1 研究現(xiàn)狀

由于信息化系統(tǒng)的迅速發(fā)展,為了適應(yīng)信息化建設(shè)的需求,多數(shù)系統(tǒng)需要進(jìn)行升級(jí)或集成整合,數(shù)據(jù)轉(zhuǎn)換的方式逐步發(fā)展,近年來由早期的中間文件轉(zhuǎn)存方式[1],中間數(shù)據(jù)庫(kù)轉(zhuǎn)存方式[2],轉(zhuǎn)變?yōu)閿?shù)據(jù)中間件方式,并逐步遷移到云計(jì)算環(huán)境下[3]。已有文獻(xiàn)介紹了在數(shù)據(jù)轉(zhuǎn)換之中XML的應(yīng)用,崔學(xué)榮等[4]介紹了從關(guān)系數(shù)據(jù)庫(kù)到XML的轉(zhuǎn)換方法,鄧芳[5]通過元數(shù)據(jù)字典的掃描,探討了XML到數(shù)據(jù)庫(kù)的轉(zhuǎn)換,吳立鋒等[6]創(chuàng)建了XML與關(guān)系數(shù)據(jù)庫(kù)的映射,提出了XDBWare模型,進(jìn)行XML與關(guān)系數(shù)據(jù)庫(kù)的連接,實(shí)現(xiàn)數(shù)據(jù)相互轉(zhuǎn)換。曹剛等[7]設(shè)計(jì)了一種基于ODBC驅(qū)動(dòng)進(jìn)行數(shù)據(jù)庫(kù)轉(zhuǎn)換的工具,提出了使用SQL語句制定轉(zhuǎn)換方式的方法,但配置較為復(fù)雜。

目前存在的多種數(shù)據(jù)庫(kù)轉(zhuǎn)換工具均在不同方面有所側(cè)重:如aqua data studio更側(cè)重于多數(shù)據(jù)源的連接與提供通用的圖形化數(shù)據(jù)庫(kù)管理工具,數(shù)據(jù)轉(zhuǎn)換操作可以定制數(shù)據(jù)列的影射關(guān)系,但轉(zhuǎn)換需通過txt文件進(jìn)行,將舊數(shù)據(jù)導(dǎo)出為固定格式的txt文件,再轉(zhuǎn)存到新數(shù)據(jù)庫(kù)中,此方法效率較低,同時(shí)不適合大數(shù)據(jù)量的轉(zhuǎn)換。DBMover專注于數(shù)據(jù)的遷移,支持自動(dòng)轉(zhuǎn)換與大數(shù)據(jù)操作的優(yōu)化,但只針對(duì)于固定數(shù)據(jù)庫(kù)的轉(zhuǎn)換,不夠靈活和通用。

由以上對(duì)研究成果與已有工具的描述可以看出,不同的數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)的功能點(diǎn)存在較多不一致性,綜合以上分析,目前數(shù)據(jù)庫(kù)轉(zhuǎn)換面臨的主要問題如下:

(1) 靈活性差,通用性不強(qiáng)。多數(shù)數(shù)據(jù)庫(kù)轉(zhuǎn)換方法或工具僅提供一種數(shù)據(jù)轉(zhuǎn)換方式或針對(duì)于某種數(shù)據(jù)庫(kù)進(jìn)行針對(duì)性轉(zhuǎn)換,不能靈活適應(yīng)不同應(yīng)用背景、數(shù)據(jù)庫(kù)類型以及數(shù)據(jù)結(jié)構(gòu)的需要,也不能根據(jù)用戶的需求變化進(jìn)行相應(yīng)修改,對(duì)于數(shù)據(jù)結(jié)構(gòu)發(fā)生變化的應(yīng)用情景擴(kuò)展性不夠強(qiáng)。

(2) 穩(wěn)定性問題。在數(shù)據(jù)庫(kù)轉(zhuǎn)換過程中存在多種不可抗力因素,數(shù)據(jù)轉(zhuǎn)換受到多種穩(wěn)定性威脅,如斷電、系統(tǒng)崩潰、網(wǎng)絡(luò)傳輸中斷等問題,或是由軟件自身出錯(cuò)導(dǎo)致程序崩潰,若不采取有效措施,會(huì)造成數(shù)據(jù)轉(zhuǎn)換強(qiáng)制中止而引發(fā)數(shù)據(jù)錯(cuò)誤或數(shù)據(jù)丟失。

(3) 轉(zhuǎn)換時(shí)間長(zhǎng),效率低下。單一線程運(yùn)行的數(shù)據(jù)庫(kù)轉(zhuǎn)換程序按序執(zhí)行數(shù)據(jù)轉(zhuǎn)換,對(duì)于需要轉(zhuǎn)換海量數(shù)據(jù)的數(shù)據(jù)庫(kù),轉(zhuǎn)換時(shí)間過長(zhǎng),由于效率低下也同時(shí)帶來不穩(wěn)定因素。

針對(duì)以上問題,本文提出一種靈活性強(qiáng),兼顧穩(wěn)定性與轉(zhuǎn)換效率的通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng),可以滿足不同數(shù)據(jù)轉(zhuǎn)換的需求。

2 系統(tǒng)設(shè)計(jì)

本系統(tǒng)的目的是針對(duì)現(xiàn)有數(shù)據(jù)庫(kù)轉(zhuǎn)換方式和工具的局限性,設(shè)計(jì)出一種適合各種環(huán)境、常用數(shù)據(jù)庫(kù)、遠(yuǎn)程或本地服務(wù)器的通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng),實(shí)現(xiàn)不同數(shù)據(jù)庫(kù)不同數(shù)據(jù)之間的智能轉(zhuǎn)換。主要功能是向用戶提供交互式界面,讓用戶進(jìn)行設(shè)定并轉(zhuǎn)換數(shù)據(jù)庫(kù)。本系統(tǒng)以.NET開發(fā)平臺(tái)為基礎(chǔ),對(duì)數(shù)據(jù)庫(kù)操作、大規(guī)模數(shù)據(jù)查詢、多線程操作等關(guān)鍵技術(shù)進(jìn)行了針對(duì)性研究。整個(gè)系統(tǒng)具有更高效的人機(jī)交互,更低的存儲(chǔ)規(guī)模,更方便的信息輸入,更智能的自動(dòng)轉(zhuǎn)換,良好的可擴(kuò)展性與可移植性等特點(diǎn)。

2.1 方案選擇

目前常用的數(shù)據(jù)庫(kù)管理系統(tǒng)有SYBASE、MS SQL SERVER、ACCESS、MYSQL、ORACLE、DB2,本系統(tǒng)旨在實(shí)現(xiàn)如上數(shù)據(jù)庫(kù)中數(shù)據(jù)互相轉(zhuǎn)換的方案。

本系統(tǒng)的輸入為原數(shù)據(jù)庫(kù)中數(shù)據(jù),讀入數(shù)據(jù)后,進(jìn)行相應(yīng)處理,并輸出至需存儲(chǔ)的已建立的新數(shù)據(jù)庫(kù)中。用戶通過建立系統(tǒng)與雙方數(shù)據(jù)庫(kù)的連接,并設(shè)定雙方數(shù)據(jù)庫(kù)的字段轉(zhuǎn)換規(guī)則與自動(dòng)或手動(dòng)轉(zhuǎn)換方式,系統(tǒng)判斷轉(zhuǎn)換過程是否有數(shù)據(jù)一致性等問題,若設(shè)置均正確無誤,則可以實(shí)現(xiàn)轉(zhuǎn)換操作。

2.2 技術(shù)路線

本系統(tǒng)的核心技術(shù)是數(shù)據(jù)庫(kù)連接操作以及數(shù)據(jù)的轉(zhuǎn)換,采用ADO.NET技術(shù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接與讀取寫入操作,為用戶提供對(duì)數(shù)據(jù)庫(kù)進(jìn)行轉(zhuǎn)換規(guī)則設(shè)置的界面,以此完成人機(jī)交互。本系統(tǒng)使用C#.NET開發(fā)平臺(tái)作為主要界面應(yīng)用程序平臺(tái),通過XML文件進(jìn)行設(shè)定的存儲(chǔ)與讀取,采用多線程操作實(shí)現(xiàn)程序的后臺(tái)處理,并結(jié)合錯(cuò)誤日志與日期定位,對(duì)讀取出錯(cuò)或是因網(wǎng)絡(luò)傳輸出錯(cuò)的數(shù)據(jù)庫(kù)進(jìn)行修復(fù)與重新讀入。

2.2.1 .Net Framework

.Net Framework是用于windows的新托管代碼編程模型,用于構(gòu)建具有視覺上引人注目的用戶體驗(yàn)的應(yīng)用程序,實(shí)現(xiàn)跨技術(shù)邊界的無縫通信,并且能夠支持各種業(yè)務(wù)流程。C#.NET提供了豐富的API,進(jìn)行XML文檔操作以及網(wǎng)絡(luò)通信。使用C#.NET進(jìn)行系統(tǒng)開發(fā),能夠快速搭建操作便捷的人機(jī)交互界面。

2.2.2 ADO.NET

ADO.NET提供對(duì)數(shù)據(jù)源以及通過各公開數(shù)據(jù)源的一致訪問。共享數(shù)據(jù)的使用方應(yīng)用程序可以使用ADO.NET連接到這些數(shù)據(jù)源,并可以檢索、處理和更新其中包含的數(shù)據(jù)。提供了平臺(tái)互用性和可伸縮的數(shù)據(jù)訪問,ADO.NET增強(qiáng)了對(duì)非連接編程模式的支持,并支持RICH XML。由于傳送的數(shù)據(jù)都是XML格式,因此任何能夠讀取XML格式的應(yīng)用程序都可以進(jìn)行數(shù)據(jù)處理[8]。

在本系統(tǒng)中,采用ADO.NET技術(shù)進(jìn)行各數(shù)據(jù)源的連接,通過該技術(shù),可以不需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行長(zhǎng)時(shí)間訪問,防止對(duì)數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間的獨(dú)占,而將需要轉(zhuǎn)換的數(shù)據(jù)讀入數(shù)據(jù)集,再轉(zhuǎn)換到目標(biāo)數(shù)據(jù)庫(kù)。

2.2.3 XML

XML是W3C組織的XML工作組于1998年定義的SGML的一個(gè)受限子集。XML文檔包含3種主要成分: DTD、XSL和XLink[9]。XML的簡(jiǎn)單使其易于在任何應(yīng)用程序中讀寫數(shù)據(jù),同時(shí)可以很容易加載XML數(shù)據(jù)到程序中并進(jìn)行分析。本系統(tǒng)將XML作為數(shù)據(jù)轉(zhuǎn)換的配置文件進(jìn)行轉(zhuǎn)換規(guī)則與連接的保存。

2.3 總體結(jié)構(gòu)

系統(tǒng)硬件架構(gòu)分為三個(gè)部分(見圖1),需要轉(zhuǎn)換的原數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)和轉(zhuǎn)換后的新數(shù)據(jù)庫(kù)。對(duì)于數(shù)據(jù)庫(kù)與系統(tǒng)之間的連接使用ADO.NET數(shù)據(jù)中間件,只需要配置數(shù)據(jù)連接即可,具體的連接方式與是否連接成功與系統(tǒng)無關(guān),因此本文不做詳細(xì)討論。

圖1 系統(tǒng)架構(gòu)

系統(tǒng)軟件包括數(shù)據(jù)庫(kù)轉(zhuǎn)換配置與數(shù)據(jù)庫(kù)轉(zhuǎn)換兩個(gè)主要部分:

數(shù)據(jù)庫(kù)轉(zhuǎn)換配置是人機(jī)交互的主要部分,實(shí)現(xiàn)對(duì)雙方數(shù)據(jù)庫(kù)的連接。用戶設(shè)置原數(shù)據(jù)庫(kù)與新數(shù)據(jù)庫(kù)使用的管理工具與驅(qū)動(dòng),為系統(tǒng)提供兩個(gè)數(shù)據(jù)庫(kù)的連接方式(若遠(yuǎn)程連接需同時(shí)提供服務(wù)器地址),并設(shè)定字段的轉(zhuǎn)換方法、系統(tǒng)運(yùn)行方式等。

用戶可選擇是否轉(zhuǎn)換全部數(shù)據(jù)庫(kù),或是根據(jù)特征值,如設(shè)定起始與終止時(shí)間,轉(zhuǎn)換該范圍內(nèi)數(shù)據(jù)庫(kù)的數(shù)據(jù)。

軟件用例圖如圖2所示。

圖2 軟件用例圖

3 功能實(shí)現(xiàn)

3.1 數(shù)據(jù)庫(kù)設(shè)置

用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)置主要步驟如下:

(1) 設(shè)置雙方數(shù)據(jù)庫(kù)類型。

由用戶選擇雙方數(shù)據(jù)庫(kù)格式,設(shè)定從何種數(shù)據(jù)庫(kù)進(jìn)行轉(zhuǎn)換并轉(zhuǎn)換至何種數(shù)據(jù)庫(kù),系統(tǒng)對(duì)不同數(shù)據(jù)庫(kù)采用不同連接方案。

(2) 設(shè)置雙方數(shù)據(jù)庫(kù)連接方式,

用戶設(shè)置數(shù)據(jù)庫(kù)的連接字符串或ODBC數(shù)據(jù)源,系統(tǒng)根據(jù)連接字符串,使用ADO.NET進(jìn)行連接。若連接失敗,則返回給用戶,需要檢查連接字符串、服務(wù)器與客戶端之間的網(wǎng)絡(luò)等問題;若連接成功,則讀取數(shù)據(jù)庫(kù)中數(shù)據(jù)表,繼續(xù)進(jìn)行下面的步驟。

(3) 設(shè)置需轉(zhuǎn)換數(shù)據(jù)表。

用戶根據(jù)需要,設(shè)置原數(shù)據(jù)庫(kù)中需轉(zhuǎn)換數(shù)據(jù)表與新數(shù)據(jù)庫(kù)中所使用的數(shù)據(jù)表,并根據(jù)實(shí)際需求設(shè)置雙方數(shù)據(jù)庫(kù)中數(shù)據(jù)表的對(duì)應(yīng)關(guān)系。

(4) 對(duì)每一數(shù)據(jù)表設(shè)置每一字段轉(zhuǎn)換規(guī)則。

系統(tǒng)提供5種轉(zhuǎn)換規(guī)則:①正常轉(zhuǎn)換:不作任何修改,或僅做無關(guān)數(shù)據(jù)正確性的修改(如增加或減少數(shù)據(jù)長(zhǎng)度);②查表轉(zhuǎn)換:對(duì)此字段做相應(yīng)的修改,修改后的結(jié)果與原字段的結(jié)果存在一一對(duì)應(yīng)的關(guān)系,通過XML存儲(chǔ)此映射關(guān)系并在需要時(shí)讀取XML表中對(duì)應(yīng)鍵值數(shù)據(jù),對(duì)值進(jìn)行數(shù)據(jù)庫(kù)存儲(chǔ);③公式轉(zhuǎn)換:讀取原數(shù)據(jù)庫(kù)中數(shù)據(jù)值后,進(jìn)行簡(jiǎn)單的算術(shù)或邏輯運(yùn)算,將新值存入新數(shù)據(jù)庫(kù)對(duì)應(yīng)字段。系統(tǒng)提供三種簡(jiǎn)單運(yùn)算:邏輯運(yùn)算,若原數(shù)據(jù)庫(kù)字段值大于或小于或等于某一數(shù)值時(shí),則設(shè)定新值存入數(shù)據(jù)庫(kù);算術(shù)運(yùn)算,將取出的值設(shè)定簡(jiǎn)單的算術(shù)運(yùn)算,運(yùn)算結(jié)果存入新數(shù)據(jù)庫(kù);連接運(yùn)算:對(duì)nvarchar型數(shù)據(jù)有效,可以與其他字符串或字段值進(jìn)行連接,并存入新數(shù)據(jù)庫(kù);④SQL轉(zhuǎn)換:通過手動(dòng)輸入sql語句,對(duì)執(zhí)行后生成的查詢表進(jìn)行轉(zhuǎn)換,提供用戶自行設(shè)置查詢條件,進(jìn)行多表查詢及進(jìn)行查詢結(jié)果篩選,配置的sql語句也存入XML配置文件以待下次進(jìn)行轉(zhuǎn)換;⑤不轉(zhuǎn)換:若對(duì)某字段不進(jìn)行任何設(shè)置,則默認(rèn)為正常轉(zhuǎn)換。系統(tǒng)判斷轉(zhuǎn)換后的結(jié)果是否符合新數(shù)據(jù)庫(kù)中字段要求,若有無,則向用戶報(bào)錯(cuò),提示修改。

(5) 設(shè)置程序運(yùn)行方式。

由于系統(tǒng)使用環(huán)境不同,有的數(shù)據(jù)庫(kù)轉(zhuǎn)換需要將數(shù)據(jù)庫(kù)中所有數(shù)據(jù)進(jìn)行一次性轉(zhuǎn)換,有的數(shù)據(jù)庫(kù)需要將數(shù)據(jù)庫(kù)中字段符合某些特定條件的數(shù)據(jù)進(jìn)行篩選轉(zhuǎn)換,也有的數(shù)據(jù)庫(kù)需要自動(dòng)運(yùn)行,每次轉(zhuǎn)換某段時(shí)間中的增量數(shù)據(jù)。根據(jù)實(shí)際情況用戶選擇程序運(yùn)行方式。

手動(dòng)運(yùn)行方式適用于一次性轉(zhuǎn)換,自動(dòng)運(yùn)行方式適用于根據(jù)時(shí)間增量轉(zhuǎn)換數(shù)據(jù)。以上兩種方式都可以進(jìn)行對(duì)數(shù)據(jù)篩選轉(zhuǎn)換的設(shè)定,同時(shí)自動(dòng)運(yùn)行方式需要對(duì)時(shí)間數(shù)據(jù)進(jìn)行篩選轉(zhuǎn)換,因此需要保證數(shù)據(jù)表中存在時(shí)間字段。

設(shè)置完畢,系統(tǒng)將以上各種設(shè)定進(jìn)行保存,配置流程如圖3所示。

3.2 數(shù)據(jù)庫(kù)轉(zhuǎn)換

數(shù)據(jù)庫(kù)轉(zhuǎn)換是系統(tǒng)核心部分,系統(tǒng)根據(jù)設(shè)置連接雙方數(shù)據(jù)庫(kù),并根據(jù)用戶設(shè)置進(jìn)行自動(dòng)或手動(dòng)轉(zhuǎn)換,完成程序的主要任務(wù)。系統(tǒng)在轉(zhuǎn)換過程中,對(duì)于無關(guān)聯(lián)數(shù)據(jù)表通過多線程轉(zhuǎn)換,同時(shí)讀取多個(gè)數(shù)據(jù)庫(kù)表數(shù)據(jù)并導(dǎo)入新數(shù)據(jù)庫(kù),節(jié)省運(yùn)行時(shí)間。

圖3 數(shù)據(jù)庫(kù)配置流程

(1) 讀取系統(tǒng)設(shè)定,連接數(shù)據(jù)庫(kù)。

(2) 若是自動(dòng)轉(zhuǎn)換,則當(dāng)設(shè)定時(shí)間到時(shí),自動(dòng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行轉(zhuǎn)換。

(3) 若是手動(dòng)轉(zhuǎn)換,則由用戶手動(dòng)點(diǎn)擊轉(zhuǎn)換。

轉(zhuǎn)換流程如圖4所示。

圖4 數(shù)據(jù)庫(kù)轉(zhuǎn)換流程

4 系統(tǒng)應(yīng)用

本文設(shè)計(jì)的通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)已得到實(shí)際應(yīng)用。某水利部門信息中心由于系統(tǒng)升級(jí),在設(shè)計(jì)二期系統(tǒng)時(shí)結(jié)合國(guó)家新頒布的數(shù)據(jù)庫(kù)設(shè)計(jì)標(biāo)準(zhǔn),根據(jù)應(yīng)用需要更新了數(shù)據(jù)庫(kù)管理工具并重新設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu),但一期數(shù)據(jù)庫(kù)中仍存有大量歷史水利資料數(shù)據(jù),需要轉(zhuǎn)換到二期數(shù)據(jù)庫(kù)中。轉(zhuǎn)換過程涉及了直接轉(zhuǎn)換、查表轉(zhuǎn)換與SQL轉(zhuǎn)換。系統(tǒng)運(yùn)行于Windows server 2008操作系統(tǒng),在水利信息化內(nèi)網(wǎng)環(huán)境下,由sql server 2000與oracle轉(zhuǎn)換至sql server 2008數(shù)據(jù)庫(kù)中。經(jīng)過實(shí)際運(yùn)行與測(cè)試,系統(tǒng)運(yùn)行結(jié)果如下表所示。

系統(tǒng)運(yùn)行結(jié)果

由上表可見,由于采用多線程操作,對(duì)多個(gè)數(shù)據(jù)表進(jìn)行轉(zhuǎn)換效率較高。由于部分?jǐn)?shù)據(jù)導(dǎo)入時(shí)數(shù)據(jù)格式不兼容或數(shù)據(jù)超出導(dǎo)入后數(shù)據(jù)庫(kù)字段的范圍,因此出現(xiàn)數(shù)據(jù)無法導(dǎo)入的情況。我們今后的研究重點(diǎn)主要在于對(duì)數(shù)據(jù)容錯(cuò)性的研究,在保證運(yùn)行效率的情況下對(duì)錯(cuò)誤或越界數(shù)據(jù)進(jìn)行修復(fù),進(jìn)一步提高數(shù)據(jù)轉(zhuǎn)換成功率。

5 結(jié)語

本文結(jié)合實(shí)際工作提出了一種通用數(shù)據(jù)庫(kù)轉(zhuǎn)換系統(tǒng)的設(shè)計(jì)方案,能夠避免現(xiàn)有技術(shù)存在的不足和功能的局限,結(jié)合現(xiàn)有技術(shù)的優(yōu)點(diǎn),對(duì)現(xiàn)有技術(shù)進(jìn)行了改進(jìn)和再創(chuàng)造。通過ADO.NET數(shù)據(jù)中間件,結(jié)合XML,使得系統(tǒng)兼顧靈活性與轉(zhuǎn)換效率,減少數(shù)據(jù)轉(zhuǎn)換時(shí)間,提高數(shù)據(jù)轉(zhuǎn)換的可靠性。實(shí)際運(yùn)行結(jié)果表明,本系統(tǒng)在處理數(shù)據(jù)轉(zhuǎn)換時(shí)基本滿足了設(shè)計(jì)要求,方便用戶的使用,有較高的應(yīng)用價(jià)值。

[1]胡廣,孫燾,閆英輝.利用XML與XSLT實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)轉(zhuǎn)換[J].現(xiàn)代計(jì)算機(jī),2007(8):64-66.

[2]姚領(lǐng)眾.一種基于中間庫(kù)的數(shù)據(jù)庫(kù)間數(shù)據(jù)轉(zhuǎn)換技術(shù)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,1996(11):27-29.

[3]NAHAR, PAWAN. Data migration using active cloud engine[J].Cloud Computing in Emerging Markets (CCEM), 2012 IEEE,2012:1-4.

[4]崔學(xué)榮,李慶云,李娟.關(guān)系數(shù)據(jù)庫(kù)到XML數(shù)據(jù)庫(kù)轉(zhuǎn)換中間件的設(shè)計(jì)與實(shí)現(xiàn)[J].廣西師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,25(4):132-135.

[5]鄧芳.XML文檔到數(shù)據(jù)庫(kù)數(shù)據(jù)轉(zhuǎn)換研究[J].北京郵電大學(xué)學(xué)報(bào),2004,27(1):84-88.

[6]吳立鋒,宋中山.基于XML的數(shù)據(jù)轉(zhuǎn)換中間件的研究[J].中南民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,24(4):76-78.

[7]曹剛,周伯鑫.一種基于ODBC通用數(shù)據(jù)轉(zhuǎn)換工具的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,1999(6):72-74.

[8]DAVID S. Microsoft Ado. Net: Core Reference[M]. Microsoft Press Redmond, WA, USA 2002.

[9]W3C Recommendation. Extensible Markup Language 1.1[DB/CD]. http://www.w3.org/TR/2006/REC-xml11-20060816/

[10]Berdaguer P, Cunha A, Pacheco H, et al. Coupled schema transformation and data conversion for XML and SQL[J].Practical Aspects of Declarative Languages, 2007, 4354: 290-304.

Design and Implementation of A Universal Database Conversion System Based on .NET

WANG Mei-qin
(Zhejiang Tongji Vocational College of Science and Technology, Hangzhou 311231, China)

In the digital age, rapid data growth and adoption of latest applications are leading to growing environmental complexity and fundamental changes in the database structure and managementsystem of commercial corporate databases. Meanwhile, the value of historical data should not be ignored. Therefore,corporations are putting more and more efforts into migrating data across different databases. To analyze the problems with the current database conversion system, we designed an agile,universal, efficient and reliable database conversion system based on ADO.NET and XML. The system is divided into two function modules: database configuration and conversion. With this system, the users would be able to complete data migration and data structure conversion across complex databases through simple interactive operations. The system has already been applied to upgrade a database of Water Resources Bureau.

database transformation; data migration; ADO.NET; XML

TP392

A

1007-9386(2017)04-0050-04

2017-09-19

猜你喜歡
數(shù)據(jù)表設(shè)置數(shù)據(jù)庫(kù)
中隊(duì)崗位該如何設(shè)置
湖北省新冠肺炎疫情數(shù)據(jù)表
黨員生活(2020年2期)2020-04-17 09:56:30
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
圖表
阳江市| 台中市| 阳信县| 清远市| 兴山县| 溧水县| 元朗区| 河池市| 定襄县| 蓝山县| 昌都县| 五大连池市| 广宗县| 长丰县| 鲁山县| 阿坝县| 淳化县| 霍城县| 永安市| 泗水县| 大洼县| 延边| 来宾市| 邓州市| 南京市| 安国市| 汝城县| 南开区| 方城县| 闽清县| 石景山区| 慈利县| 望都县| 获嘉县| 个旧市| 宁城县| 义乌市| 商城县| 宁德市| 江西省| 武汉市|