一種基于關(guān)系數(shù)據(jù)庫的XML文檔存儲(chǔ)和查詢的方法碩士畢業(yè)論文
《一種基于關(guān)系數(shù)據(jù)庫的XML文檔存儲(chǔ)和查詢的方法碩士畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《一種基于關(guān)系數(shù)據(jù)庫的XML文檔存儲(chǔ)和查詢的方法碩士畢業(yè)論文(18頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 一種基于關(guān)系數(shù)據(jù)庫的XML文檔存儲(chǔ)和查詢的方法 A RDB-Based Approach to Storage and Query of XML Document Contents Chapter 1 Introduction ………………………………………………………………1 1.1 Research situation at home and abroad ……………………………………………1 1.2 The main work in the thesis …………………………………………………………3 1.3 Structure of the thesis …
2、………………………………………………………4 Chapter 2 Background of XML ………………………………………………………5 2.1 Origin and characteristic of XML……………………………………………………5 2.2 Types of XML document ……………………………………………………………6 2.2.1 XML document …………………………………………………………………6 2.2.2 DTD document …………………………………………………………………7 2.2.3 XML Schema …
3、…………………………………………………………………7 2.3 Query language of XML ……………………………………………………………8 2.3.1 Basic syntax of XPath …………………………………………………………8 2.3.2 Calculation of the path expression ……………………………………………10 2.4 Heterogeneity between XML and RDB ……………………………………………11 Chapter 3 Storage transformation based on pat
4、h …………………………………13 3.1 Storage structure based on path ……………………………………………………13 3.1.1 Value Table …………………………………………………………………13 3.1.2 No_Value_Table ……………………………………………………………15 3.2 Storage mapping algorithm ………………………………………………………16 Chapter 4 Mechanism of query processing …………………………………………18 4.1 Tran
5、sformation rules of linear path expression ……………………………………18 4.1.1 Simple path including parents-child only ……………………………………19 4.1.2 Simple path including ancestor-descendant ……………………………………19 4.2 Processing of non-linear path expression …………………………………………22 Chapter 5 Further optimization of storage a
6、nd query ………………………………25 5.1 Schema of storage optimization ……………………………………………………25 5.2 Schema of storage optimization ……………………………………………………26 Chapter 6 Design and implement of the system ……………………………………28 6.1 Whole design framework of the system ……………………………………………28 6.2 Function of the system modul
7、es ……………………………………………………28 6.2.1 XML-parser ……………………………………………………………………28 6.2.2 Storage processor ………………………………………………………………30 6.2.3 Query processor ………………………………………………………………31 6.3 Experiment result and analysis of the system performance ……………………31 Conclusion ……………………………………………………………………………34 Referen
8、ce ………………………………………………………………………………36 Acknowledgment ………………………………………………………………………40 摘 要 XML已成為Web上數(shù)據(jù)表示、集成和交換的標(biāo)準(zhǔn),它的格式簡(jiǎn)單、自我描述能力強(qiáng),實(shí)現(xiàn)了內(nèi)容、結(jié)構(gòu)和表現(xiàn)三者的分離,更適合于數(shù)據(jù)表示和交換。近年來,XML在各個(gè)領(lǐng)域得到了廣泛的使用,Web上已經(jīng)涌現(xiàn)了大量的XML數(shù)據(jù)。為了有效地加工、分析和處理XML數(shù)據(jù),國內(nèi)外學(xué)者已經(jīng)提出了各種XML的查詢語言和存儲(chǔ)管理技術(shù)。由于關(guān)系數(shù)據(jù)庫是目前最成熟的一種數(shù)據(jù)管理技術(shù),在存儲(chǔ)和管理XML數(shù)據(jù)的各種方式中,基于關(guān)系數(shù)據(jù)庫的XML
9、數(shù)據(jù)存儲(chǔ)和處理技術(shù)顯然是一種可行而有效的方式,并在學(xué)術(shù)界受到了廣泛的關(guān)注。然而,由于數(shù)據(jù)模型的差異,利用關(guān)系數(shù)據(jù)庫存儲(chǔ)和查詢XML數(shù)據(jù)給傳統(tǒng)數(shù)據(jù)庫技術(shù)帶來了許多新的挑戰(zhàn)。 本文對(duì)XML數(shù)據(jù)的關(guān)系存儲(chǔ)、路徑表達(dá)式的查詢處理等方面進(jìn)行了深入的研究和探討,發(fā)現(xiàn)了目前已有的XML數(shù)據(jù)的關(guān)系存儲(chǔ)方法中的不足之處。提出了一種新的利用關(guān)系數(shù)據(jù)庫存儲(chǔ)和查詢XML數(shù)據(jù)的方法,這種方法將XML文檔樹中有文本值的節(jié)點(diǎn)和文本值的節(jié)點(diǎn)分別存儲(chǔ)在兩個(gè)關(guān)系表中,它不關(guān)心文檔DTD的模式信息,也不需要建立任何索引結(jié)構(gòu)。針對(duì)這種存儲(chǔ)方法的特點(diǎn),本文提出將XPath路徑表達(dá)式的核心子集轉(zhuǎn)換成SQL語句的轉(zhuǎn)換規(guī)則和算法。具體來說
10、,本文的主要工作如下: (1)提出了一種新的XML數(shù)據(jù)的關(guān)系存儲(chǔ)方法。這種方法完整無損地記錄了XML文檔中的各節(jié)點(diǎn)信息、邊信息和值信息,即在關(guān)系表中存儲(chǔ)XML文檔中所有有值元素/屬性的路徑,以及各元素的id、Parentid、Level等信息,加快了查詢處理的速度。 (2)針對(duì)我們的存儲(chǔ)結(jié)構(gòu),提出了新的基于表連接的查詢轉(zhuǎn)換規(guī)則和算法。這種查詢算法可以將不同形式的路徑表達(dá)式轉(zhuǎn)化為SQL查詢語句來處理。 (3)對(duì)以上的存儲(chǔ)和查詢方法提出進(jìn)一步的優(yōu)化方案。當(dāng)XML文檔層次較多時(shí),引入一個(gè)路徑關(guān)系表來減少對(duì)相同路徑的存儲(chǔ)冗余;當(dāng)查詢路徑表達(dá)式為線性結(jié)構(gòu)時(shí),采用串匹配的方法來減少表連接次數(shù),從而
11、減少連接操作和I/O數(shù)量。 (4)論文提出的存儲(chǔ)轉(zhuǎn)換方法和查詢處理方法已在原型系統(tǒng)中實(shí)現(xiàn),并利用實(shí)際的XML 文檔對(duì)系統(tǒng)進(jìn)行性能測(cè)試,實(shí)驗(yàn)證明,本文所提出的方法是可行而有效的。 關(guān)鍵詞:XML;關(guān)系數(shù)據(jù)庫;關(guān)系存儲(chǔ);路徑表達(dá)式;表連接 中圖分類號(hào):TP311 Abstract XML has already become the standards of the expression, integration and exchange of the data on web. It has simple form and strong self-describing ab
12、ility. Beside, it realizes the separation of the content, structure and expression, so that it is more adapt to data expression and exchange. During recent years, XML is widely used in various fields, and its data has abundantly appeared on web. In order to effectively analyze and process these XML
13、data, research fellow posed various techniques of inquiring language and memorizing of XML. As now, relational database is the most mature data-managing technique, XML data-processing which is based on relation, is obviously a feasible and prospective way among all ways of memorizing and managing XM
14、L data, so it attracts extensive attention in the academia. However, as the data models are different, the process of XML data, by making used of the relational database, challenges traditional database technique. This paper does a thorough research on the relational storage based on path, and the
15、querying process of the path expression of XML data, and find out that there are some disadvantages in the existing mappings from XML to the relational database. This paper proposed a new approach to storage and query XML document using relational databases, this approach can respectively store the
16、XML data in different relational table according to whether the node of the document tree has text value or not. This approach is insensitive to the DTD model, and not necessary to design any index structures. Aim at this storage approach, this paper proposed specific transformational rules and algo
17、rithm, which is transform the core subset of path expression in XPath into SQL. The main contributions of this paper are summarized as follows: (1)A new kind of relational storage approach based on path for XML document is put forward. It can completely record the information of each node, side,
18、and value of the XML document, in other words, the path information of all the attributes and elements that have text values, and the information such as id, parented, and level of each element, so accelerate the query and process. (2)For the relational storage approach based on path for XML docume
19、nt, this paper proposed a new query transformational rules and algorithm based on table join. It can transform different forms of path expression to SQL query sentences to be processed. (3)Further optimizing scheme is provided for the storage and query approaches mentioned above. The Path_Table is
20、introduced to reduce storage redundancy of the same paths when the number of XML document levels is large; The method of string match is adopted to reduce the times of table join, and reduce the amount of join and I/O operations consequently. (4)The storage and query approaches brought forward in t
21、his paper have been implemented in a prototype system. The performance test of such approaches is carried out using practical XML documents. It is proved that the storage and query approaches brought forward in this paper are feasible and effective. Keywords: XML; relational database; relational
22、storage; path expression; table join 第一章 引 言 隨著互聯(lián)網(wǎng)的發(fā)展,XML(Extensible Markup Language)已經(jīng)成為一種網(wǎng)上通用的數(shù)據(jù)存儲(chǔ)與信息交換的一種標(biāo)準(zhǔn)格式[ fdfdfd ,2,3]。XML由于自身的規(guī)范性、靈活性、可擴(kuò)展性和強(qiáng)大的語言表達(dá)能力,被普遍應(yīng)用于諸多領(lǐng)域,如數(shù)字圖書館、電子商務(wù)等。近年來,Web上已經(jīng)出現(xiàn)了海量的XML數(shù)據(jù),因此,如何有效地存儲(chǔ)和管理XML數(shù)據(jù)成為一個(gè)很有研究價(jià)值的重要課題。由此,研究和設(shè)計(jì)一個(gè)XML有效的存儲(chǔ)和查詢系統(tǒng)顯得格外緊迫和重要。 1.1 國內(nèi)外研究現(xiàn)狀.. 在制定
23、了XML的規(guī)范后,第一個(gè)要解決的問題就是如何存儲(chǔ)XML數(shù)據(jù),這是因?yàn)閷?duì)XML 數(shù)據(jù)的查詢、檢索、更新等處理都是建立在一定的存儲(chǔ)模式基礎(chǔ)上的,因此它的存儲(chǔ)方式極大地影響了查詢處理的效率。但XML文檔數(shù)據(jù)是一種半結(jié)構(gòu)化數(shù)據(jù),利用現(xiàn)有的技術(shù)無法有效地存儲(chǔ)和管理它,因此XML數(shù)據(jù)的存儲(chǔ)就成了XML領(lǐng)域一個(gè)非常重要的研究方向。 由于XML文檔是作為文本來編輯的,故可以把XML文檔作為一個(gè)普通的文本文件直接存儲(chǔ)在文件系統(tǒng)中,此方法最明顯的優(yōu)點(diǎn)就是實(shí)現(xiàn)簡(jiǎn)單并且不需要專門的數(shù)據(jù)庫系統(tǒng)或者存儲(chǔ)管理器。但每次訪問XML文檔時(shí)都需要先進(jìn)行解析,極大地影響了訪問效率。而且查詢時(shí),整個(gè)被查詢的XML文檔必須常駐內(nèi)存,
24、因此只適合于XML文檔內(nèi)容少、數(shù)量小的場(chǎng)合,它的局限性是顯而易見的。為此,國內(nèi)外學(xué)術(shù)界提出了許多不同的XML文檔的存儲(chǔ)策略[4,5]。目前管理XML數(shù)據(jù)有三種主要的方法,分別是原生XML數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。 研究者們采用原生XML數(shù)據(jù)庫(Native-XML)來存儲(chǔ)XML文檔[6,7,8],這種數(shù)據(jù)庫的是完全用來存儲(chǔ)和操作XML數(shù)據(jù)的數(shù)據(jù)庫,存儲(chǔ)數(shù)據(jù)時(shí)不需要進(jìn)行XML和數(shù)據(jù)庫的映射轉(zhuǎn)換。Native-XML維持原有XML文檔的數(shù)據(jù)結(jié)構(gòu)和相關(guān)的元數(shù)據(jù),而不關(guān)心數(shù)據(jù)的底層存儲(chǔ)結(jié)構(gòu)(關(guān)系數(shù)據(jù)庫或是面向?qū)ο髷?shù)據(jù)庫)。但目前它是一種全新的數(shù)據(jù)庫,技術(shù)還不夠成熟,傳統(tǒng)數(shù)據(jù)庫中原有數(shù)據(jù)也不
25、能輕易地移植到新系統(tǒng)中。 這樣人們就自然地想到利用成熟的數(shù)據(jù)庫技術(shù)來管理XML文檔,如面向?qū)ο髷?shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。面向?qū)ο髷?shù)據(jù)庫[9,10]的數(shù)據(jù)模型與XML非常相似,它們都是層次樹,都用的父子關(guān)系來描述數(shù)據(jù)之間的關(guān)系,都支持用戶子定義復(fù)雜的數(shù)據(jù)類型,因此把XML映射到面向?qū)ο髷?shù)據(jù)庫中去是很容易的事,而且也可以利用對(duì)象查詢語言(OQL)實(shí)現(xiàn)對(duì)XML數(shù)據(jù)的結(jié)構(gòu)化查詢,因此用面向?qū)ο髷?shù)據(jù)庫存儲(chǔ)XML數(shù)據(jù)具有較高的存儲(chǔ)和查詢效率。但是它對(duì)于沒有DTD或Schema的XML文檔,無法定義映射規(guī)則。雖然文獻(xiàn)[11]STORED系統(tǒng)可以采用數(shù)據(jù)挖掘技術(shù)來抽取XML文檔的部分模式,但對(duì)于不符合模式的數(shù)據(jù)必
26、須單獨(dú)處理,而且對(duì)于模式經(jīng)常變化的XML文檔,該方法基本上不可能實(shí)現(xiàn)。 在關(guān)系數(shù)據(jù)庫方法中,XML數(shù)據(jù)被映射成關(guān)系表,同時(shí),對(duì)XML數(shù)據(jù)的查詢轉(zhuǎn)換成SQL片段。同面向?qū)ο髷?shù)據(jù)庫和原生XML數(shù)據(jù)庫相比,關(guān)系數(shù)據(jù)庫具有數(shù)據(jù)結(jié)構(gòu)化、最低冗余度、較高的程序與數(shù)據(jù)獨(dú)立性、易于擴(kuò)充、易于編制應(yīng)用程序等優(yōu)點(diǎn)[11,12, 13, 14, 15, 16,17]。它在存儲(chǔ)管理,查詢優(yōu)化等許多方面都較其他系統(tǒng)遠(yuǎn)為成熟和穩(wěn)定,而且現(xiàn)在流行的數(shù)據(jù)庫絕大多數(shù)是關(guān)系數(shù)據(jù)庫(如SQL Server、DB2、Oracle等都是第三代的數(shù)據(jù)庫)。利用關(guān)系數(shù)據(jù)庫存儲(chǔ)XML數(shù)據(jù),最大的優(yōu)勢(shì)在于可以利用關(guān)系數(shù)據(jù)庫現(xiàn)有的存儲(chǔ)管理、并
27、發(fā)控制、恢復(fù)、版本機(jī)制等技術(shù)有效地管理數(shù)據(jù),因此自然地成為了研究中的重點(diǎn)。 可是利用關(guān)系型數(shù)據(jù)庫來存儲(chǔ)XML文檔也有一定的困難,這主要是因?yàn)殛P(guān)系型數(shù)據(jù)庫是完全結(jié)構(gòu)化的模型,所表達(dá)的信息非常規(guī)則,但它無法表達(dá)一些層次性質(zhì)的數(shù)據(jù),而XML則是半結(jié)構(gòu)化的模型,特別適合表達(dá)層次型的數(shù)據(jù),更具靈活性。要實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫存儲(chǔ)XML,必須將一個(gè)完整的XML文檔分割成多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)表,對(duì)XML數(shù)據(jù)的查詢將涉及到多個(gè)表的訪問和連接操作。因此要實(shí)現(xiàn)XML文檔在關(guān)系型數(shù)據(jù)庫中的存儲(chǔ),關(guān)鍵是要弄清楚XML結(jié)構(gòu)與關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)之間的映射。 目前學(xué)術(shù)界已經(jīng)提出許多XML的關(guān)系存儲(chǔ)策略,但經(jīng)過歸納,這些策略主要分
28、為兩類[18]:第一類方法是結(jié)構(gòu)映射方法(Structure_mapping approach)[14],它是根據(jù)XML的結(jié)構(gòu)(DTD或XML Schema)來生成關(guān)系模式,不同的文檔具有不同的存儲(chǔ)模式,因此這種方法為每一種XML文檔結(jié)構(gòu)或DTD都建立一種適應(yīng)于自己的關(guān)系模式,不同DTD的XML文檔就會(huì)生成不同的關(guān)系模式,而查詢又是基于存儲(chǔ)結(jié)構(gòu)的,因此如果關(guān)系表的數(shù)量和大小各不相同,在查詢處理時(shí)就會(huì)增加查詢的難度以及查詢代價(jià)。 第二類方法是模式映射方法(Model_mapping approach)[12],它是將XML文檔樹中的節(jié)點(diǎn)和邊映射為關(guān)系模式,得到的存儲(chǔ)模式與XML文檔結(jié)構(gòu)無關(guān),因
29、此這種方 第二章 XML的背景知識(shí) 本文提出的基于關(guān)系數(shù)據(jù)庫的XML文檔的存儲(chǔ)查詢系統(tǒng)的處理對(duì)象是XML文檔,因此我們先熟悉一下XML及其相關(guān)技術(shù)。在本章中介紹XML的背景知識(shí)、XML的相關(guān)概念和查詢語言。 2.1 XML的產(chǎn)生和特點(diǎn) 今天,隨著互聯(lián)網(wǎng)技術(shù)的不斷向前發(fā)展,XML(Extensible Markup Language)已經(jīng)無處不在,它也逐漸成為信息交流的標(biāo)準(zhǔn)格式。XML的出現(xiàn),超越了HTML的許多限制,提供了一個(gè)能夠處理互聯(lián)網(wǎng)上全部數(shù)據(jù)的通用方法。 XML是W3C(World Wide Web Consortium,萬維網(wǎng)協(xié)會(huì))制定的用于描述數(shù)據(jù)文檔中數(shù)據(jù)
30、的組織和安排的結(jié)構(gòu)的語言。正像它的英文名稱中所指出的那樣,它是一種標(biāo)記語言。在這點(diǎn)上,它類似于HTML,但XML關(guān)注的不是數(shù)據(jù)在瀏覽器中如何布局和顯示,而是關(guān)注于怎樣描述數(shù)據(jù)內(nèi)容的組織和結(jié)構(gòu)以便數(shù)據(jù)在網(wǎng)絡(luò)上進(jìn)行交流和處理。 XML之所以稱為可擴(kuò)展的標(biāo)記語言,是因?yàn)樗试S用戶自行設(shè)計(jì)有意義的標(biāo)記,并且它所創(chuàng)建的文檔結(jié)構(gòu)具有良好的層次和約束,可以使管理系統(tǒng)精確的識(shí)別信息所在的位置,易于表達(dá)文檔數(shù)據(jù),且非常適合非結(jié)構(gòu)文檔的全文處理,尤其是可以利用XML文檔中的標(biāo)記來確定在文檔中的哪一部分查找,因此它使得對(duì)XML文檔進(jìn)行精確快速查詢成為可能。XML語言的優(yōu)秀特性主要體現(xiàn)在以下幾個(gè)方面[27,28]:
31、 (1)簡(jiǎn)潔性:XML文檔是建立在基本嵌套結(jié)構(gòu)的一個(gè)個(gè)核心集的基礎(chǔ)之上,它的語法包含一個(gè)非常小的規(guī)則集,使人類和機(jī)器都能更容易地閱讀文檔。XML的語法解析器也非常容易創(chuàng)建。 (2)開放性和可擴(kuò)展性:XML使用的是公開、非專有格式,允許不同專業(yè)開發(fā)與自己特定領(lǐng)域有關(guān)的標(biāo)記語言,不受版權(quán)、專利、商業(yè)秘密等知識(shí)產(chǎn)權(quán)的限制。并且XML可以進(jìn)行擴(kuò)展,用戶可以利用它提供的DTD來交換數(shù)據(jù),驗(yàn)證數(shù)據(jù)的有效性。 (3)數(shù)據(jù)的結(jié)構(gòu)性:XML是可擴(kuò)展的標(biāo)記語言,這種格式不僅僅能夠以統(tǒng)一的格式定義數(shù)據(jù),甚至能夠封裝與表示數(shù)據(jù)。這一特點(diǎn),使XML成為數(shù)據(jù)交換的中介者,在異構(gòu)語言、數(shù)據(jù)之間,異構(gòu)數(shù)
32、據(jù)庫之間,提供交換信息的平臺(tái)。 (4)互操作性:XML可以在多種平臺(tái)上使用,而且可以用多種工具進(jìn)行解釋而且它能夠支持世界大多數(shù)文字,因此它能超越不同的文化疆界交換信息。 (5)純文本:幾乎任何工具都可以創(chuàng)建和編輯XML,使得程序可以更簡(jiǎn)單讀寫它。 (6)可格式化:可擴(kuò)展樣式語言XSL可以指定如何顯示數(shù)據(jù)。數(shù)據(jù)和顯示分離,可以為同一數(shù)據(jù)制定不同的樣式表用于不同輸出。 2.2 XML的文檔類型 XML的精髓是基于信息描述的、能夠體現(xiàn)信息之間邏輯關(guān)系的、可以確保文件的易讀性和易搜索性的自定義標(biāo)記。XML的主要用途有兩個(gè),一個(gè)是作為元標(biāo)記語言,定義各種實(shí)例標(biāo)記語言標(biāo)準(zhǔn);二是作為標(biāo)準(zhǔn)
33、交換語言,擔(dān)負(fù)起描述交換數(shù)據(jù)的作用。XML在互聯(lián)網(wǎng)上扮演了“國際語言”的角色。 在應(yīng)用程序中引入XML,一般會(huì)涉及三個(gè)文檔,包括普通的XML文檔(擴(kuò)展名為.xml)、DTD文檔(擴(kuò)展名為.dtd)、Schema(擴(kuò)展名為.xsd),以下分別介紹。 2.2.1 XML文檔 XML文檔是基于文本格式的,它的最基本構(gòu)成包括XML聲明,處理指令和XML元素三部分[27,28],另外還可以有注解,元素中還可以包含屬性或者子元素等。XML聲明一般出現(xiàn)在文檔開頭部分,包括版本號(hào)、可能的語言編碼、可選的文檔類型定義(DTD)等。 格式正規(guī)的XML文檔的定義形式是一個(gè)簡(jiǎn)單的層次樹,每個(gè)文檔都有一個(gè)而且
34、只有一個(gè)根節(jié)點(diǎn),它被稱為文檔實(shí)體或文檔根。根元素出現(xiàn)在聲明之后,它包括XML剩余部分。這一部分由元素、處理指令、屬性、注釋、實(shí)體引用等組成。 XML規(guī)則要求文檔中的元素是XML標(biāo)記的基本組成部分,它必須有其實(shí)標(biāo)記符合對(duì)應(yīng)的結(jié)束標(biāo)記符,而且應(yīng)逐層嵌套。屬性是元素的性質(zhì),屬性表述了元素的開始標(biāo)簽內(nèi)的信息,由字符組界定。XML中的注釋以結(jié)束,注釋可以出現(xiàn)在文檔的任何位置。 <書籍> <書名>紅樓夢(mèng)書名> <作者>曹雪芹作者> <價(jià)格>100元價(jià)格> 書籍>
35、 另外,一個(gè)XML文檔必須滿足兩點(diǎn):良構(gòu)(well-formed)和合法(valid)。遵循XML語法的文檔叫做良構(gòu)的文檔,可以表示一定的語義信息。而一份附帶有外部或內(nèi)部DTD或者XML Schema的良構(gòu)的XML文檔,并且XML文檔本體符合DTD或者XML Schema所聲明的文件格式的XML文檔才成為合法的XML文檔。關(guān)于DTD和XML Schema的內(nèi)容,在后面的章節(jié)中敘述。 例2.1:以下是一個(gè)簡(jiǎn)單的XML文檔示例。 這一示例清晰地描述了一本書的信息。由于XML主要應(yīng)用于交換和發(fā)布信息,所以在應(yīng)用XML之前,一般先定義DTD或Schema來規(guī)定XML
36、應(yīng)遵循的格式,以示的XML文檔能真正用于數(shù)據(jù)共享與交換。 第三章 基于路徑的存儲(chǔ)轉(zhuǎn)換方法 在引言中,我們已經(jīng)比較了目前XML文檔的三種存儲(chǔ)方式,原生數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫技術(shù)都不成熟,并存在著自身的一些缺陷,因此,本文采用關(guān)系數(shù)據(jù)庫作為存儲(chǔ)XML的支撐平臺(tái)。我們選擇關(guān)系數(shù)據(jù)庫主要有以下兩個(gè)原因:(1)關(guān)系數(shù)據(jù)庫技術(shù)成熟,使用廣泛,用戶不用為并發(fā)控制、安全性等問題作額外的工作;(2)在關(guān)系數(shù)據(jù)庫中的查詢優(yōu)化技術(shù)和處理機(jī)制已經(jīng)得到了充分的研究和發(fā)展。 在實(shí)現(xiàn)對(duì)XML數(shù)據(jù)的存儲(chǔ)時(shí),最為基礎(chǔ)且重要的一個(gè)步驟就是從XML文檔到關(guān)系表定義(即關(guān)系模式
37、)的映射,目前從XML到關(guān)系數(shù)據(jù)庫的映射方法有很多, 歸納起來分為結(jié)構(gòu)映射和模式映射兩種[18]。結(jié)構(gòu)映射利用XML文檔DTD或Schema的信息,將XML文檔的模式信息映射為關(guān)系模式,因此,不同模式的XML文檔或DTD就會(huì)對(duì)應(yīng)不同的關(guān)系模式,映射時(shí)生成的關(guān)系表的大小和數(shù)量也會(huì)隨著XML模式的不同而不同,這就為XML數(shù)據(jù)的查詢帶來了困難,加大了查詢時(shí)的查詢代價(jià)。目前Web上的信息大都是對(duì)XML靈活動(dòng)態(tài)的使用,有的文檔的DTD是預(yù)先未知的,有的文檔結(jié)構(gòu)良好但卻沒有DTD,有的文檔的DTD是經(jīng)常變化的,因此,結(jié)構(gòu)映射不適合存儲(chǔ)大量動(dòng)態(tài)的、或結(jié)構(gòu)易變的XML文檔。 針對(duì)這些缺點(diǎn),本文提出
38、了一種新的XML文檔基于路徑的關(guān)系存儲(chǔ)方法。該方法是一種模式映射,它使用固定的關(guān)系模式存儲(chǔ)各種結(jié)構(gòu)互異XML文檔,并且這種關(guān)系模式不考慮文檔DTD的信息,因此不受它變化的限制。由于這種映射方法產(chǎn)生的關(guān)系表結(jié)構(gòu)固定,因此在XML文檔查詢時(shí),也帶來了極大的便利。下面我們具體闡述這種存儲(chǔ)方法的內(nèi)部機(jī)制。 3.1 基于路徑的存儲(chǔ)結(jié)構(gòu) 這種基于路徑的存儲(chǔ)方法全面地考慮了XML文檔樹中的每個(gè)節(jié)點(diǎn)的信息、邊信息和值信息,將XML文檔中所有的嵌套關(guān)系都采用了兩個(gè)表來存儲(chǔ):一個(gè)叫值表(Value_Table),它用來存儲(chǔ)XML文檔中所有有文本值的元素/屬性的相關(guān)信息;另一個(gè)叫非值表(No_Value_Ta
39、ble),它用來記錄XML文檔中所有的無文本值的中間元素的相關(guān)信息。下面我們具體對(duì)這兩個(gè)表的結(jié)構(gòu)進(jìn)行闡述。 3.1.1 Value_Table 在值表中,為了完整地記錄XML文檔中所有有值元素或?qū)傩缘母鞣N相關(guān)信息,該表中每一個(gè)記錄是標(biāo)識(shí)每個(gè)有值節(jié)點(diǎn)的一個(gè)六元組< Id, Name, Value, Path, Parentid, Level>,即該表必須包括六列(或六個(gè)字段),如圖3.1所示。這六列中存儲(chǔ)的值分別為: Id:存儲(chǔ)該元素/屬性節(jié)點(diǎn)的序號(hào),即對(duì)XML文檔樹中所有節(jié)點(diǎn)按先序遍歷所產(chǎn)生的序號(hào),它反映先序遍歷文檔樹時(shí)該節(jié)點(diǎn)出現(xiàn)的次序; Name:存儲(chǔ)該元素/屬性名; V
40、alue :存儲(chǔ)該元素/屬性的值,本文對(duì)屬性和有值的元素進(jìn)行同樣的處理,均把它們存儲(chǔ)在Value_Table中,把它們對(duì)應(yīng)的屬性/元素的文本值存儲(chǔ)在Value字段中;
Path:記錄從根節(jié)點(diǎn)到該元素/屬性的路徑,即從根節(jié)點(diǎn)開始直到當(dāng)前節(jié)點(diǎn),并由"/"連接的元素標(biāo)簽的序列,我們簡(jiǎn)稱為只包含父子關(guān)系的簡(jiǎn)單路徑,它是以XPath的縮簡(jiǎn)形式給出[31];
Parentid:存儲(chǔ)該元素/屬性的父節(jié)點(diǎn)的Id;
Level:存儲(chǔ)該節(jié)點(diǎn)所在的層數(shù)。
圖3. 1
3.2 XML文檔示例
41、 id="1">
42、
43、并提取關(guān)于每個(gè)節(jié)點(diǎn)的所有有用信息,將它們通過代碼段全部存儲(chǔ)在到值表和非值表中。在這里,先介紹有值節(jié)點(diǎn)的存儲(chǔ)。 圖3.3 值表的存儲(chǔ)結(jié)果 圖3.3是該XML文檔在值表(Value_Table)中的存儲(chǔ)結(jié)果,在這個(gè)表中,把XML中的屬性和有值的元素同等對(duì)待。它記錄了該XML文檔中兩個(gè)屬性和九個(gè)有值的元素的所有信息,分別為先序遍歷的id,元素/屬性名以及它們的值,同時(shí)還記錄了它們所處的層數(shù)、父節(jié)點(diǎn)的id和從根節(jié)點(diǎn)到它們的路徑。 3.1.2 No_Value_Table 圖3.4 非值表的各列信息 圖3.5 非值表的存儲(chǔ)結(jié)果 在關(guān)系數(shù)據(jù)庫中設(shè)置的第二
44、個(gè)表為非值表,它記錄的是所有無值元素的相關(guān)信息。也就是說,它要完整地記錄XML樹中所有沒有值的中間節(jié)點(diǎn)和根節(jié)點(diǎn)的信息,所以No_Value_Table必須包括四列(即四個(gè)字段),列名分別為:Id、Name、Parentid、Level,如圖3.4所示。這四列中存儲(chǔ)的內(nèi)容都與值表中的含義相同。在這兩個(gè)表中,Id均為主鍵,其內(nèi)容不允許為空。 設(shè)置了非值表后,XML文檔中的根元素和無值的中間元素都被記錄在內(nèi)。我們依然以圖3.2中的XML文檔為例,來考察它存儲(chǔ)結(jié)果的正確性。該XML在非值表中的存儲(chǔ)結(jié)果如圖3.5所示。 從圖3.3和圖3.5中,我們可以清楚地看到XML文檔轉(zhuǎn)換為關(guān)系表的同時(shí),它內(nèi)部所
45、有元素/屬性的邊信息和值信息也被無損地映射到這兩個(gè)表中。這就完成了XML在關(guān)系數(shù)據(jù)庫中存儲(chǔ)和查詢的最為關(guān)鍵的一步,其后的查詢方法也是基于這種存儲(chǔ)結(jié)構(gòu)來實(shí)現(xiàn)的。 結(jié) 束 語 90年代以來,隨著Internet/Web的迅速發(fā)展,XML作為Web上數(shù)據(jù)表示、交換和集成的事實(shí)上的標(biāo)準(zhǔn),為眾多的研究人員所研究。在各種XML處理方式中,關(guān)系數(shù)據(jù)庫由于其成熟的技術(shù)和高性能,使得利用關(guān)系數(shù)據(jù)庫來查詢處理XML數(shù)據(jù)受到了廣泛的關(guān)注,成為當(dāng)前XML數(shù)據(jù)處理的主流方式,并在各種領(lǐng)域中得到了廣泛使用。然而,XML和傳統(tǒng)的關(guān)系數(shù)據(jù)庫在數(shù)據(jù)模型、查詢語言和應(yīng)用場(chǎng)景等方面存在著較大的差異,利用關(guān)系數(shù)據(jù)庫來存儲(chǔ)
46、和查詢XML給傳統(tǒng)數(shù)據(jù)庫技術(shù)帶來許多新的問題和挑戰(zhàn),如:如何有效地將XML數(shù)據(jù)庫存儲(chǔ)在關(guān)系數(shù)據(jù)庫中、如何更新存儲(chǔ)在關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)、如何將它重新發(fā)布為XML文檔、如何在Web中有效地檢索XML文檔等等。 本文集中研究了XML數(shù)據(jù)在關(guān)系數(shù)據(jù)庫中的規(guī)范化存儲(chǔ)、XML數(shù)據(jù)的查詢、XML存儲(chǔ)模式的優(yōu)化等關(guān)鍵技術(shù),提出了一種新的基于關(guān)系數(shù)據(jù)庫的XML文檔的存儲(chǔ)查詢方法,該方法用以無損地存儲(chǔ)XML數(shù)據(jù),并有效地處理了路徑表達(dá)式的查詢。并實(shí)現(xiàn)了相應(yīng)的系統(tǒng)原形。本文取得的主要研究成果如下: (1)研究了XML數(shù)據(jù)在關(guān)系數(shù)據(jù)庫中的存儲(chǔ)問題,提出了基于路徑的關(guān)系存儲(chǔ)方法,該方法采用固定的關(guān)系模式存儲(chǔ)X
47、ML文檔,適用于無DTD或DTD易變的動(dòng)態(tài)XML數(shù)據(jù)的存儲(chǔ)。它能無損地記錄了XML文檔中的各節(jié)點(diǎn)信息、邊信息和值信息,即在關(guān)系表中存儲(chǔ)XML文檔中所有有值元素/屬性的路徑,以及各元素的id、Parentid、Level等信息,加快了查詢處理速度; (2)在基于路徑的存儲(chǔ)方法基礎(chǔ)上,將查詢XML數(shù)據(jù)的路徑表達(dá)式轉(zhuǎn)換為SQL語句,根據(jù)查詢路徑表達(dá)式中的連接符不同給出具體的轉(zhuǎn)換規(guī)則和算法; (3)提出了基于路徑的存儲(chǔ)查詢的優(yōu)化策略,對(duì)于一個(gè)給定的文檔,可根據(jù)它的層次結(jié)構(gòu)選擇相應(yīng)的存儲(chǔ)方法,從而在一定程度上減少存儲(chǔ)冗余;對(duì)于簡(jiǎn)單線性路徑表達(dá)式,為了減少了結(jié)構(gòu)連接的次數(shù),提出一種基于串匹配的查詢方法
48、,從而減少了I/O數(shù)量以及查詢代價(jià); (4)在上述成果的基礎(chǔ)上,實(shí)現(xiàn)了原型系統(tǒng),并利用實(shí)際的XML文檔對(duì)其進(jìn)行性能測(cè)試,實(shí)驗(yàn)證明,該論文的方法切實(shí)可行。 基于關(guān)系數(shù)據(jù)庫處理XML數(shù)據(jù)是目前國際數(shù)據(jù)庫界最重要的研究方向之一,在這方面尚有許多問題亟待解決。本論文將來可能的工作包括: (1)該方法在查詢處理時(shí),對(duì)//的響應(yīng)時(shí)間比較長,主要是由于表連接的次數(shù) 參考文獻(xiàn) [1].S.Abiteboul,P.Buneman,D.Suciu.Data on the web:From Relational to Semistructured Data and XML[M].San Fran
49、ciso,California:Morgan,Kaufmann Publishers,2000. [2].K.Aberer eds.Special Section on Advanced XML Data Processing[J].ACM SIGMOD Record,ACM Press,2001,30(3). [3].Alon Y Halevy.Special Issue on XML Data Mamagement[J].IEEE Data Engineering Bulletin,IEEE Computer Society,2001,24(2). [4].許卓明,劉琴,董逸生.基于
50、關(guān)系數(shù)據(jù)庫的XML存儲(chǔ)技術(shù)評(píng)述[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(10):197-200. [5].黃瑩,楊明福.XML文檔的存儲(chǔ)方法研究[J].計(jì)算機(jī)工程,2002,28(5):281-283 [6].Thorsten Fiebig,Sven Helmer,Carl-Christian Kanne,etc.Anatomy of a Native XML Base Management System[C].The VLDB Journal.December 2002,11(4):292-314. [7].Xiaofeng Meng,Daofeng Luo,Mong Li Lee,e
51、tc.Orient Store:A Schema Based Native XML Storage System[C].The 29th VLDB Conference.September 2003:1057-1060 [8].李驥,陳福生.Native-XML數(shù)據(jù)庫綜述[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(6):932-934 [9].A. Renner.XML Data and Object Databases:A Perfect Couple[C].Proceedings of the 17th International Conference on Data Engine
52、ering,Heidelberg,Germany,2001:143-148 [10].Rick Catte et al,The object data standard:ODMG3.0[M].Morgan Kaufmann Publishers,2000 [11].A Deutsch,M Fernandez,D Suciu.Storing Semistructured Data with STORED[C].Proceeding of ACM SIGMOD International Conf on Management of Data,Philadephia,PA,USA,ACM Pre
53、ss,1999:431-442. [12].D.Florescu,D.Kossmann.Storing and Querying XML Data using an RDBMS[J].IEEE Data Engineering Bulletin,IEEE Computer Society,1999,22(3):27-34 致 謝 值此論文完成之際,我首先要衷心感謝我的導(dǎo)師,從最初收集資料、研究資料到系統(tǒng)的逐漸實(shí)現(xiàn),直至論文的最終完成,這其中每一個(gè)階段都傾注著老師的心血和汗水。沒有他嚴(yán)格精心的指導(dǎo)和細(xì)致入微的幫助,就沒有本文的順利完成,也沒有我三年來在科研和學(xué)習(xí)方面的進(jìn)步。他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和勤奮的工作作風(fēng)對(duì)我的影響,使我終身受益。除了在學(xué)業(yè)上對(duì)我悉心指導(dǎo)外,老師還在生活中給了我無微不至的關(guān)懷和幫助,這都終將成為我腦海中尤為深刻的記憶。 最后,我要感謝我的家人在這多年的學(xué)習(xí)和生活中,對(duì)我學(xué)業(yè)的支持與理解,還有那博大無私的愛! 這一切都將成為我終身受用的財(cái)富。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案