一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

基于XML的異構數據交換的研究

  • 相關(guān)推薦

基于XML的異構數據交換的研究

畢業(yè)論文

基于XML的異構數據交換的研究

摘 要:XML 的可擴展性和自描述性以及其它特性為異構數據交換提供了新的思路;赬ML 本文提出了1種異構數據交換的方法,并結合應用實(shí)例給出了它的具體的實(shí)現過(guò)程。
關(guān)鍵詞:異構數據庫,數據交換, XMLSchema,XML
中圖法分類(lèi)號:TP311  文獻標示碼:A
Keywords: Heterogeneous databases, Data exchange, XML Schema, XML
1 前言 畢業(yè)論文 論文網(wǎng)
數據庫應用發(fā)展到今天,己有相當數量的企業(yè)和科研機構積累了大量的、以不同形式存儲的、依賴(lài)于不同數據庫管理系統的數據,如何共享這些數據信息,是企業(yè)進(jìn)1步發(fā)展所需解決的問(wèn)題。另外,由于歷史等原因,Internet上的數據庫系統不少也是分布、異構的,Internet上大量信息必須通過(guò)數據庫系統才能有效管理,如何合理地使用這些異構數據庫,己成為當前急待解決的問(wèn)題。異構數據庫系統是相關(guān)的多個(gè)數據庫系統的集合,用以實(shí)現數據的共享和透明訪(fǎng)問(wèn)。異構數據庫系統的異構性主要體現在以下幾個(gè)方面: 1)計算機體系結構的異構。2)基礎操作系統的異構。3) DBMS本身的異構。本文中討論的異構數據庫屬于第3種類(lèi)型,即在不同DBMS的兩個(gè)異構數據庫系統間(Oracle數據庫和SQL Server數據庫)進(jìn)行信息交流。
2 XML與數據庫
2。1 XML及其相關(guān)技術(shù)
 XML即為“可擴展的標記語(yǔ)言”(eXtensible Markup Language ),是1套定義語(yǔ)義標記的規則。是由W3C組織于1998 年2月制定的1種通用語(yǔ)言規范, 是SGML的簡(jiǎn)化子集, 專(zhuān)門(mén)為Web 應用程序而設計。XML 作為1種可擴展性標記語(yǔ)言, 其自描述性使其非常適用于不同應用間的數據交換, 而且這種交換是不以預先規定1組數據結構定義為前提。XML 的最大優(yōu)點(diǎn)是對數據描述和數據傳送能力, 因此具備很強的開(kāi)放性。
為了對XML文檔的結構與允許值進(jìn)行定義和檢查,有兩種辦法:1是使用DTD文檔類(lèi)型定義;2是使用XML Schema。這兩者均為XML規范的1部分。DTD的用途很多,可用來(lái)定義內容的模式、限制數據的范圍、限制屬性的數據類(lèi)型等。但DTD也有1些不足之處:DTD本身不符合XML規范;它不支持名稱(chēng)空間(Namespace);擴展性差;數據類(lèi)型有限等。 XML Schema相對于DTD的明顯好處是Schema文檔本身符合XML規范,而不是象DTD那樣使用特殊格式。用戶(hù)與開(kāi)發(fā)者可以使用相同的工具來(lái)處理XML Schema,而不必使用特殊的工具。
2。2 關(guān)系數據庫與XML之間的映射方法
 根據映射關(guān)系的建立方式不同,我們可以得到兩種數據轉換方法:基于模板驅動(dòng)的轉換方法和基于模型驅動(dòng)的轉換方法。
