XML與關系數據庫之間的轉換_第1頁
XML與關系數據庫之間的轉換_第2頁
XML與關系數據庫之間的轉換_第3頁
XML與關系數據庫之間的轉換_第4頁
XML與關系數據庫之間的轉換_第5頁
已閱讀5頁,還剩17頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

摘要:隨著XML數據的日益增多,XML已經成為了互聯網上數據表示和數據交換的標準格式。同時也涌現出大量的XML數據存儲方法,比較有代表性的有XML專用數據庫存儲、面向對象數據庫存儲、關系數據庫存儲等。由于關系數據庫的大力發展、廣泛應用和其成熟的技術,在存儲管理XML的各種可能的方式中,基于關系數據庫的XML數據存儲成為一種可行而有前景的方式,受到了廣泛的關注。由于關系數據庫的二維平面關系表結構與XML的層次結構有很大差異,怎樣在關系數據庫中有效地存儲XML文檔,同時又能保持其結構信息和文檔信息成為一個難題。為了解決這一難題,使得XML模式與關系模式之間的映射問題,成為XML文檔的關系化存儲技術的核心問題。本文主要探討了XML與數據庫映射的方法。目錄第一章 前言 1第二章 XML技術 3·2.1XML的特點 3·2.2XML的應用分析 42.3.1DTD 52.3.2XMLSchema 62.4XML解析技術 72.4.1SAX 82.4.2.DOM 82.4.3.DOM與SAX比較 9第三章 XML與數據庫技術 103.1XML是數據庫嗎? 103.2數據和文檔的對比 103.2.1以數據為中心的文件 113.2.2以文檔為中心的文件 113.2.3數據、文檔和數據庫 11第四章 XML與關系數據庫的轉換 134.1邊模型映射法 134.2結點模型映射法 16第五章 結束語 19第六章 致謝 20前言近年來,互聯網得到了迅猛發展,它提供了全球范圍的網絡互聯與通信功能,其豐富的信息資源給人們的學習和生活帶來了極大的便利。作為互聯網最主要應用的Web實際上已成為最大的信息資源庫。電子商務、電子出版、遠程教育等基于Web的新興領域的全面興起使得傳統的Web資源更加復雜化和多樣化。人們對Web服務功能的需求也達到更高的標準,如用戶需要對Web進行智能化的語義搜索和對數據按照不同的需求進行多樣化顯示等個性化服務;公司和企業要為客戶創建和分發大量有價值的文檔信息,以及對不同平臺、不同格式的數據源進行有效的數據交換和集成等等。在這種大環境下,以簡單易學、靈活通用著稱的HTML,隨著網絡應用的日益廣泛,局限性逐漸明顯,越來越不能適應作為Intemet上信息交換和表示的工具了。XML(eXtensibleMarkupLanguage)作為SGML(StandardGeneralizedMarkupLanguage)的一個優化子集,它不像HTML那樣事先定義好一組標簽,而是提供了一個標準,只要遵循這個標準,你可以靈活的定義自己的標記。XML不僅能夠存儲數據,而且能夠存儲結構和語義信息,具有通用的數據表示能力,能表示結構化、半結構化及元結構化數據,可以描述不同種類應用軟件中的數據,這使其在數據交互和信息共享方面擁有天然的優勢,成為Web上數據表示與交換的通用標準。XML與HTML相比主要有以下幾點優勢:(1)XML簡單,具有自我描述能力。通過語義標記來說明數據的語義,容易理解且易于解析。這使得XML具有機器可讀性,具體應用可以按照各種方式解析、過濾及重構XML文檔。(2)XML具有靈活性。HTML的標記是預定義的,具有固定的名稱及語義,不能擴展,而XML的標記可由用戶定義,可以被任意的擴展。XML的嵌套結構可以表示各種復雜的數據結構,各種格式的數據都可以較容易的轉換為XML數據,這使得XML非常適合于Web信息的發布和集成。(3)XML具有平臺獨立性。XML可用于不同類型、系統間的交換格式的傳送,從而簡化了從一個應用程序到另一個應用程序之間傳遞信息的工作。(4)XML實現了結構、內容和顯示相分離。文檔類型定義(DTD)或XML模式(XMLschema)描述了XML文檔的結構,即元素間的嵌套關系。XML文檔實例只描述數據,使得數據具有獨立性,而XML文檔的顯示具有多樣性,XML文檔的顯示是由XML文檔配合XSL(eXtensibleStyleLanguage)來完成的,對同一個XML文檔可以根據應用的需要以不同的風格顯示。由于XML的諸多優勢,出現大量的XML數據,并且保持著快速增長,使得對XML有效存儲和操作方面的研究日益受到重視。同時由于關系數據庫技術的大力發展、成熟的技術和廣泛的應用,使得XML文檔的關系化存儲成為研究的一大熱點。本文所研究的就是XML與關系數據庫之間的轉換方法。

