999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XML的數(shù)據(jù)遷移方法研究與實(shí)現(xiàn)

2012-04-29 00:44:03趙會群趙俊寶張?jiān)娰?/span>孫晶
計(jì)算機(jī)時(shí)代 2012年5期

趙會群 趙俊寶 張?jiān)娰? 孫晶

摘要: 針對當(dāng)前網(wǎng)絡(luò)環(huán)境中異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)共享與數(shù)據(jù)交換問題,探討了XML語言數(shù)據(jù)處理特點(diǎn)以及.Net框架中ADO.Net對數(shù)據(jù)源進(jìn)行訪問的特色,采用C#語言實(shí)現(xiàn)了以XML為中間件的異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)交換工具。

關(guān)鍵詞: XML; 異構(gòu)數(shù)據(jù)庫; 數(shù)據(jù)交換

中圖分類號:TP311文獻(xiàn)標(biāo)志碼:A文章編號:1006-8228(2010)05-41-02

The research and implementation of the Data migration method based on XML

Zhao Huiqun, Zhao Junbao, Zhang Shikan, Sun Jing

(The northern industrial university, Beijing 100144, China)

Abstract: The problems about the data sharing and data migration among heterogeneous database in network environment are discussed, and the XML language characteristics and the using ofthe ADO.net to access to the data source in .net framework are studied. Finally, useing c# language, a tool which using a middleware base on XML to exchange data between heterogeneous database is realized.

Key words: XML; heterogeneous database; data switching

0 引言

XML是一套定義語義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對這些部件加以標(biāo)識。同時(shí)XML也是元標(biāo)記語言,即定義了用于定義其他與特定領(lǐng)域有關(guān)的、語義的、結(jié)構(gòu)化的標(biāo)記語言的句法語言。XML允許用戶自行定義標(biāo)記與屬性,并可以按照所定義的標(biāo)記與屬性的語法來開發(fā)應(yīng)用程序,因而具有很好的擴(kuò)展性。由于XML實(shí)現(xiàn)了內(nèi)容與形式的分離以及在編寫過程中遵循嚴(yán)格的語法要求,這為XML在不同的系統(tǒng)間傳輸提供極大的便利。XML的最大優(yōu)點(diǎn)是其數(shù)據(jù)描述和數(shù)據(jù)傳送能力,因此具有很強(qiáng)的開放性[1]。

數(shù)據(jù)庫技術(shù)是現(xiàn)代信息科學(xué)與技術(shù)的重要組成部分,是計(jì)算機(jī)數(shù)據(jù)處理與信息管理系統(tǒng)的核心。Microsoft為數(shù)據(jù)訪問提供全新的編程模型,設(shè)計(jì)開發(fā)了基于.NET Framework的ADO.NET數(shù)據(jù)訪問模型。ADO.NET具有強(qiáng)大的數(shù)據(jù)庫操縱功能,針對不同的數(shù)據(jù)訪問形式,設(shè)計(jì)了相應(yīng)的實(shí)現(xiàn)類,開發(fā)者可以使用這些類中的方法與屬性方便地對不同的數(shù)據(jù)源進(jìn)行操作,如數(shù)據(jù)庫和XML文件等。.NET Framework數(shù)據(jù)提供程序是專門為數(shù)據(jù)訪問和處理而設(shè)計(jì)的組件,包括提供數(shù)據(jù)源連接的Connection對象,處理數(shù)據(jù)庫命令的command對象,提供高性能數(shù)據(jù)流的DataReader對象以及連接Dataset與數(shù)據(jù)源的DataAdapter對象。ADO.NET中一個(gè)核心概念是DataSet,專門為獨(dú)立于任何數(shù)據(jù)源的數(shù)據(jù)訪問而設(shè)計(jì)。DataSet是數(shù)據(jù)的內(nèi)存駐留表示形式,無論數(shù)據(jù)源是什么,它都會提供一致的關(guān)系變換模型,使得開發(fā)者在開發(fā)過程中可以屏蔽數(shù)據(jù)庫之間的差異從而獲得一致的編程模型。本實(shí)例正是使用DataSet的特點(diǎn)來實(shí)現(xiàn)不同數(shù)據(jù)源間數(shù)據(jù)的存取操作。

1 實(shí)例背景

