1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

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

        時間:2024-10-12 15:29:25 計算機網絡畢業論文 我要投稿
        • 相關推薦

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

        畢業論文

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

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

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

        【基于XML的異構數據交換的研究】相關文章:

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

        基于XML的作業答疑系統XML+SQL03-30

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

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

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

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

        基于XML的果園環境數據采集和數據表示03-19

        CAN與以太網數據交換的研究與分析12-05

        基于XML的三個常用元數據描述工具的評價與比較03-07

        基于ASP和XML的校園二手商品網站的設計與實現SQL03-30

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>