XML技術XML(eXtensibleMarkupLanguage,可擴展標記語言)是由W3C[”】于1998年2月發布的一種標準,是SGML的一個簡化集。它繼承了SGML的強大功能,去除了繁瑣的定義,彌補了HTML作為網絡標準語言的不足。它將SGML的豐富功能和HTML的易用性結合到了萬維網的應用中,深受軟件開發商的支持和程序開發人員的厚愛。目前XML在很多方面都有應用,具有如下特點:·2.1XML的特點XML作為一種標記語言,具有嚴格、規范的語法,創建XML文檔必須滿足一定的規范,依據XML1.0規格,所有的XML文檔都必須是格式良好的(well.formed),一個格式正確的XML文檔必須符合以下幾點要求:(1)聲明語句。XML聲明必須以小寫xml聲明,并設置version屬性,必須出現在第一行,其格式如下:<?xmlversion=”1.0”standalone=”yes/no”encoding=”UTF一8II?>,聲明的作用是告訴瀏覽器或者其它處理程序:這個文檔是XML文檔。聲明語句中的version表示文檔遵守的XML規范的版本;standalone表示文檔是否附帶DTD文件,如果有,參數為no;encoding表示文檔所用的語言編碼,默認是UTF.8(2)元素。元素組成了XML文檔中的大部分內容,XML文檔有且只有一個根元素,所有元素(Elemem)構成一個層次樹,元素之間必須正確嵌套。元素由一對標記組成,結束標記匹配相應的起始標記。格式為:<標記名>內容叫標記名>。(3)屬性。元素可以用屬性來注釋,屬性通常用來給元素提供所顯示內容的額外信息,出現位置為元素的起始標記中,對于一個元素來說,不能存在多個相同名稱的屬性,元素大小寫敏感。格式為:屬性名=屬性值。(4)處理指令。處理指令通常用來為處理XML文檔的應用程序提供信息,這些信息包括如何處理文檔,如何顯示文檔等。處理指令的出現位置可以為元素的后裔,也可以為根元素的前面或者后面。格式為:<?targetdate?>。(5)注釋。XML注釋出現位置可以為元素的后裔,也可以為根元素的前面或者后面。格式為:<!一注釋內容_>。(6)命名空間。XML允許設計者定義自己的標記名,命名空間的出現解決了重名的情況。格式為:xmlns:prefix=’URI’。下圖給出了一個良構的XML文檔例子,如下:圖表SEQ圖表\*ARABIC1·2.2XML的應用分析作為互聯網的新技術,XML的應用非常廣泛,滲透到了互聯網的各個角落。借用Gartner公司的報告中的一句話:“商業公司不能再做局外人了,不能對XML置之不理’’??梢?,XdvlL的重要性,以下是XML的主要應用場合:(1)數據交換。電子商務通過互聯網傳輸和交換商務數據,并對商務數據進行人工或自動處理,這也是XML的主要應用領域之一。XML的可擴展性和自相容性等特點,使之成為數據交換的有力工具。(2)內容管理。XML只用元素和屬性來描述數據,而不提供數據的顯示方法,它提供了一個獨立于平臺和語言的內容,使用象XSLT這樣的語言能夠輕易地將XML文件轉換成各種格式文件,比如HTML,WML,PDF,flat,等等。(3)WEB集成?,F在有越來越多的設備也支持XML了,為了利用互聯網技術和標準為移動設備連接互聯網建立全球性的同一規范,Phone.com聯合了Motorola等通訊公司建立了WAP論壇,推出了WAP規范,同時W3C也定義了基于XML的手持設備置標語言HDML。(4)配置管理。許多應用都將配制數據存儲在各種文件里,將配制數據標記為XML格式,能使其更具可讀性,并能方便地集成到應用系統中去。使用XML配制文件的應用程序能夠方便地處理所需數據,不用象其他應用那樣要經過重新編譯才能修改和維護應用系統?!?.3XML模式語言XML模式語言負責定義和描述XML文檔的結構和內容模式。它可以定義XML文檔中存在哪些元素和元素之間的關系,并且可以定義元素和屬性的數據類型。XML模式語言主要有兩種:DTD和XMLSchema,現分別介紹如下:2.3.1DTDDTD是DocumentTypeDefinition(文檔類型定義)的簡稱。它是一套關于標記的語法規則,詳細描述一組XML文檔的結構。DTD列出了可用在文檔中的元素、屬性、實體和符號表示法,說明在文檔中可以使用哪些標一記,哪些標記可以出現在其它標記中,哪些標記具有屬性,使用的標記應按什么順序出現等。例如,圖表2是一個XMLDTD的例子,圖表1中的XML文檔就是符合這個DTD的描述的:圖表SEQ圖表\*ARABIC2在DTD文檔中,可以利用操作符號(0次或多次)、+(至少1次)、?(0次或1次)、l(或選)來定義子元素的出現次數。其中ELEMENT表示元素,ATTLIST表示屬性,#PCDATA表示數據,DTD假設所有取值都只能是字符串值。XML文檔中DTD的使用方法分兩種:內部DTD,即在XML文檔的序言部分中直接加入DTD的描述;外部DTD,即DTD可作為一個完全獨立的文件,將DTD存儲在一個后綴為.dtd的文件中,在XML文件中調用它??梢钥闯觯瑑炔緿TD相當繁瑣,通用性低,而同一個外部DTD文件,可以被多個XML文檔引用;外部DTD文件的可移植性很好,當需要修改的時候,只修改外部DTD文件,而不需逐一修改使用了該DTD的所有XML文檔。使用了DTD的XML文檔必須符合該模板的要求,在分析階段必須通過DTD的有效性驗證。隨著XML技術的廣泛使用,DTD逐漸暴露了自身存在的不足:DTD是基于正則表達式的,描述能力有限;DTD沒有數據類型的支持,在大多數應用環境下能力不足;DTD的約束定義能力不足,無法對XML實例文檔做出更細致的語義限制:DTD的結構不夠結構化,重用的代價相對較高;DTD并非使用XML作為描述手段,而DTD的構建和訪問并沒有標準的編程接口,無法使用標準的編程方式進行DTD維護。2.3.2XMLSchema同DTD一樣,Schema也是一種XML文檔模式定義語言。但與DTD不同的是,Schema克服了DTD的幾個局限,XMLSchema與DTD相比,有如下幾個優點:XMLSchema使用標準XML語法,本身就是一個XML文檔,可以直接用成熟的XML文檔解析器讀??;XML提供了豐富的數據類型,包括數字型、布爾型、日期型等等,并且可以定義新的數據類型,允許對數據進行更嚴格的合法性檢查;XMLSchema支持繼承性,即可利用一個已有的XMLSchema產生一個新的)(MLSchema;XML支持命名空間,保證了標記的唯一性;XMLSchema的擴展性好,它的內容模型是開放的,可以隨意擴充、更新等。下面是一個XMLSchema的例子,一般,這樣的模式文件保存在一個后綴為xsd的文件中,與圖表2中dtd是等價模式,同樣可以描述圖表1的XML文檔。圖表SEQ圖表\*ARABIC32.4XML解析技術XML文檔實際上就是純文本數據,使用XML數據格式的應用程序首先必須能對XML數據進行讀取、分析,進而進行處理。SAX(SimpleAPIsforXML)與DOM(DocumentObjectModel)是兩種常用的XML應用程序接口標準。它們在應用程序開發過程的作用如下圖:圖表SEQ圖表\*ARABIC4下面分別給予詳細的介紹。2.4.1SAXSAX(TheSimpleAPIforXML)即簡單編程接口,第一個被廣泛采用的用Java編寫的XMLAPI,是一個事實上的標準【181。SAX是一個通用的,基于事件的XML解析的標準編程接口。SAX是事件驅動的“推”模型,是一種基于回調(callback)機制的程序運行方法,即它不需要一次讀入整個文檔,是邊讀文檔邊對文檔進行解析,文檔的讀入過程就是SAX的解析過程。從這一點來說,SAX是一種輕量型的解析方法。圖表SEQ圖表\*ARABIC52.4.2.DOMDOM(DocumentObjectModel)即文檔對象模型,一個來自W3C的成熟標準。DOM將XML文檔看作是一個分層的對象模型,是一棵節點樹,稱為DOM樹。在DOM樹中,有一個根節點,即根元素,其它節點都是這個根節點的后代節點,節點用來表示XML文檔中的元素,屬性、文本、注釋、處理指令以及類似的信息。DOM是文檔驅動的,即它一次把整個XML文檔讀入內存,然后向應用程序提供對整個文檔可操作的DOM樹,可以通過這棵樹來訪問所需信息。DOM解析器需要一次把XML文檔讀入內存,從這一點來講j它是一種重量型的解析方法。圖表SEQ圖表\*ARABIC62.4.3.DOM與SAX比較SAX和DOM是兩類不同的XML文檔解析方法,兩種技術各有利弊。主要區別在于:應用程序的目的:如果必須對數據進行更改,并且作為XML將它輸出,則在大多數情況下,使用DOM。與使用XSL轉換來完成的簡單結構更改不一樣,如果是對數據本身進行更改,則尤其應該使用DOM。數據的數量:對于大文件,SAX是更好的選擇。將如何使用數據:如果實際上只使用一小部分數據,則使用SAX將數據抽取到應用程序中,這種方法更好些。另一方面,如果知道將需要向后引用已經處理過的信息,則SAX可能不是正確的選擇。需要速度:通常SAX實現比DOM實現快。值得說明的是,SAX和DOM并不是互斥的,這一點很重要??梢允褂肈OM來創建事件的SAX流,可以使用SAX來創建DOM樹。事實上,大多數解析器常常使用SAX來創建DOM樹。XML與數據庫技術3.1XML是數據庫嗎?"XML是數據庫嗎?"在嚴格意義上將,如果"XML"是指XML文檔時,答案是"否"。盡管XML文檔包含了數據,但是如果沒有其他的軟件來處理這些數據,它對于數據庫的意義和其他文本文件沒有什么區別。如果在更為寬泛一些的意義上將,當"XML是指XML文檔以及所有相關的XML的工具和技術時,答案則是"是"。之所以肯定是由于XML提供了許多數據庫中所需要的部分:存儲(XML文檔),結構(DTD,XMLschema語言),查詢語言(XQL,XML-QL,QUILT等),編程接口(SAX,DOM),等等。不過...XML還缺少很多在真實的數據庫中所必備的內容:有效的存儲、索引、安全、交易、數據完備性、多用戶訪問、觸發、多文檔查詢等。因此如果在數據量一般、用戶較少、性能要求不高的環境下可以把XML當作數據庫來使用;而在大多產品的環境中,要求有許多的用戶使用、需要嚴格的數據完整性并且對性能有很高的要求,XML就不能勝任了。而且,考慮到象dBase和Access等數據庫既便宜又十分易用,因此甚至在第一種情況下XML都很少有理由充當數據庫的角色。3.2數據和文檔的對比在選擇數據庫時,最重要的判斷因素可能是你是利用數據庫來保存數據還是保存文檔。如果你想保存數據,你需要的數據庫主要是面向數據存儲(例如關系型數據庫或者面向對象型數據庫)以及在數據庫和XML文檔之間相互轉換。從另一個角度來將,如果你想存儲文檔,你需要一個專門設計用來存儲文件的內容管理系統。雖然你可以自己把文件保存在關系數據庫或面向對象數據庫中,可是你常會發現你的工作是在重復內容管理系統的功能。類似的,雖然一個內容管理系統通常是建立在面向對象數據庫或關系數據庫之上,但要是把一個內容管理系統當做數據庫來使用就可能非常的令人困繞。你需要存儲數據還是文檔,答案常常取決于你的XML文檔。原因是XML文件分為兩大類:以數據為中心和以文檔為中心3.2.1以數據為中心的文件以數據為中心的文件的特點是結構相當規范、數據顆粒度好(也就是說,數據中最小的獨立單元是PCDATA元素或者是屬性)、很少或者沒有混合內容。其中同層次元素和PCDATA的出現順序并不重要。典型的例子是,XML文檔包含了銷售定單、飛行安排、餐館菜單等等。數據為中心的文檔常被用于機器的使用,這時XML可能是多余的它僅僅是數據傳輸的手段而已。在XML的世界中,許多內容豐富的文檔實際上都是數據為中心的。我們以顯示圖書信息的A網站為例。雖然這個頁面是相當巨大的文本,但是這個文本的結構是高度規范的,其中許多的部分對任何的書本描述頁面都是相同的,并且特點頁面中的各部分的大小都是有限的。也就是說,該頁面可以通過一個簡單的、數據為中心的XML文檔來建立,其中包含了從數據庫中檢索得到的文本信息以及一個XSL樣式表。通常,目前任何通過在模板中填充數據庫數據而動態構造HTML頁面的網站都可以被上面介紹的用以數據為中心的XML文檔和一個或者多個的XSL樣式表方式替代。3.2.2以文檔為中心的文件以文檔為中心的文檔的特點是:結構不規范、數據顆粒度更大(即,最小的獨立數據單元是包含有混合內容的元素或者就是整個XML文檔)以及含有大量的混合內容。其中相同層次的元素和PCDATA出現順序是非常重要的。典型的例子是書、電子郵件、廣告以及大多數XHTML文檔。以文檔為中心的文檔是用于人的使用。3.2.3數據、文檔和數據庫在現實情況中,以數據為中心的文件和文檔為中心的文件之間的區別并不是很嚴格。例如,一個以數據為中心的文件(如一張發票),也有可能包含粗顆粒度、不規則的數據(如發票的描述部分)。而一個以文檔為中心文件(如用戶手冊)也可能包含有良好顆粒度、規則的結構化數據(通常是元數據),例如作者和修訂日期。除此之外,讓你的文檔具有以數據為中心或者以文檔為中心的特點有助于你判斷是關心數據還是文檔,這也將決定你需要采用什么樣的系統。要存儲或檢索數據,你可以使用一個數據庫(通常是關系型、面向對象型或者是層次型)和中間件(字帶或者是采用第三方),你也可以使用XML服務器(即創建分布式應用的平臺,例如利用XML進行數據傳輸的電子商務應用)。要保存文檔,你將需要一個內容管理系統或者是一致性的DOM實現系統。

XML與關系數據庫的轉換當前XML文檔數據映射的研究,主要是XML與關系數據庫的映射。將XML文檔映射為關系模式進行存儲,有兩大類映射方法:模型映射(modelmapping)和結構映射(structuremapping),其中基于結構的映射方法又可以分為兩類,分別是:基于DTD的結構映射方法和基于XMLSchema的結構映射方法。對于模型映射,需要將XML文檔模型(即文檔樹結構)映射為關系模式,關系模式表示XML文檔模型的構造,對于所有XML文檔都有固定的關系模式,因此,它是XMLSchema(或DTD)無關的。而對于結構映射,需要將XMLSchema(或而對于結構映射,需要將XMLSchema(或DTD)映射為關系模式,關系模式用來表示目標XML文檔的邏輯結構(即XMLSchema或DTD),它是XMLSchema(或DTD)相關的。在進行關系數據庫映射時,從XML文檔的DTD或Schema推斷XML元素應該怎樣映射到關系表,然后再根據生成的關系模式,對XML文檔進行解析分解,并將數據存入關系數據庫,這樣的映射策略屬于結構映射方法。在本文中只考慮模型映射。模型映射方法模型映射法又分為:邊模型映射方法和結點模型映射方法。將一個XML文檔看成是一個有序有向邊標記圖,稱為XML圖,設計一個(或若干個)關系存儲XML圖的邊信息和結點值,該策略是屬于基于邊的模型映射方法,稱為邊模型映射方法。設計若干個關系來存儲XML文檔樹的結點信息、結點值和結構信息(通過區間編碼來譯碼結構信息,或直接存儲雙親/孩子結點對或祖先/后裔結點對),該策略是屬于基于結點的模型映射方法,稱為結點模型映射方法。4.1邊模型映射法一個XML文檔能夠用一個有序有向邊標記圖來表示在這種圖中,每一個XML元素用一個結點表示,結點被標上XML對象的oid:元素與子元素(或屬性)之間的關系用圖中的邊來表示,并在邊上標上子元素(或屬性)名:為了表示XML元素中各子元素的順序,可以對圖中從某結點引出的邊進行排序:XML文檔中的值作為圖中葉結點(即屬性或最底層子元素結點)表示。例如圖7即為圖1的XML文檔對應XML文檔圖。圖表SEQ圖表\*ARABIC7有了XML圖之后,就可以分別設計關系表存儲XML文檔的邊信息和值。對于用來存儲邊信息的邊表有三種設計方案:第一種是所有具有相同名稱的邊存放在一個邊表中,這種方法稱為Binary方法。因此,圖2—7所示的文檔圖所對應的Binary方法的book和ISBN邊表,其它依次類推:圖表SEQ圖表\*ARABIC8圖表SEQ圖表\*ARABIC9第二種是用一個表來存儲圖的所有邊信息,這種方法稱為Edge方法。系模式為:Edge(source,ordinal,label,flag,target)。其中source域和target域表示引出結點和引入結點的oid,ordinal域表示該邊在兄弟邊中的位置序號,label與用來存儲邊標記(即改邊所指向結點的標記名),flag屬性用來反映邊所指向的結點類型(葉結點類型為integer、string等,非葉結點類型為ref)??梢钥闯觯珺inary邊表與Edge邊表原理相同,只是Binary邊表將所有具有相同邊標記的邊存放在一個表中,可以說,Binary邊表是Edge邊表的水平分割。因此,圖表7所示的文檔圖所對應的Edge邊表為:圖表SEQ圖表\*ARABIC10第三種是采用一個邊表來存儲圖中所有路徑的邊信息,該方法稱為Universal方法。對于用來存儲XML文檔值的值表有兩種設計方案:第一種是不單獨設計值表,將值和邊存儲在同一個表中,在邊表中直接增加一個屬性value,用于存儲葉結點的值,這種方法稱為內聯方法。其關系模式為:Inner_Edge(source,ordinal,label,flag,target,value)。第二種是為每一種可能的取值類型設計一個值表,該方法稱為分離值表。其關系模式為Valuetypc(vid,value),其中vid存儲葉結點的oid,value屬性用來存儲葉結點的值。從上面的映射模式可以看出,XML文檔圖的生成是基于XML文檔本身,與XMLSchema和DTD沒有關系,并且映射的過程中記錄了結點的位置信息,因此反過來,也可以從關系數據庫復原XML文檔。綜上所述,三種邊表設計方案連同兩種值表設計方案,合在一起一共有六種存儲模式。D.Florescu和D.Kossmann對這六種基本的存儲模式的結果占關系數據庫大小、執行不同類型的X/VlL查詢的執行時間、從關系數據重構XML文檔的時間等三個性能參數進行了量化分析,結論是:Binary邊表方法優于Edge邊表方法,Edge邊表方法又優于Universal邊表方法;內聯值表方法優于分離值表方法;Binary邊表帶內聯值表的存儲模式能獲得最好的綜合性能。Binary方法和Universal方法查詢性能不好的主要原因是由于邊表太大,因此執行連接操作非常費時。事實上,對于一個給定查詢來說,邊表中存放的數據大部分是不相關的。換句話說,在Binary方法中僅僅相關的數據被處理,即使卷入大量的連接和回路操作,由于現代關系查詢引擎有非常強的查詢處理能力,也能獲得很好的查詢性能。內聯值表方法優于分離值表方法的主要原因是內聯方法無須進行邊表與值表之間的連接操作。對于許多不同的數據類型,由于在關系數據庫系統中,空值通常以一種緊縮方式進行存儲,因此空間就節省了,解決了大量冗余的問題。4.2結點模型映射法(1)XRel模式M.Yoshikawa,T-Amagara等基于結點模型映射方法提出了一個XML數據的關系存儲模式,稱為XRel[341。XRel是通過區間編碼[start,end]來反映(譯碼)XML文檔的模型結構,并根據內容來劃分,分為元素邊、屬性邊和文本邊,同時將所有路徑進行存儲,因此,XRel模式由四個關系表組成:Element(pathlD,doclD,start,end,ordinal)Attribute(patMD,doclD,start,end,value)TextCoathID,doclD,start,end,value)Path(pathlDpathexp)其中,在Path表中,pathlD為標記路徑(1abel—path)的標識,pathexp域存儲標記路徑,為了實現路徑表達式的字符串匹配操作,將標記路徑中的“/,,替換為“彤"進行存儲。對于Element,Attribute和Text表,主鍵是(doclD,start),pathlD是外鍵。每一個不同的標記路徑作為Path表的一個元組,因此它能夠有效地處理帶“*”操作的正則路徑表達式查詢。第一步,利用字符串中的匹配操作,能夠快速地查找出與給定正則路徑表達式相匹配的所有標記路徑的標識:第二步,利用這些路徑標識,能夠快速地查找出隸屬于這些路徑終端的值(元素結點、文本結點或屬性結點)。XRel的最大優點在于它與XPath標準的緊密結合,從而能夠對基于XPath的查詢給予相當好的性能支持,但同時它也存在很大的不足之處,尤其是它的PATH信息具有很大的冗余信息,一個簡單的修改節點名字的操作,都會需要相當復雜的操作。(2)XParent模式香港科技大學JiangHaifeng,LuHongjun和WangWei等基于結點模型映射方法提出了另一個XML數據的關系存儲模式,稱為XParent。XParent是通過一個單獨的Parent(Parent.ID,child.ID)表來反映XML文檔的模型結構,并根據內容和“結構與非結構”來劃分邊,同時將所有路徑進行存儲,因此,XParent模式也由四個關系表組成:LabelPath(pathlD,length,pathexp)Parent(pid,cid)Element(pathlD,did,ordinal)Data(pathlD,did,ordinal,value)其中length為標記路徑的長度,即標記路徑中邊標記的個數:pathexp域存儲標記路徑,與XRel類似,這里將標記路徑中的“/”替換為“./”進行存儲:did為XML文檔中元素結點的標識,它也可以作為以該結點為終端點的數據路徑的標識:pid,cid分別為XML文檔的數據路徑中的雙親結點、孩子結點的標識。這里,沒有考慮文檔標識d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論