當(dāng)前的主流數(shù)據(jù)庫系統(tǒng)包括SqlServer,Oracle和MySql等數(shù)據(jù)庫,但是他們之間在結(jié)構(gòu)上存在一定的差異,正是由于這些差異,在各種數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)遷移時(shí),需要對其進(jìn)行相應(yīng)的修改,以保證數(shù)據(jù)遷移的正確性。盡管各大數(shù)據(jù)庫廠商都提供了相應(yīng)的數(shù)據(jù)遷移工具,比如SqlServer中提供Import/Export工具進(jìn)行數(shù)據(jù)遷移服務(wù),Oracle中提供SQL*Loader遷移工具,同樣也可以使用ODBC數(shù)據(jù)源管理工具來進(jìn)行MySql數(shù)據(jù)庫與SqlServer、Oracle等數(shù)據(jù)庫間的數(shù)據(jù)遷移。但是這些工具或者操作方法都比較復(fù)雜,并且實(shí)現(xiàn)的主要功能是將某一數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫完整地遷移到其他目標(biāo)數(shù)據(jù)庫中。在遷移過程中,需要使用者在數(shù)據(jù)庫遷移方面有一定的經(jīng)驗(yàn),才能高效,準(zhǔn)確地完成遷移工作。

當(dāng)前商場、超市等的進(jìn)銷存系統(tǒng)中,商品基礎(chǔ)信息的存儲表有著很重要的作用,商品的名稱,規(guī)格等自身的屬性被持久存貯在系統(tǒng)數(shù)據(jù)庫中,并且跟隨商品作為商品說明在生產(chǎn)、運(yùn)輸、銷售、服務(wù)等環(huán)節(jié)中進(jìn)行流通。這些在不同環(huán)節(jié)、不同系統(tǒng)中流通的商品信息,其變更與存儲主要是通過員工手工錄入的方式來進(jìn)行的,這個(gè)過程中就會出現(xiàn)信息錄入的效率,準(zhǔn)確性等問題。

鑒于不同數(shù)據(jù)庫間的異構(gòu)性以及商品信息的流通性較強(qiáng)這兩方面因素的考慮,為了提高進(jìn)銷存系統(tǒng)中數(shù)據(jù)的錄入能力,提出了這樣一種解決辦法:供貨商在提供一種新的商品時(shí),可以使用該工具生成一份XML格式的文檔說明,來具體描述商品基本信息;銷售商可以使用該工具,將XML格式表示的商品信息錄入自身的系統(tǒng)中。在這個(gè)過程中,雙方都不需考慮對方的數(shù)據(jù)庫支持格式。這樣就實(shí)現(xiàn)了商品信息的快速遷移工作。

2 設(shè)計(jì)實(shí)現(xiàn)

2.1 不同數(shù)據(jù)庫數(shù)據(jù)類型與XML數(shù)據(jù)類型之間的映射

基于XML實(shí)現(xiàn)數(shù)據(jù)的交換,必須解決兩方面的問題,一是XML文檔與數(shù)據(jù)庫之間模型對象的映射關(guān)系,二是兩者數(shù)據(jù)類型直接的映射關(guān)系[2]。由于本方法的應(yīng)用特殊性,XML文檔只對應(yīng)數(shù)據(jù)庫單表操作,因此,這種模型映射稍微簡單,只要XML根元素對應(yīng)數(shù)據(jù)庫導(dǎo)入/導(dǎo)出表,子元素中元素屬性對應(yīng)數(shù)據(jù)庫列字段類型,元素值對應(yīng)列值即可。對于后者,則需要考慮XML數(shù)據(jù)類型與其他關(guān)系數(shù)據(jù)庫數(shù)據(jù)類型的對應(yīng)關(guān)系。當(dāng)前流行的數(shù)據(jù)庫包括微軟的SQL Server,Oracle,MySql以及DB2等數(shù)據(jù)庫,這些數(shù)據(jù)庫的數(shù)據(jù)類型在命名、表示范圍等方面都有一定的差異。因此,在使用基于XML實(shí)現(xiàn)數(shù)據(jù)遷移時(shí),必然會出現(xiàn)數(shù)據(jù)類型的表示方式,格式等方面的不同。如表1所示,給出了Oracle 10g數(shù)據(jù)庫中常用數(shù)據(jù)類型與XML內(nèi)置數(shù)據(jù)類型之間的對應(yīng)映射關(guān)系[3]。

表1數(shù)據(jù)類型對應(yīng)關(guān)系

[[XMLSchema&Oracle10g&類型定義說明&String&Char(varchar2,nchar,nvarchar2)&字符串類型&Decimal&Number&任意精度和位數(shù)的十進(jìn)制數(shù)&Datatime(data,time)&Data(timestamp)&時(shí)間類型&Blob&Blob(long,cblob,nblob)&二進(jìn)制大對象數(shù)據(jù)&Boolean&Char等&二元boolean類型,true或false&]]

