亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        XML在異構(gòu)信息資源集成模式中的應用

        2011-02-19 07:48:30
        制造業(yè)自動化 2011年2期
        關(guān)鍵詞:主鍵關(guān)系數(shù)據(jù)庫數(shù)據(jù)類型

        蘇 茁

        SU Zhuo

        (內(nèi)蒙古電力勘測設(shè)計院,呼和浩特 010020)

        0 引言

        隨著數(shù)據(jù)庫技術(shù)發(fā)展和應用的逐步深入,不同的數(shù)據(jù)庫管理系統(tǒng)導致了在各行各業(yè)的信息系統(tǒng)中信息資源的異構(gòu)性,形成了不少信息孤島,阻礙了信息資源的集成與共享。只有有效的集成異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù),才能進一步實現(xiàn)網(wǎng)絡(luò)環(huán)境下的信息共享。本文基于異構(gòu)數(shù)據(jù)庫集成所面臨的問題,提出了在XML框架下實現(xiàn)的異構(gòu)數(shù)據(jù)庫集成模型,具有較重要的理論價值與實踐意義。

        1 系統(tǒng)需求分析

        不少信息集成系統(tǒng)均以自定義的格式描述和顯示數(shù)據(jù),不能用一種標準化的形式顯示集成后的信息,對各個系統(tǒng)之間的信息交換造成了影響。信息資源集成模式最首要的需求,就是在集成傳統(tǒng)的數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù)的基礎(chǔ)上,能夠?qū)脧V泛的非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)進行集成;在集成傳統(tǒng)數(shù)據(jù)的基礎(chǔ)上,能夠?qū)Χ嗝襟w數(shù)據(jù)進行集成;在集成己有數(shù)據(jù)源中的數(shù)據(jù)的基礎(chǔ)上,能夠?qū)Σ粩嘤楷F(xiàn)的新數(shù)據(jù)源中的數(shù)據(jù)進行集成。

        2 系統(tǒng)詳細設(shè)計

        2.1 系統(tǒng)的模式結(jié)構(gòu)

        解決異構(gòu)數(shù)據(jù)庫問題比較理想的方案是引入中間件,XML在這種方式中具具有數(shù)據(jù)描述和傳送能力,能夠作為數(shù)據(jù)源交互媒介。其中,數(shù)據(jù)轉(zhuǎn)換能力由XSL和XSLT技術(shù)支持,開放的編程接口由DOM和SAX提供,從XML文檔集合中提取數(shù)據(jù)可以用XQuery查詢語言實現(xiàn)。可以看出,XML技術(shù)可以完好地支持異構(gòu)數(shù)據(jù)庫集成。

        以XML技術(shù)實現(xiàn)異構(gòu)數(shù)據(jù)庫的集成,需要在XML格式和底層異構(gòu)數(shù)據(jù)格式之間建立映射,從而將異構(gòu)數(shù)據(jù)轉(zhuǎn)換成XML文檔,在數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作的基礎(chǔ)上,還要實現(xiàn)完整性約束,以避免插入和刪除異常。本文將XML異構(gòu)數(shù)據(jù)庫結(jié)構(gòu)分為三層,自上而下分別是應用層、XML中間件層和數(shù)據(jù)庫層。如下圖所示。

        其中,數(shù)據(jù)庫層由不同結(jié)構(gòu)的數(shù)據(jù)組成,屬于系統(tǒng)的數(shù)據(jù)源,包括各種類型信息,如文件、多媒體等。系統(tǒng)為了統(tǒng)一處理,對來自于不同數(shù)據(jù)庫的各種數(shù)據(jù)必須用一種公共媒介表示。XML支持表示數(shù)據(jù)的標準語法,能由XML語法分析程序處理的XML文檔,因此集成層的數(shù)據(jù)描述工具采用XML,并采用XML Schema作為公共媒介。

        圖1 系統(tǒng)的模式結(jié)構(gòu)

        XML中間件層的功能是進行數(shù)據(jù)庫轉(zhuǎn)換以支持數(shù)據(jù)的透明訪問。向上為各種應用提供統(tǒng)一接口,向下協(xié)調(diào)各數(shù)據(jù)源。中間層通過運行代理程序來對數(shù)據(jù)庫中的數(shù)據(jù)進行訪問、將此數(shù)據(jù)轉(zhuǎn)換為XML格式并輸出XML文檔。XML在此處的功能是聯(lián)系異構(gòu)數(shù)據(jù)庫,首先提取出一個數(shù)據(jù)庫中數(shù)據(jù),將其轉(zhuǎn)換為XML進行發(fā)布,在經(jīng)過了應用層處理后,重新存回數(shù)據(jù)庫之中。

        應用層根據(jù)用戶計算環(huán)境和具體的應用為用戶提供使用的界面,采用合適的應用軟件和信息訪問技術(shù)?;赬ML能夠?qū)崿F(xiàn)多種基于Web瀏覽器的顯示模式。

        2.2 XML和數(shù)據(jù)庫的映射

        基于XML技術(shù)進行數(shù)據(jù)集成,一個正確的結(jié)構(gòu)映射關(guān)系是十分必要的,一般來說有兩種映射方式,分別是模板驅(qū)動與模型驅(qū)動方式。

        模板驅(qū)動映射方式的實現(xiàn),是在映射過程中將帶參數(shù)的SQL命令嵌入一個模板中識別和執(zhí)行,從而生成目標XML文檔。這種方法步驟比較簡單,但是由于不涉及關(guān)系模式或?qū)ο竽J?,以SQL執(zhí)行的數(shù)據(jù)結(jié)果集為依據(jù),因此不支持雙向映射。模型映射不是僅僅依賴內(nèi)嵌SQL命令,而是用一個具體的模型實現(xiàn)的,其關(guān)鍵之處在于在XML Schemas或DTD和數(shù)據(jù)庫模式之間建立雙向映射。模型驅(qū)動的映射機制有兩種,分別是基于表的映射和基于對象的映射。

        基于表的映射以單一的表格或者是表格的集合表示XML文檔,以子元素或?qū)傩缘男问酱鎯τ成涞絏ML文檔的數(shù)據(jù)。優(yōu)點是直觀簡單,但是由于表是二維關(guān)系,難以表示如表之間的邏輯關(guān)系等XML嵌套結(jié)構(gòu);基于對象的映射則將數(shù)據(jù)映射為對象模型,然后轉(zhuǎn)換對象模型,使之成為XML文檔。這種模式映射比較豐富,但是由于引入了模型,限制了XML文檔。

        基于XML Schema的映射模式則具有良好的描述性和擴展性,屬于模式和模式之間的深層映射。因此,本文描述關(guān)系數(shù)據(jù)將使用XML Schema,探討XML文檔和關(guān)系數(shù)據(jù)庫模式之間的模型映射。

        2.3 數(shù)據(jù)結(jié)構(gòu)的映射

        本文是實現(xiàn)從數(shù)據(jù)庫模式映射到XML文檔時,將各字段映射為子元素。如何實現(xiàn)關(guān)系數(shù)據(jù)庫和XML Schema的雙向映射是本文討論的重點。

        由關(guān)系模式映射為XML模式,主要解決的問題包括:1)能夠用XML表示出關(guān)系數(shù)據(jù)的精確結(jié)構(gòu);2)能夠用最好的方式進行表達。在對象關(guān)系映射中,由數(shù)據(jù)庫一個或多個相關(guān)的表構(gòu)成一片森林??紤]到XML文檔的數(shù)據(jù)結(jié)構(gòu)是樹狀結(jié)構(gòu),本文提出基于對象樹的映射算法,完成XML Schema與數(shù)據(jù)庫的映射,能夠?qū)﹃P(guān)系數(shù)據(jù)庫的結(jié)構(gòu)和語義較好的表述。

        關(guān)系數(shù)據(jù)庫中的一個數(shù)據(jù)表用一棵對象樹描述,XML Schema的一個元素對應樹中的每個非葉子結(jié)點,進行以下定義:

        1)樹對應的數(shù)據(jù)表信息用樹的根節(jié)點描述,說明數(shù)據(jù)源的類型數(shù)據(jù)表的名稱,以及數(shù)據(jù)源所在的物理位置。

        2)由于關(guān)系數(shù)據(jù)庫中主鍵和外鍵約束不等價于XML Schema中主鍵和外鍵的定義,因此將數(shù)據(jù)表中的屬性分為三類,分別是主鍵屬性、外鍵屬性和非鍵屬性,根結(jié)點的三個孩子就是這三個結(jié)點,相應的數(shù)據(jù)表的屬性是其子結(jié)點。

        3)樹的第三層是主鍵屬性、外鍵屬性和非鍵屬性的子結(jié)點,對關(guān)系表中的各個屬性進行描述。

        4)關(guān)系表的自定義完整性約束描述是樹的葉子結(jié)點,包括數(shù)據(jù)長度、數(shù)據(jù)類型、默認值約束和是否為空。

        對象樹的生成算法如下:

        Create Tree()

        {結(jié)合數(shù)據(jù)表,生成一棵對象樹,使用XML Schema描述;

        生成結(jié)點名為數(shù)據(jù)表的基本信息的根結(jié)點,;

        為根結(jié)點生成三個孩子結(jié)點:分辨代表主鍵屬性、外鍵屬性和非鍵屬性;

        While Not End of(Attribute)

        {If屬性屬于主鍵

        If屬性不屬于外鍵

        Then為主鍵屬性結(jié)點生成以該屬性名命名的孩子結(jié)點;

        生成兩個孩子結(jié)點,分別代表類型和長度;

        If屬性的組合是數(shù)據(jù)表主鍵,

        Then在個定義主鍵時生成孩子結(jié)點,表示是否為空;

        Else If 屬性屬于外鍵

        Then為外鍵屬性生成一個以該屬性名命名的孩子結(jié)點;

        生成兩個孩子結(jié)點,表示是否為空和關(guān)聯(lián)字段;

        Else生成一個以該屬性名命名的孩子結(jié)點;

        為該屬性結(jié)點生成類型、長度、是否為空和默認值的四個孩子結(jié)點;

        基于對象樹的映射算法可以多次復用,系統(tǒng)的性能大大提高了。

        2.4 語義約束的實現(xiàn)

        1)主鍵約束

        在XML中ID屬性可以為空值,而關(guān)系數(shù)據(jù)庫中主鍵的定義具有強制性,沒每關(guān)系必須有主鍵;因此,如果出現(xiàn)關(guān)系表的主鍵是屬性的組合等情況的話,文檔會出現(xiàn)語法錯誤。在XML Schema中對主鍵定義的方法進行了明確,需要對兩部分進行說明:(1)主鍵的XML元素或?qū)傩裕唬?)主鍵起作用的范圍和組成。

        在基于XML Schema的語義約束中,分兩種情況,即主鍵是單一屬性和主鍵是屬性組合。主鍵是單一屬性,則用Primary Key約束定義;主鍵是屬性組合,則使用Unique約束。

        2)外鍵約束

        XML實現(xiàn)層次數(shù)據(jù)是通過使用嵌套元素或者以近似外鍵的引用機制進行的。在管理具有層次特征的數(shù)據(jù)庫方面,XML比關(guān)系數(shù)據(jù)庫具有更多的靈活性。XML與關(guān)系數(shù)據(jù)庫的不同之處在于:被外鍵引用的元組在關(guān)系數(shù)據(jù)庫被限制在該元組的關(guān)系中;而被引用的元素在XML中并不限制元素類型。

        3)用戶自定義完整性約束

        在XML Schema中,使用元素或?qū)傩缘膁efault屬性設(shè)置默認值作為列的默認值,數(shù)據(jù)的長度設(shè)置使用length屬性,XML與關(guān)系數(shù)據(jù)庫相似,允許元素的屬性為空。有三種方法可以實現(xiàn)XML表示是否為空,分別是:use(可選屬性),nillable元素和minOccurs/maxOccurs元素。如果是簡單類型,則使用可選屬性use;如果是復雜類型,則可以使用nillable元素和minOccurs/maxOccurs元素。其中,maxOccur的含義是字段取值的最多個數(shù),minOccurs的含義是字段取值的最少個數(shù)。

        2.5 數(shù)據(jù)類型的映射

        對數(shù)據(jù)類型的定義,不同的數(shù)據(jù)庫以及不同版本的數(shù)據(jù)庫是有差別的。XML文件中的所有數(shù)據(jù)都是文本(非解析實體除外),XML和關(guān)系數(shù)據(jù)庫之間存在著許多不同,包括數(shù)據(jù)類型、格式和表示方法。這是由于數(shù)據(jù)庫在于描述結(jié)構(gòu)化數(shù)據(jù),XML適于描述半結(jié)構(gòu)化數(shù)據(jù)。所以,解決這兩者之間數(shù)據(jù)格式轉(zhuǎn)換問題是實現(xiàn)基于XML的異構(gòu)數(shù)據(jù)庫集成的前提條件。XML和數(shù)據(jù)庫數(shù)據(jù)類型的轉(zhuǎn)換通常由數(shù)據(jù)交換程序負責完成。常見的轉(zhuǎn)換方法有兩種。一種方法是由用戶明確指定數(shù)據(jù)類型,另一種方法是程序根據(jù)數(shù)據(jù)庫模型來確定數(shù)據(jù)類型。數(shù)據(jù)類型的映射分為以下幾種情況:

        1)基本數(shù)據(jù)類型映射的實現(xiàn)

        XML Schema數(shù)據(jù)類型體系是比較完善的。XML Schema定義了簡單數(shù)據(jù)類型和復雜數(shù)據(jù)類型兩種主要的類型,簡單類型的組合就構(gòu)成復雜類型是,簡單類型還可以進一步細分為三種,即原子類型、列表類型和聯(lián)合類型,二者之間通過基本數(shù)據(jù)類型映射表實現(xiàn)映射。

        2)二進制數(shù)據(jù)映射的實現(xiàn)

        XML文檔是文本文件,二進制數(shù)據(jù)映射的實現(xiàn)有三種處理方法,分別簡述如下:(1)將二進制數(shù)據(jù)使用CDATA標記嵌入到XML文檔中。(2)使用BASE64將二級制數(shù)據(jù)進行編碼,賦予其字符特征。(3)使用基于MIME標準的編碼方法,將二進制數(shù)據(jù)嵌入到XML文檔中。

        3)空數(shù)據(jù)映射的實現(xiàn)

        當映射XML文檔的結(jié)構(gòu)到數(shù)據(jù)庫時,將空值屬性映射到 null columns 允許空值的字段,以避免產(chǎn)生插入錯誤或非法文件錯誤。

        4)指令和注釋映射的實現(xiàn)

        XML文檔數(shù)據(jù)并不包括處理指令和注釋,因此,大部分數(shù)據(jù)轉(zhuǎn)換軟件都不能處理指令和注釋。這些指令和注釋可能在XML文檔中的任何地方出現(xiàn),因此進行對象-關(guān)系型映射或基于表格映射是不容易的。如果為這些注釋處理和指令專門準備一個表格,將指向這個表格的外鍵附加在其他表格上,則會導致每當處理別的表格時,這些表就要被檢查。因此,本文選擇簡單地忽略處理指令和注釋。

        3 結(jié)束語

        本文結(jié)合XML具有自描述性、可移植性和互操作性的優(yōu)勢,以這種技術(shù)構(gòu)建中間件,實現(xiàn)異構(gòu)數(shù)據(jù)庫的資源共享和集成。本文提出了一種基于對象樹的映射方法,實現(xiàn)了關(guān)系模式和XML文檔的相互轉(zhuǎn)換。同時對數(shù)據(jù)的語義約束進行了保留。這種方法的優(yōu)勢在于完整地保留了關(guān)系模式中的語義約束條件以及主鍵、外鍵、數(shù)據(jù)類型等,同時也保證了數(shù)據(jù)結(jié)構(gòu)在模式映射過程中的正確性,具有較好的推廣價值。

        [1]B.Srinivasan &J.Zeleznikow Ed.,“Databases in 2007s”,World Scientific,Singapore,2008.

        [2]張雪潔.基于XML的數(shù)據(jù)庫集成平臺框架及關(guān)鍵技術(shù)研究,南京:河海大學,2006.

        [3]陳剛.基于CORBA的異構(gòu)數(shù)據(jù)庫系統(tǒng)集成模型的研究 [J],現(xiàn)代計算機,2005,(5):9-13.

        [4]Won Kim,Ki-JoonChae.Component-Based Knowledge Engineering Architecture[J],JOOP,2009,12(6):44-45.

        猜你喜歡
        主鍵關(guān)系數(shù)據(jù)庫數(shù)據(jù)類型
        基于Go 實現(xiàn)的分布式主鍵系統(tǒng)研究
        關(guān)系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應用
        山東冶金(2022年2期)2022-08-08 01:51:30
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        基于外鍵的E-R圖繪制方法研究
        基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索
        數(shù)據(jù)庫主鍵的設(shè)計方法探討
        一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索方法
        基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
        淺談數(shù)據(jù)庫主鍵設(shè)計的原則
        无码av专区丝袜专区| 青青草一级视频在线观看| 一区二区三区在线乱码| 国产欧美在线观看不卡| 中文日韩亚洲欧美制服| 日韩一区二区肥| 日本久久一级二级三级| 中文字幕女同系列在线看一| 亚洲人精品亚洲人成在线| 麻豆91免费视频| 亚洲区1区3区4区中文字幕码| 亚洲国产精品中文字幕久久| 国产内射爽爽大片视频社区在线| 久热在线播放中文字幕| 无码人妻丰满熟妇区免费| 亚洲女同系列在线观看| 乱中年女人伦av三区| 少妇太爽了在线观看| 无码啪啪人妻| 亚洲sm另类一区二区三区| 国产精品亚洲综合色区| 免费一区在线观看| 日本午夜一区二区视频| 色婷婷色丁香久久婷婷| 94久久国产乱子伦精品免费| 日韩丝袜亚洲国产欧美一区| 女同另类专区精品女同| 人人妻人人做人人爽| 久久久久久成人毛片免费看| 国产无遮挡又黄又爽无VIP| 99精品国产综合久久麻豆| 免费网站看v片在线18禁无码| 国产午夜精品电影久久| 操老熟妇老女人一区二区| 国产成人无码专区| 真实国产乱啪福利露脸| 99久久精品国产亚洲av天| 久久精品亚州中文字幕| 亚洲免费网站观看视频| 狠狠丁香激情久久综合| 成人大片在线观看视频|