2。2。1基于模板驅動(dòng)的映射方法
基于模板的映射方法并不預先定義好XML文檔與其他數據之間的映射關(guān)系,而是在XML文檔中嵌入帶參數的SQL命令。這些命令在轉換過(guò)程中被系統所識別和執行,執行的結果被替換到指令所在的位置,從而生成目標XML文檔,并用數據傳輸諸如中間件等實(shí)體軟件進(jìn)行處理;谀0宓霓D換方法的好處在于轉換的步驟比較簡(jiǎn)單,只要給出模板,就可以快速地生成相應的XML文檔。不足之處在于,基于模板驅動(dòng)的映射是1種淺層映射,以XML內嵌的SQL執行的數據結果集為依據,不涉及數據庫賴(lài)以存在的關(guān)系模式,它只是將關(guān)系數據庫的數據轉換為XML文檔,并沒(méi)有提取出關(guān)系模式,它舍棄了關(guān)系模式的種種約束條件,因此對于反向的轉換更是無(wú)能為力。
2。2。2基于模型驅動(dòng)的映射方法
基于模型驅動(dòng)的映射,當把數據從數據庫傳送到XML文檔或把數據從XML文檔傳送到數據庫時(shí),不是僅僅依賴(lài)內嵌SQL命令,而是用1個(gè)具體的模型實(shí)現的;谀P偷霓D換方法用這個(gè)預先定義好的數據模型來(lái)映射XML與關(guān)系數據庫數據之間的關(guān)系;谀P偷霓D換方法的關(guān)鍵在于設計1個(gè)靈活的映射模型,為了更好的支持其逆向映射的特點(diǎn),這個(gè)映射模型必須是易于“讀懂”的、易于操縱的,能夠很好的與達關(guān)系數據庫的各種約束。關(guān)系數據庫的理論依據是關(guān)系模型,而XML文檔的依據是XML Schema或DTD等。本文將用XML Schema來(lái)描述關(guān)系數據。
3。 應用實(shí)例
 在本文中,數據庫的異構主要是DBMS的異構,1個(gè)是Oracle的DBMS,1個(gè)是SQL Server的DBMS,我們以學(xué)校學(xué)生管理系統為例。該系統分為院和系兩部分。各系里的管理系統其前端開(kāi)發(fā)上具是Sybases公司的PowerBuilder 9。0,后臺數據庫系統是Oracle公司的Oracle 8i。另外,學(xué)院有1套自己的管理軟件,該軟件后臺數據庫服務(wù)器為Microsoft公司的SQLServer 2005,為了達到系向院級實(shí)時(shí)傳遞學(xué)生管理信息和保持信息1致性的目的,且考慮到學(xué)生管理信息數據量大、重要性高的特點(diǎn),需要設計1種高效、安全的數據傳送方法來(lái)實(shí)現學(xué)生信息的交流。正是在此背景下,設計了1種利用XML來(lái)實(shí)現這兩個(gè)異構數據庫信息交流方法。
本系統具體實(shí)現總體上可分為兩個(gè)部分,其1是客戶(hù)端Oracle數據庫中的數據到XML文檔的映射過(guò)程,其2是XML文檔到SQL Server數據庫的映射過(guò)程。由于本系統實(shí)現的木的是將各系學(xué)生管理系統數據庫中的“有效信息”根據需要上傳到學(xué)院管理系統的數據庫中,所以客戶(hù)端和服務(wù)器端的實(shí)現都是以SQL Server數據庫的關(guān)系模式為基礎,即以SQL Server數據庫中的表及其相互關(guān)系為基礎的,客戶(hù)端上傳的數據必須符合學(xué)院的管理系統的標準。
從目的和技術(shù)兩個(gè)方面出發(fā),依據本系統的具體特點(diǎn),本系統實(shí)現的第1步就是通過(guò)SQL Server關(guān)系數據庫將關(guān)系模式映射為XML模式,即通過(guò)關(guān)系數據庫中具體的表及其相互關(guān)系,映射為標準的XML文檔描述語(yǔ)言XML Schema。從而為客戶(hù)端生成XML文檔提供1個(gè)格式上的標準。下面是整個(gè)系統的具體實(shí)現。
3。1 SQL Server數據庫中表及其相互關(guān)系
 學(xué)生信息在SQL Server數據庫中有兩個(gè)表,這兩個(gè)表中的數據正是我們交換的信息,各個(gè)表的信息和表之間的約束關(guān)系如下:
 表1(學(xué)生基本信息表):
