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

基于XML異構數據庫轉換研究

2009-04-29 00:00:00楊海燕
電腦知識與技術 2009年14期

摘要:討論了關系模式映射為XML的方法,研究了關系模式的反求算法,分析了基于鍵的嵌套算法和扁平算法,實現了以模型驅動的關系模式映射為XML的算法。實現了將XML模式轉換為關系模式的算法。最后就關系模式與XML的轉換建立了異構關系數據統一轉換的工具。

關鍵詞:XML;XML Schema;關系模式

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)14-3611-03

Research of Heterogeneous Database Convertion Based on XMl

YANG Hai-yan

(Southwest Jiaotong University, Chengdu 610031,China)

Abstract: The method of mapping the relationship model to XML is discussused. Inverse algorithm of relation model is studied. based on the analysis of the key nested algorithm and flat algorithm,the algorithm of model driven model mapping to XML is realized.It is realized that XML modeconvert to the relationship model. Finally the tool is established for the transformation of XML data between heterogeneous relationship database.

Key words: XML; XML schema; relation mode

1 引言

隨著企業信息化建設的不斷深入、軟硬件資源的升級和各種應用的擴展,造成了多種關系數據庫系統并存的異構問題,企業經常需要對異構關系數據庫進行轉換和遷移。隨著XML的出現,由于其本身所具有的與平臺無關、易于擴展、交互性好、語義性強、可格式化等特性和優點,使得其能夠方便地描述關系數據庫,本文研究以XML模式實現異構關系數據庫間數據的遷移和轉換。

2 轉換流程

在相互轉換時通過建立合適的映射規則以保證轉換的可逆性,保留關系數據庫的各種約束。在關系模式映射為XML模式時,首先根據提取出的關系模式重新構造關系模式,并用關系數據樹來表示,再根據關系數據樹確定表與表之間的嵌套關系,生成映射結構樹。根據映射結構樹和關系數據樹將關系模式映射為XML模式并生成XML Schema文檔和數據事例文檔。在XML模式映射為關系模式時,首先用JDOM解析Schema,分析Schema的結構,用形式化的方式描述XML Schema所定義相關結構和約束信息。根據形式化的結果生成元素樹,元素樹是真實的再現了XML Schema所描述的結構,它與XML文檔數據結構是類似的。由元素樹和形式化結果,制定適當的映射規則將 XML模式映射為關系模式,重要的是需要根據嵌套關系,補充參照關系。由于各種關系數據庫管理系統SQL方言的存在,這里必須針對具體的數據庫管理系統動態的合成SQL中的DDL語句。整個轉換過程如圖1所示。

3 關系模式映射為XML模式

圖2為關系模式映射為XML流程。

4.1 關系模式的提取

系統利用JAVA API相關函數通過讀取數據庫相關元數據來獲取關系數據庫的模式。根據JAVA API提供的接口和關系模式本身的特點,用集合來形式化的表現關系模式。

假設已存在一個表名的集合T,列名集合C和原子數據類型集合A。設R 代表關系模式,可以用一個九元組來表示R,令R=(T,C,P,PK,FK,UK,G,W, )其中,

1) T代表T中的一個有限集合。

2) C代表對應一個特定t∈T到一組c∈C的映射。

3) P代表對于一個c∈C到其類型定義的映射:P(c)=α,α為一個六元組(τ,μ,λ,π,ρ,δ),t∈A;μ代表是否值唯一,取值unique或u_unique;λ代表是否可取空值,取值為1able 或u_1able;π代表缺省值,若沒有缺省值,則用ε代替;ρ在各種字符串類型中表示字符串長度,在各種數字類型中表示數值精度,它的值等于0表示無此項約束;δ為列的其他約束描述,主要是SQL中Check描述的約束,它是域值約束,該約束不能從JDBC的MetaDatabase接口中直接獲取,沒有其他約束其值為ε;

4) PK代表主鍵約束,對于t∈T,有PK(t)={ci},{ci}為屬于表t的部分屬性列的集合,既ci∈c(t);

5) FK代表外鍵約束,對于ci∈c(t)有FK(ci)?哿cj,其中ci∈C;

6) UK代表唯一鍵或唯一索引約束,對于t∈T,有UK(t)={{ci},{cj}…},{ci},{cj}為屬于表t的部分屬性列的集合,既ci,cj∈c(t),{ci}即為表t的一個唯一性索引;

7) G代表對應特定t∈T是否含有外鍵的映射,即G(t)=b, b=0為不含外鍵,b等于其它值時,為含有外鍵,其值表示外鍵數。

8) W代表對應特定t∈T,是否有外鍵參照t中的主鍵,即w(t)=x,x=0代表無外鍵參照,x等于其它值時,代表有外鍵參照 ,其數值表示被參照的數量。

