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

?

淺析XML的異構(gòu)數(shù)據(jù)遷移技術(shù)分析

2012-12-31 11:59金天昕
中國新技術(shù)新產(chǎn)品 2012年2期
關(guān)鍵詞:主鍵數(shù)據(jù)類型異構(gòu)

金天昕

(無錫南洋職業(yè)技術(shù)學(xué)院,江蘇 無錫 214081)

隨著互聯(lián)網(wǎng)地普及、數(shù)據(jù)庫技術(shù)地發(fā)展及信息化程度地加深,越來越多的數(shù)據(jù)被存放在異構(gòu)數(shù)據(jù)中,同時越來越多的信息系統(tǒng)需要共享異構(gòu)數(shù)據(jù)庫中數(shù)據(jù),因而,目前異構(gòu)數(shù)據(jù)庫的管理信息系統(tǒng)開發(fā)的關(guān)鍵逐漸傾向于不同數(shù)據(jù)庫之間連接、交換和共享功能地實(shí)現(xiàn),使異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù)不再是一個“信息孤島”。

XML異構(gòu)數(shù)據(jù)遷移技術(shù)

1.異構(gòu)數(shù)據(jù)遷移方式

異構(gòu)數(shù)據(jù)庫的遷移時應(yīng)根據(jù)以下兩種方式來考慮該選哪種遷移方式,一種是完整地將源數(shù)據(jù)庫信息移到目標(biāo)數(shù)據(jù)庫中;另一種是目標(biāo)數(shù)據(jù)庫中已有相關(guān)記錄,遷移時只需將源數(shù)據(jù)庫信息根據(jù)目標(biāo)數(shù)據(jù)庫的結(jié)構(gòu)對應(yīng)遷移上去。

2.庫信息地獲取

在異構(gòu)數(shù)據(jù)遷移過程中,比較關(guān)鍵的環(huán)節(jié)是庫信息地正確獲取,尤其是數(shù)據(jù)庫中數(shù)據(jù)表的相關(guān)信息地獲取。本文中筆者通過JDBC來連接到數(shù)據(jù)庫,并利用特定SQL語句地執(zhí)行來將數(shù)據(jù)表中列數(shù)、長度、列名、主鍵、允許空等基本屬性取出,為生成相應(yīng)的描述該表的XML Schema做充足準(zhǔn)備。

“select c.name name,t.name type,c.1ength length,C.isnullable,

(case when (SELECT count(*)FROM sysobjectsWHERE(name in

(SELECT nanle FROM sysindexes

WHERE(id=c.id)AND(indid in

(SELECT indid FROM sysindexkeys

WHERE(id=C.id)AND(colid in

(SELECT colid FROM syscolumns

WHERE(id=C.id)AND(name=C.name)))))))AND

(xtype=PK))>0 then 1'elseO'end)Nkey//取主鍵

from syscolumns C join systypes t on c.xusertype=t.xusertype

where id= (selectid from sysobjects where name=“+table+”)”//取設(shè)計表中的數(shù)據(jù),依次為列名、數(shù)據(jù)類型、長度、允許空、主鍵。

數(shù)據(jù)模型映射方法

2.1 基于模式驅(qū)動的映射

異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)遷移是通過文檔結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu)之間建立的映射關(guān)系來完成的,即將數(shù)據(jù)和數(shù)據(jù)類型分別映射為XML文檔和XML Schema文檔的形式?;谀J津?qū)動的映射是指通過一個具體的模型來實(shí)現(xiàn)數(shù)據(jù)庫與XML文檔之間的相互傳送,在該映射過程中除了內(nèi)嵌SQL命令被依賴外,關(guān)系模型被關(guān)系數(shù)據(jù)庫依賴,對象模型被面向?qū)ο髷?shù)據(jù)依賴,Schema對應(yīng)的數(shù)據(jù)模型則被XML文檔依賴。基于模式驅(qū)動的映射可以將XML Schema文件中的復(fù)雜原始類型改為簡單化,方便用戶數(shù)據(jù)分割和理解。數(shù)據(jù)類型有其相對應(yīng)的規(guī)則,即不同的數(shù)據(jù)庫及同一數(shù)據(jù)庫廠商的不同版本的數(shù)據(jù)庫產(chǎn)品之間對數(shù)據(jù)類型的定義是不同的。

2.2 基于XML Schema的數(shù)據(jù)庫信息建模