Oracle數(shù)據(jù)庫中數(shù)據(jù)類型與XML數(shù)據(jù)類型的對應(yīng)關(guān)系如表1所示。要基于XML實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)遷移,就必須由程序?qū)崿F(xiàn)不同數(shù)據(jù)庫和XML類型之間的轉(zhuǎn)換關(guān)系,可以用兩種方法實(shí)現(xiàn)這種自動(dòng)轉(zhuǎn)換,一是在數(shù)據(jù)導(dǎo)入導(dǎo)出以前,由用戶手動(dòng)指定對應(yīng)的數(shù)據(jù)類型跟映射關(guān)系。二是直接交由程序自動(dòng)完成不同數(shù)據(jù)類型的映射關(guān)系。考慮到方便用戶的實(shí)際操作以及保證數(shù)據(jù)類型對應(yīng)關(guān)系的合理性,本方法采用后者實(shí)現(xiàn)數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換。

2.2 XML文件的導(dǎo)出與導(dǎo)入

基于XML的數(shù)據(jù)遷移工具,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入與導(dǎo)出兩大基本功能。數(shù)據(jù)的導(dǎo)出功能使用者主要來自于供貨商。供貨商使用該工具時(shí),首先在登錄項(xiàng)中選擇登錄的數(shù)據(jù)庫,填寫數(shù)據(jù)庫用戶名、登錄密碼等信息,登錄成功后,用戶選擇需要導(dǎo)出的表,以及表中數(shù)據(jù),即可完成從數(shù)據(jù)庫到XML文件的導(dǎo)出工作。在此過程中,程序會根據(jù)用戶選擇的表以及選擇要導(dǎo)出數(shù)據(jù),完成關(guān)系數(shù)據(jù)庫到XML文件的導(dǎo)出工作。在導(dǎo)出的XML文檔中,表中各列內(nèi)容以XML文檔元素表示,表中字段屬性以元素屬性表示。示例文件如圖1所示。

數(shù)據(jù)遷移工具的第二功能是數(shù)據(jù)的導(dǎo)入功能,該功能主要使用者是銷售商,在銷售商獲得新加商品的同時(shí),會隨商品同時(shí)獲得一份商品信息說明文檔(即上一部分供貨商導(dǎo)出的XML文檔)。在導(dǎo)入數(shù)據(jù)前,同樣需要用戶填寫數(shù)據(jù)庫名,登錄密碼等信息,登錄所要操作的數(shù)據(jù)庫,接著要求用戶選擇導(dǎo)入的XML文件,以及對應(yīng)的導(dǎo)入目標(biāo)表,最后會要求用戶將XML對應(yīng)的元素信息與目標(biāo)表中的列相互映射,從而確定數(shù)據(jù)的正確導(dǎo)入。在使用遷移工具將XML格式的文檔導(dǎo)入數(shù)據(jù)庫是,程序會根據(jù)XML文檔中元素的屬性說明,結(jié)合數(shù)據(jù)庫表中的字段信息,如果兩者相吻合,則直接導(dǎo)入數(shù)據(jù),若出現(xiàn)導(dǎo)入錯(cuò)誤,則會及時(shí)提示用戶出錯(cuò)原因,比如導(dǎo)入數(shù)據(jù)長度超出實(shí)際要求等,用戶會根據(jù)錯(cuò)誤提示修改導(dǎo)入文件或者導(dǎo)入方式,重新進(jìn)行導(dǎo)入。數(shù)據(jù)遷移工具的流程圖如圖2所示。

圖1數(shù)據(jù)的XML表示

[用戶登錄][操作結(jié)束、退出][用戶選擇操作] [用戶選擇導(dǎo)出表,

選擇導(dǎo)出數(shù)據(jù)][填寫導(dǎo)出XML

名稱,保存][成功] [繼續(xù)操作] [錯(cuò)誤提示,用戶

重新執(zhí)行操作][用戶選擇導(dǎo)入目標(biāo)表][選擇導(dǎo)入XML文件][系統(tǒng)執(zhí)行導(dǎo)入][成功] [錯(cuò)誤提示,用戶

重新執(zhí)行操作] [Y][N][Y] [N] [N]

圖2遷移工具流程圖

3 實(shí)驗(yàn)結(jié)果驗(yàn)證