9) ?撞代表關系模式中其它關系描述的有限集合。

2.2 映射結構

映射結構即將關系模式映射為XML模式后,表與表,列與列之間的層次關系,用一棵帶父節點的二叉樹來表示。左孩子表示兄弟關系,右孩子表示嵌套關系,同一個節點的屬性與子元素按兄弟關系處理,父節點表示嵌套該節點的元素。因此所有的表可建立一棵二叉樹,表示它們之間的嵌套關系,對于扁平結構轉換,它簡化變成了一個鏈表。表內的所有列也可建立一個這樣的二叉樹以表明嵌套關系。元素的實際層次結構和二叉樹表示的結構關系如圖3所示。

3.3 模式映射

映射主要分為兩部分,一部分是關系模式的表、列到XML元素、屬性的映射,這一部分涉及關系模式R中的T、C,為結構映射;另一部分是列約束的映射及關系模式的主鍵、外鍵、唯一性約束到XML一致性束的映射,這一部分涉及關系模式R中的P、PK、FK、UI,為完整性約束映射。在這里把列映射為元素,其映射算法如下:

1) 確定與XML Schema相關的全局變量,即XML Schema文檔根元素schema有關屬性值的確定,如目標命名空間、命名空間等。目標命名空間target Name space為了保持唯一性,采用主機IP+關系數據庫系統名+數據庫名。

2) 創建根元素。每個XML文檔有且僅有一個根元素,這里用數據庫名作為映射后的根元素,它擁有DBType、IP、Port三個屬性,DBType為數據庫類型,IP為數據源所在主機的IP地址,Port為數據庫所監聽的端口號。

3) 建立表元素。對映射結構樹用先根遍歷進行遍歷,將根表映射為根元素的子元素,根表就是結構樹中P節點為空的表,也就是從結構樹的根節點出發,沿著左節點向前走的節點都是根表的節點,如圖4中的T_1、T_2、T_3是根表,這樣先根遍歷先訪問到的節點是根表的節點。

4) 建立復雜類型。每一個復雜類型對應一個表結構,實現了表結構映射的相對獨立性。每個復雜類型包含的元素為表的各個列、及其嵌套的表。

5) 列元素相關約束的映射,主要指的是關系模式R中P的內容,包括列的數據類型、是否為空、字符串長度、數據精度、默認值等。可應用XML的基本數據類型和簡單類型組件組合起來表達列的數據類型,如類型CHAR、長度20和VAR CHAR。

6) 一致性約束映射,即主鍵、唯一性約束、外鍵到Schema的映射。

3.4 數據嵌入

通過完成表結構映射和約束映射,就實現了關系模式到XML-Schema的映射。根據映射的結果從數據庫中取出數據生成相應的XML文檔。嵌入數據時,很顯然要先嵌入上層元素的數據,后嵌入下層元素的數據,因此,這里可以按照映射結構樹先序遍歷的順序,將關系數據庫表中的數據嵌入到XML文檔中。

4 XML模式到關系模式的映射

圖4為XML模式轉換為關系模式流程。

4.1 形式化描述

XML Schema是非常復雜的文檔,它描述了一個樹形結構的XML事例文檔。根據Schema的特點,我們用形式化的方法來描述它,XS是一個十元組,令XS =(CE,SE,RE,EE,EA,ED,AD,U,K,fK),其中:

1) CE表示復雜元素名有限集;

2) SE表示簡單元素有限集,簡單元素用簡單元素名和其父元素名共同標識;

3) RE表示根元素名有限集;

4) EE表示從元素e到其子元素的生成式集;

5) EA表示從元素名e到其屬性名a∈T的生成式集;

6) ED表示簡單元素se到簡單元素數據類型的生成式集合;

7) AD表示從屬性名a 到屬性數據類型的生成式集合

8) U表示唯一約束,U(Km)={XPs,XPf },其中Km 表示唯一約束名,XPs、XPf 分別表示唯一約束的Xpath表示的selector 域和field 域;

4.2 建立元素樹

構建元素樹的算法如下:1)將RE中的根元素加入元素有向樹,將EA中根元素的屬性加入元素樹中,并在EE中將其子元素也加入元素樹,將其子元素加入到棧中。2)從棧中取出元素,將EA中該元素的屬性加入到元素樹中,并將其子元素加入元素樹中,對第2步循環調用直到棧為空。元素樹清晰的表達了XML Schema文檔所描述的結構。

4.3 映射轉化