在數(shù)據(jù)庫信息與XML Schema之間建立并實(shí)現(xiàn)雙向映射可以使基于模型驅(qū)動實(shí)現(xiàn)數(shù)據(jù)庫與XML文檔之間數(shù)據(jù)的雙向傳輸。在生成的XML Schema文檔對設(shè)計表里面元素的基本屬性做了基本的描述,以在異構(gòu)數(shù)據(jù)遷移時可以更完整地表述數(shù)據(jù)庫信息,如表名稱—ref、長度—value、類型—base、字段名稱—name、主鍵—xs:key,等等。對于XML Schema文檔中SQL Server2000數(shù)據(jù)庫內(nèi)某個表bjdmb的相關(guān)信息可以如以下一段編程來表示。

//XML 文件的開始標(biāo)記

maxOccurs=”unbounded”/>//表中完整數(shù)據(jù)出現(xiàn)次數(shù)

//表名

//列bj是否為空值

/// 列 bj的屬性

/// 列 bj 的最大長度

//表bjdmb的主鍵申明

// 表 bjdmb 的主鍵為bjdm

2.3 數(shù)據(jù)庫數(shù)據(jù)遷移

從數(shù)據(jù)庫映射到XML文檔的過程中,可以通過屬性中心和元素中心兩種形式表示,這兩種形式都可以指定這些元素或?qū)傩缘拿?。但前者不可對各字段的先后順序進(jìn)行表述,也比較難在屬性中保存應(yīng)用程序操作,因而,一般情況下都選用元素中心的形式來表示,以實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫間數(shù)據(jù)交換中XML中間層的構(gòu)建。下面是一段XML代碼指的是中SQL Server2000數(shù)據(jù)庫內(nèi)一個表bjdmb中的一組數(shù)據(jù),即bjdm、bj、njdm的映射。

3.遷移過程可視化控制

遷移過程可視化控制是指用戶在前臺控制端就可根據(jù)遷移的具體要求,通過論文原型遷移平臺來完成異構(gòu)系統(tǒng)間數(shù)據(jù)的遷移工作。在該遷移過程中,后臺異構(gòu)數(shù)據(jù)庫間具體差異用戶可以完全不做考慮。本文中筆者對前臺用戶可視化界面的設(shè)計與實(shí)現(xiàn)采用的是JSP和JavaBean系統(tǒng)。

根據(jù)異構(gòu)數(shù)據(jù)遷移系統(tǒng)的層次結(jié)構(gòu)圖我們可以將該系統(tǒng)分為5個模塊,即數(shù)據(jù)庫連接模塊、數(shù)據(jù)導(dǎo)入模塊、數(shù)據(jù)操作模塊、數(shù)據(jù)遷移模塊和數(shù)據(jù)展示模塊。其中數(shù)據(jù)庫連接模塊主要用于實(shí)現(xiàn)將要被遷移的源數(shù)據(jù)庫的設(shè)定和連接;數(shù)據(jù)導(dǎo)入模塊主要負(fù)責(zé)源數(shù)據(jù)庫中需要進(jìn)行遷移的數(shù)據(jù)的遷移工作;數(shù)據(jù)操作模塊主要功能是用戶對轉(zhuǎn)換過程中一些如需修改的表名、列名、庫名及需進(jìn)行添加或刪除的字段等轉(zhuǎn)換具體需求地設(shè)定;數(shù)據(jù)遷移模塊主要負(fù)責(zé)交換和關(guān)聯(lián)規(guī)則地設(shè)定;數(shù)據(jù)展示模塊,顧名思義就是在屏幕上向用戶展示遷移過程和結(jié)果,以方便用戶監(jiān)控。

[1]龐海濤.XML在異構(gòu)數(shù)據(jù)交換中的研究與應(yīng)用[D].湖北:武漢理工大學(xué)碩士論文,2006.

[2]都志輝.XML編程實(shí)踐[M].北京:清華大學(xué)出版社,2002.

猜你喜歡
主鍵數(shù)據(jù)類型異構(gòu)
試論同課異構(gòu)之“同”與“異”
詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
異構(gòu)醇醚在超濃縮洗衣液中的應(yīng)用探索
overlay SDN實(shí)現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
范疇數(shù)據(jù)類型上的子類型*
數(shù)據(jù)庫主鍵設(shè)置探討
剑河县| 合作市| 江阴市| 秭归县| 简阳市| 南靖县| 怀安县| 枣阳市| 玉门市| 正镶白旗| 鲁甸县| 专栏| 都昌县| 临澧县| 德江县| 瑞丽市| 彭水| 佛坪县| 忻城县| 大余县| 康平县| 唐山市| 禄丰县| 利川市| 广灵县| 绥阳县| 吉水县| 环江| 长沙市| 呼伦贝尔市| 沧州市| 宜春市| 昌平区| 漳平市| 商丘市| 于田县| 和林格尔县| 钦州市| 兴安县| 辰溪县| 平顶山市|