Table studet(
  Id    10)  not null,//學(xué)號
 name    15)  null,//姓名
 sex    2)   null,//性別 畢業(yè)論文 論文網(wǎng)
 class   10)  null,//所在班級
 age    Integer   null,//年齡
 constraint PK_student primary key(Id)
 )
表2(班級情況表):
Table depart(
 class    10)  not null,//班級
 boy_num   Integer   null,//男生人數
 girl_num  Integer   null,//女生人數
 monitor   15)  null,//班長(cháng)
 teacher   15)  null,//班主任
constraint PK_depart primary key(class)
constraint fk_RC
foreign key (calss) References student (calss)
 )
3。2 通過(guò)ADO。NET將關(guān)系數據庫映射為XML Schema
利用ADO。NET組件將SQL Server關(guān)系數據庫映射為XML Schema,該XMLSchema正是我們把Oracle數據庫服務(wù)器中數據映射為XML文檔所要依據的XMLSchema,下面是C#中產(chǎn)生XML Schema的部分關(guān)鍵代碼(這里僅列出與表1有關(guān)的代碼,至于其它三個(gè)表,類(lèi)同):
//產(chǎn)生1個(gè)新的數據集
DataSet ds=new DataSet(“studentXML”);
//連接數據源
OleDbConnection conn=new
OleDbConnetion(@”server=student;uid=system;pwd=manager;datasource=student”)
//生成數據適配器(僅列出表的相關(guān)代碼student)
OIeDbDataAdapter da_index=new OIeDbDataAdapter("SELECT*FROM student”,conn);
//用適配器填充數據集
da_index。Fill(ds,”student”);
//在數據集中添加表與表之間的關(guān)系
ds。Relations。Add(ds。Tables["student"]。Columns["class"],
         ds。Tables["depart"]。Columns["class"]);
//生成XML文件
ds。WriteXml(“。。。。jhsy。xml",XmlWriteMode。WriteSchema);
通過(guò)執行這些代碼后,1個(gè)標準XML Schema格式文檔即可生成。
3。3 從Oracle數據庫到XML文檔的映射
具體方法是先將數據庫中的數據檢索、過(guò)濾到數據窗口中,然后用程序方法來(lái)實(shí)現數據到XML文檔的映射。主要用到的函數就是FileWrite(),由于異構數據庫之間表的字段名、字段類(lèi)型、字段長(cháng)度的不1致性,所以在程序中,還要有將Oracle數據庫中數據進(jìn)行變換以符合SQL Server數據庫中表和字段定義要求的功能。此外,還要符合SQL Server中表的主、外鍵定義。具體流程如下圖:

3。4 將有效的XML文檔轉化為ADO。NET數據
XML數據文檔經(jīng)過(guò)有解析和效性驗證后,下1步是如何將其映射到SQL Server數據庫中,XML數據文檔并不是直接1步就映射到庫中的,它先通過(guò)C # 。net提供的ADO。NET來(lái)轉化,先將文檔的數據加載到DataSet(數據集)中,然后才從ADO。NET映射到數據庫中的。
 ADO。NET是為在XML環(huán)境中上作而設計的,ADO。NET使用XML進(jìn)行遠程傳輸,所以數據可以在不支持ADO。NET的應用程序和系統之間交換,ADO。NET提供了1些強大的功能來(lái)讀寫(xiě)XML文檔,使用ADO。NET關(guān)系數據的類(lèi)被包含在System。Xml這1命名空間中。要把XML文檔加載到SQL Serve:數據庫中,應先把XML文檔轉換為ADO。NET的DataSet。下面是其主要代碼:
 DataSet ds_ xml=new DataSet("studentXML");
 ds。ReadXml(“。。。。。。 jhsy。xml",XmlReadMode。ReadSchema);
ReadXml()函數是專(zhuān)門(mén)用來(lái)處理XML數據文檔的,它有兩個(gè)參數,第1個(gè)參數是要讀取的XML數據文檔,第2個(gè)參數是讀取的模式,我們選取ReadSchema模式,即以XML Schema為XML數據文檔的模式描述語(yǔ)言。
3。5將ADO。NET數據加載到數據庫中
 雖然此時(shí)XML數據文檔己經(jīng)轉化為數據集ds_ xml中的數據,但還不能直接更新數據庫,因為沒(méi)有1個(gè)數據適配器,自接更新是不成功的,因此,再新建1個(gè)數據集ds_ server,該數據集通過(guò)數據適配器dal與SQL Server數據庫聯(lián)系,此數據集中的數據可直接更新數據庫,然后,由于ds_ server數據集和ds_xml數據集的數據模式是相同的(都是XML Schema),所以它們可以“合并”,C # 。net中提供了Merger函數用來(lái)合并兩個(gè)具有相同數據模式的數據集,最后通過(guò)dal來(lái)更新SQL Server數據庫。
 //連接SQL Server數據庫 畢業(yè)論文 論文網(wǎng)
 string C;
OleDbConnection OleDbConn=new OleDbConnection(ConnString);
//建立1個(gè)新的數據集
DataSet ds1 server=new DataSet("studentXML");
//建立服務(wù)器端數據適配器
OIeDbDataAdapter dal=new OIeDbDataAdapter("SELECT*FROM student",OleDbConn);
//填充服務(wù)器端數據集
da1。Fi11(ds_ server,“student”);
//將數據集ds_ xml并入到ds_ server集中
ds1 server。Merge(ds_ xml。Tables[“student”]);
//更新服務(wù)器端數據庫
dal。Update(ds_ server,“student”);
至此,基于XML的整個(gè)異構數據庫之間的信息交換己全部實(shí)現,從整個(gè)實(shí)現過(guò)程,可知,XML作為1個(gè)數據交換的中間件,的確能很好的實(shí)現各個(gè)數據庫之間的數據轉換,從而達到了數據共享和信息交流的目的。
4。結束語(yǔ)
本文較為詳盡的闡述了如何利用XML實(shí)現SQL Server和Oracle之間的數據轉換,雖然它只是單機版中的數據轉換而并不是企業(yè)網(wǎng)絡(luò )信息數據的交換,但本文旨在展現它在信息交換上的優(yōu)越性。相信XML在未來(lái)的EDI中將發(fā)揮主流作用,成為企業(yè)間信息交換的標準,不久的將來(lái)各行業(yè)都1定會(huì )出現自己的通用的XML標記語(yǔ)言, XML的應用也會(huì )越來(lái)越廣泛,它最終將取代HTML在網(wǎng)絡(luò )信息革命的主導地位。
參考文獻:
[1]楊劍,唐慧佳;赬ML的異構數據交換系統的研究與實(shí)現[J]。計算機工程。2005,(19):195-197
[2]夏秀峰,張悅,周大海;赬ML的異種數據庫間的數據交換技術(shù)[J]。微處理機。2005,(5):31-35
[3]田小霞,肖馳;赬ML 的異構數據庫的中間件的設計與研究[J]。電腦學(xué)習。2006,(2):55-56
[4]張于峰,洪治全,張翼。用XML實(shí)現異構數據庫信息交換[J]。西南科技大學(xué)學(xué)報。2006,(2):40-43 畢業(yè)論文 論文網(wǎng)

【基于XML的異構數據交換的研究】相關(guān)文章:

基于XML的智能應用程序的研究03-07

基于XML的作業(yè)答疑系統XML+SQL03-30

基于XML的紡織品工藝信息系統的研究與實(shí)現03-07

基于SDO的異構服務(wù)數據模型研究03-28

基于Web3D的異構數據存儲及通信研究03-10

基于XML的三層C/S模型03-20

基于XML的果園環(huán)境數據采集和數據表示03-19

CAN與以太網(wǎng)數據交換的研究與分析12-05

基于XML的三個(gè)常用元數據描述工具的評價(jià)與比較03-07

基于A(yíng)SP和XML的校園二手商品網(wǎng)站的設計與實(shí)現SQL03-30

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看