映射轉化分為3個步驟進行。首先需要確定的是元素有向樹中哪些節點映射為表,哪些映射為表的列,根元素是數據庫的名稱,而其屬性是有關關系數據庫的一些描述;其次是對應關系模式R中P的映射,也就是將XML Schema中的簡單元素定義和屬性定義映射為列約束;第三是主關鍵字約束、引用關鍵字約束、唯一鍵約束的映射

4.4 SQL語句的生成

其步驟如下:1)合成創建表語句,涉及關系模式R中的T、C、P,找出各列的數據類型、默認值、是否可以為空等條件。2)根據關系模式R(PK)合成主鍵語句,保證關系模式的實體完整性。3)根據關系模式R(FK)合成外鍵語句,保證關系模式的參照完整完性。4.根據關系模式R(UI)合成唯一鍵,根據P 中的δ分量合成檢查語句,保證關系模式的用戶定義完整性。

4.5 XML文檔數據的錄入

解析XML數據文檔,根據Schema的映射結果,將數據合成SQL中的INSERT語句插入到數據庫中。至此XML模式已經完整的轉化為關系模式,包括模式轉換和數據入庫兩部分。

5 結論

建立的轉換界面如圖6所示。以XML為模型的異構關系數據庫轉換工具能夠較好的實現各種異構關系數據庫之間的模式轉換和數據遷移,實現轉換過程的自動化、與兩端數據庫的無關性。

參考文獻:

[1] Mark Graves,XML數據庫設計[M].尹志軍,譯.北京:機械工業出版社,2003.

[2] 杜賓,王明文.跨平臺數據遷移的研究和實現[J].計算機與現代化,2001.

[3] 方翔.XML文檔到關系數據庫的直接轉換[J].計算機工程,2001,27(11):65-66.

[4] 方翔,李偉生.關系模式到XML模式的影射[J].計算機應用研究,2002,130-132.

[5] Dongwon Lee, Murali Mani, Makoto Murata, Reasoning about XML Schema Languages using Formal Language Theory, Technical Report, IBM Almaden Research Center, Nov. 2000.

[6] W3C. XML Schema Part 0: Primer (W3C Proposed Recommendation). http://www.w3.org /TR/2001/PR-xmlschema-0-20010330/.2001.3.

主站蜘蛛池模板: 欧洲欧美人成免费全部视频| 欧美www在线观看| 一区二区自拍| 中文字幕在线播放不卡| 亚洲第一成人在线| 国产综合色在线视频播放线视| 波多野结衣一区二区三区四区视频| 欧美日韩导航| 精品综合久久久久久97| 91精品国产一区| 亚洲国产欧洲精品路线久久| 91视频免费观看网站| 四虎影视8848永久精品| 一级黄色网站在线免费看| 亚洲视屏在线观看| 91九色最新地址| 九九这里只有精品视频| 国产乱子伦精品视频| 国产午夜在线观看视频| 国产美女91视频| 亚洲无码免费黄色网址| 亚洲精品无码av中文字幕| 老司国产精品视频| 欧美国产成人在线| 成人在线综合| 国产一级视频在线观看网站| 国产一区二区福利| 国产区在线看| 亚洲无线观看| 乱色熟女综合一区二区| 婷婷色婷婷| 91久久偷偷做嫩草影院| 国产成人AV综合久久| 亚洲第七页| 日韩高清中文字幕| 亚洲国产精品不卡在线| 在线高清亚洲精品二区| 激情六月丁香婷婷| 久久6免费视频| 国产麻豆精品手机在线观看| 97国产成人无码精品久久久| 亚洲av片在线免费观看| 中文字幕不卡免费高清视频| 99视频精品全国免费品| 亚洲国产成人久久77| 免费人成视网站在线不卡| 免费看a毛片| 日韩色图区| 国产区免费| 久久亚洲精少妇毛片午夜无码| 99热这里只有免费国产精品| 日韩无码真实干出血视频| 色视频国产| 无码区日韩专区免费系列| 久久亚洲日本不卡一区二区| 91啪在线| 亚洲永久视频| 幺女国产一级毛片| 亚洲美女高潮久久久久久久| 久久青草热| a级毛片一区二区免费视频| 浮力影院国产第一页| 日韩在线播放欧美字幕| 久久综合伊人77777| 一级爆乳无码av| 91人妻在线视频| 免费国产小视频在线观看| 亚洲成a人片| 婷婷中文在线| 国产久草视频| 国产粉嫩粉嫩的18在线播放91| 99精品免费欧美成人小视频 | 国产精品久久久久久久久| 国产福利2021最新在线观看| 久久国产亚洲偷自| 亚洲中文字幕国产av| 国产裸舞福利在线视频合集| 91区国产福利在线观看午夜| 久久综合伊人 六十路| 国产91全国探花系列在线播放| 欧美精品xx| 欧美国产日韩在线|