基于XML實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換工具采用XML作為中間件,實(shí)現(xiàn)了MySql 5.1、SqlServer2005與Oracle 10g三者之間的數(shù)據(jù)遷移[4],在工具驗(yàn)證過程中,分別進(jìn)行數(shù)據(jù)的導(dǎo)入與導(dǎo)出驗(yàn)證,利用某商場進(jìn)銷存管理系統(tǒng)中的部分?jǐn)?shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),模擬供貨商,分別從不同的三種數(shù)據(jù)庫中將商品信息導(dǎo)入XML格式文檔,然后交由銷售商進(jìn)行不同數(shù)據(jù)庫間的導(dǎo)入操作,實(shí)驗(yàn)結(jié)果證明采用該工具既可以圓滿完成異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)遷移,又極大地提高了數(shù)據(jù)的錄入效率,大大避免了手工錄入數(shù)據(jù)時(shí)準(zhǔn)確性差,效率低的缺點(diǎn)[5]。

4 結(jié)束語

結(jié)合當(dāng)前商場、超市等進(jìn)銷存系統(tǒng)中數(shù)據(jù)更新變換迅速,手工錄入或依靠第三方平臺錄入中存在的不足,實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)庫間簡單、快速及時(shí)的商品信息遷移功能,極大地方便了供貨商與銷售商對商品基本信息的使用。

參考文獻(xiàn):

[1] 李剛.瘋狂XML講義[M].電子工業(yè)出版社,2009.

[2] 楊芳,陶世群.基于XML異構(gòu)數(shù)據(jù)庫系統(tǒng)的集成設(shè)計(jì)[J].計(jì)算機(jī)工程

與設(shè)計(jì),2005.7.

[3] Chang B. et al.Oracle XML開發(fā)手冊[M].機(jī)械工業(yè)出版社,2001.

[4] Jon Skeet著,朱永光譯.深入解析C#[M].人民郵電出版社,2010.

[5] (美)Thomas Kyte著,蘇金國,王小振等譯.Oracle Database 9i/

10g/11g編程藝術(shù)深入數(shù)據(jù)庫體系結(jié)構(gòu)[M].人民郵電出版社,

2011.

主站蜘蛛池模板: 蜜臀AV在线播放| 久久亚洲国产最新网站| 欧美啪啪网| 成人午夜网址| 91在线国内在线播放老师| 亚洲综合色区在线播放2019| 欧洲熟妇精品视频| 茄子视频毛片免费观看| 国产亚洲欧美日本一二三本道| 亚洲AⅤ永久无码精品毛片| 99久久精品久久久久久婷婷| 国产你懂得| 国产亚洲精品97AA片在线播放| 天堂岛国av无码免费无禁网站| 在线观看国产精美视频| 凹凸精品免费精品视频| 91在线视频福利| 在线观看国产网址你懂的| 亚洲资源站av无码网址| 精品国产女同疯狂摩擦2| 2021国产精品自产拍在线观看| 97综合久久| 成人福利在线观看| 亚洲精品成人福利在线电影| 国产成+人+综合+亚洲欧美 | 精品久久人人爽人人玩人人妻| 在线免费无码视频| 亚洲精品国产首次亮相| 影音先锋亚洲无码| 91精品啪在线观看国产91| 亚洲免费福利视频| 成人免费午夜视频| 毛片大全免费观看| 亚洲国产91人成在线| 青草91视频免费观看| 日韩人妻无码制服丝袜视频| 在线日韩一区二区| 黄色网址手机国内免费在线观看| 亚洲五月激情网| 国产在线一二三区| 18黑白丝水手服自慰喷水网站| 亚洲欧美自拍中文| 国产视频 第一页| 国产亚洲视频播放9000| 国产麻豆va精品视频| 欧美97欧美综合色伦图| 在线免费看黄的网站| 午夜国产精品视频| 国产成人精品18| 日本国产精品| 久久伊人操| 免费毛片在线| 亚洲三级色| 在线看AV天堂| 国产aaaaa一级毛片| 国产区在线看| 国产精品一区在线麻豆| 三上悠亚在线精品二区| 在线看国产精品| 欧美成人日韩| 国产激情在线视频| 欧美精品三级在线| 三上悠亚在线精品二区| 午夜精品久久久久久久无码软件 | 亚洲国产欧美国产综合久久| 天天色综合4| 国产经典三级在线| 自拍偷拍一区| 日韩国产一区二区三区无码| 中文字幕亚洲另类天堂| 国产成人精品综合| 国产一级在线播放| 亚洲性视频网站| 亚洲va欧美ⅴa国产va影院| 午夜激情福利视频| 97se综合| 天天摸夜夜操| 久久综合国产乱子免费| 天堂av综合网| 狠狠干综合| 亚洲精品天堂自在久久77| 四虎精品黑人视频|