畢業(yè)論文 XML數(shù)據(jù)查詢方法研究.doc_第1頁
畢業(yè)論文 XML數(shù)據(jù)查詢方法研究.doc_第2頁
畢業(yè)論文 XML數(shù)據(jù)查詢方法研究.doc_第3頁
畢業(yè)論文 XML數(shù)據(jù)查詢方法研究.doc_第4頁
畢業(yè)論文 XML數(shù)據(jù)查詢方法研究.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

內(nèi)容摘要XML自W3C組織提出之后,逐漸成為因特網(wǎng)中數(shù)據(jù)表示和數(shù)據(jù)交換的新標準,越來越多的組織使用XML描述信息。隨著XML信息交流的增多,如何快速的從大量的XML數(shù)據(jù)中進行高效的數(shù)據(jù)查詢已經(jīng)成為眾多研究者所關注的問題。本文從存儲角度出發(fā),研究了不同的存儲方式所對應的不同查詢方式。各種查詢方式有不同的使用環(huán)境,本文將對各種方式進行詳細介紹。關鍵詞:XML數(shù)據(jù)查詢 XML數(shù)據(jù)查詢方法研究1 XML簡介1.1 研究背景及意義在當今的IT業(yè)中,XML(Extensible Markup Language,可擴展標識語言)越來越成為一個熱門的話題。XML是由W3C(萬維網(wǎng)聯(lián)合組織)制定的標準,具有良好的數(shù)據(jù)存儲格式、可擴展性、高度結構化和便于網(wǎng)絡傳輸?shù)葍?yōu)點,從而成為了新一代的Web語言。XML提供了直接處理數(shù)據(jù)的通用方法,為基于Web的應用提供一個描述數(shù)據(jù)和交換數(shù)據(jù)的有效手段,有利于信息的表達和結構化組織。因此,可以更好地滿足網(wǎng)絡時代在電子商務遠程教育、數(shù)據(jù)庫與引擎等領域的多態(tài)信息的交互、傳輸和再現(xiàn)的需求。越來越多的數(shù)據(jù)使用XML的標準進行表示和存儲,如何對XML文檔進行有效的查詢是一個熱點研究問題。1.2 XML的產(chǎn)生 目前,WEB上的通用標識語言是超文本標識語言HTML(HyPertext Markup language),正是由于HTML的出現(xiàn),才使得Internet迅速發(fā)展到今天這樣龐大的規(guī)模。HTML來自SGML (standard Generalizes Markup Language,標準通用標記語言),SGML是一種用標記來描述文檔資料的通用語言,它包含了一系列的DTD(Document Type Definition,文檔類型定義)規(guī)范,DTD中定義了標記的含義,因而SGML的語法是可以擴展的。但是SGML十分復雜、龐大、不易學,在計算機上實現(xiàn)也比較困難。鑒于這些原因,WEB的發(fā)明者根據(jù)當時計算機技術的能力,提出了HTML語言。HTML語言只使用了SCML中的很小一部分標記,為了便于計算機上實現(xiàn),HTML規(guī)定的標記是固定的,即HTML語法是不可擴展的,它不需要包含DTD。HTML以其簡單精練的語法、極易掌握的通用性與易學性,使Web網(wǎng)頁可以接近于每個普通人,互聯(lián)網(wǎng)也得以迅猛發(fā)展。 然而,電子商務、電子圖書、遠程教育等全新領域的異軍突起,逐漸發(fā)展成為互聯(lián)網(wǎng)世界重要的組成部分,隨之而來的是Web文件的復雜化、多樣化、智能化,于是高容量、高信息量、高效率便為網(wǎng)絡信息傳輸技術發(fā)展的追求。與此同時,還有另一種需求變得愈發(fā)廣泛而迫切,即數(shù)據(jù)能否根據(jù)不同用戶不同需求而有不同的效果、不同的形式表現(xiàn)出來。這一切都是HTML所不能滿足的,開發(fā)一種新的Web頁面語言已勢在必行。由于HTML只使用一組固定的元素類型,不可擴展,所以不能針對特定文檔類型而設計,而且創(chuàng)建之后經(jīng)歷多年一直沒有非常嚴格的定義。因此隨著Web的互操作性和多樣性受到專用格式化標記的日益威脅時,Web標準化組織W3C (Worldwide Web Consortium,萬維網(wǎng)聯(lián)盟)建議使用一種精簡的SGML版本XML應運而生。1.2.1 半結構化數(shù)據(jù)概念 特點及數(shù)據(jù)描述XML數(shù)據(jù)的特點之一就是半結構化,半結構化數(shù)據(jù)是介于完全結構化數(shù)據(jù)和完全無結構的數(shù)據(jù)之間的之中數(shù)據(jù)形式,具有自描述性。一些數(shù)據(jù)源(如Web)的數(shù)據(jù)并非像傳統(tǒng)的結構化數(shù)據(jù)那樣有嚴格的數(shù)據(jù)格式和數(shù)據(jù)類型,即為半結構化數(shù)據(jù)。半結構化數(shù)據(jù)的特點是沒有事先給定的數(shù)據(jù)模式,或者數(shù)據(jù)模式對數(shù)據(jù)的約束不強,模式的規(guī)模比較大,模式是經(jīng)常變動的,數(shù)據(jù)未賦予嚴格的類型。它具有以下特點:(1)先有數(shù)據(jù),后有模式。一般是先進行查詢,查詢結果即為數(shù)據(jù)結構及其模式。(2)用于描述數(shù)據(jù)的結構信息,而不是對數(shù)據(jù)結構進行強制性約束。(3)規(guī)模可能很大,甚至超過源數(shù)據(jù)的規(guī)模,而且因數(shù)據(jù)的不斷更新而處于動態(tài)的變化過程中。(4)不講求精確性,可能描述其中一部分結構,也可能根據(jù)數(shù)據(jù)處理的不同階段的視角而不同。(5)非常靈活,能滿足網(wǎng)絡這種復雜分布式環(huán)境的要求。(6)加大了數(shù)據(jù)處理的難度。1.2.2 HTML與XMLHTML: 即超文本標識語言,是編制Web頁面文檔的語言,它定義結構化文本類型和標識這些文本類型。HTML 所含的標識符定義包括:文檔結構,字形字體,版面布局,鏈接,等超文本文檔結構,這些標識符使Web瀏覽器能夠閱讀和重新格式化任何Web頁面。HTML 的最新版本是HTML4.0,它支持OBJECT標記和層疊風格表單(CSS)。通過支持ISO10646字符集,它支持任何語言所需的標識,為作者插入對象和腳本提供了途徑,并在文件中支持格式項。但HTML僅關注Web瀏覽器的頁面安排,缺乏對結構化數(shù)據(jù)的表示能力,它采用單一固定語法,缺乏可擴展性,因此難以用于如數(shù)據(jù)處理,刷新排列,存儲,轉發(fā),交換,加密及簽名等操作,因此難以滿足電子商務對大量動態(tài)數(shù)據(jù)使用統(tǒng)一數(shù)據(jù)格式進行表示和管理的需要。XML(Extensible Markup Language-可擴充的標識語言)為網(wǎng)頁編輯的可移植性,平臺獨立性,系統(tǒng)兼容性,資源整合與管理等提供了完整的解決方案,逐漸成為電子商務的新的基石。XML也是從SGML發(fā)展而來,它是設計的元語言,而不是像HTML那樣具有的固定標記集的標記語言。XML可以建立用戶自己的標記和類別文件。簡單而言,XML 和HTML的本質區(qū)別是: HTML標記是用來描述怎樣在屏幕上顯示信息,解決人機交互問題,而XML是用來描述信息是什么,解決機器之間的交互問題。1.3 XML技術 XML是標準通用標記語言SGML的一個子集,從SGML中經(jīng)過精心修剪而來的XML既保持了SGML的功能,同時又減少了SGML的復雜性。和HTML相比,XML是面向內(nèi)容的,具有更多的語義、良好的可擴展性、簡單易用、自描述等特點,適用于WEB上的數(shù)據(jù)交換。 XML包含三要素:DTD(Document Type Definition文檔類型定義)或XML模式(Schema)、可擴展樣式語言XSL(Extensible Style Language)以及可擴展鏈接語言XLL (Extensible Link Language)。其中,XSL用于規(guī)定XML文檔呈現(xiàn)樣式的語言,它使數(shù)據(jù)與其表現(xiàn)形式相互獨立;而XLL用于擴展目前WEB上已有的簡單鏈接。文檔類型定義(DTD)是一套關于標記符的語法規(guī)則,規(guī)定可以在文檔中使用哪些標記符,應該按什么次序出現(xiàn),哪些標記符可以出現(xiàn)于其它標記符中,哪些標記符有屬性等。因為XML本身不是一種語言,而是定義語言的一個系統(tǒng),想使用XML進行數(shù)據(jù)交換的組織可以定義它們自己的DTD。1.4 XML特點XML的優(yōu)勢之一是它允許各個組織、個人建立適合自己需要的標記集合,并且這些標記集合可以迅速地投入使用。這一特征使得XML可以在電子商務、政府文檔、司法、出版、CAD/CAM、保險機構、廠商和中介組織信息交換等領域中一展身手,針對不同的系統(tǒng)、廠商提供各具特色的獨立解決方案。XML的最大優(yōu)點在于它的數(shù)據(jù)存儲格式不受顯示格式的制約。一般來說,一篇文檔包括三個要素:數(shù)據(jù)、結構以及顯示方式。XML把文檔的三要素獨立開來,分別處理。首先把顯示格式從數(shù)據(jù)內(nèi)容中獨立出來,保存在樣式單文件中,這樣如果需要改變文檔的顯示方式,只要修改樣式單文件就可以了。XML的自我描述性能夠很好地表現(xiàn)許多復雜的數(shù)據(jù)關系,使得基于XML的應用程序可以在XML文件中準確高效地搜索相關的數(shù)據(jù)內(nèi)容,忽略其他不相關部分。XML還有其他許多優(yōu)點,比如它有利于不同系統(tǒng)之間的信息交流,完全可以充當網(wǎng)際語言,并有希望成為數(shù)據(jù)和文檔交換的標準機制。總體說來,XML主要具有以下的一些重要特性: 半結構化半結構化是XML的一大特點。用戶可以通過文檔類型定義規(guī)范為XML定義語法、數(shù)據(jù)結構以及元素類型,并且可以根據(jù)用戶的需要增加、刪除標記。XML文檔可以用不同的樣式進行顯示。利用標記自身所包含的語義,XML可以將異構的數(shù)據(jù)集成在一起。利用XML的半結構化性可以解決異構數(shù)據(jù)轉換的問題。 自描述性 XML文檔通常包含一個文檔類型聲明,因而XML文檔是自描述的。不僅人能讀懂XML文檔,計算機也能處理。XML表示數(shù)據(jù)的方式真正做到了獨立于應用系統(tǒng),并且數(shù)據(jù)能夠重用。XML文檔被看作是文檔的數(shù)據(jù)庫化和數(shù)據(jù)的文檔化。 可擴展性 XML允許使用者創(chuàng)建和使用他們自己的標記而不是HTML的有限詞匯表。這一點至關重要,企業(yè)可以用XML為電子商務和供應鏈集成等應用定義自己的標記語言,甚至特定行業(yè)一起來定義該領域的特殊標記語言,作為該領域信息共享與數(shù)據(jù)交換的基礎。 靈活性HTML很難進一步發(fā)展,就是因為它是格式、超文本和圖形用戶界面語義的混合,要同時發(fā)展這些混合在一起的功能是很困難的。而XML提供了一種結構化的數(shù)據(jù)表示方式,使得用戶界面分離于結構化數(shù)據(jù)。所以,Web用戶所追求的許多先進功能在XML環(huán)境下更容易實現(xiàn)。當然,XML作為一個新建立的標準,還有許多不足之處:它在強調(diào)了數(shù)據(jù)結構的同時,語義表達能力上略顯不足。另外,XML的有些技術尚未形成統(tǒng)一的標準,充分支持XML的應用處理程序還不多,甚至瀏覽器對XML的支持也是有限的。盡管如此,我們?nèi)匀豢梢灶A言,隨著人們對XML認識的逐漸深入,XML必將成為網(wǎng)絡技術不可缺少的一員。1.5 XML查詢概述XML數(shù)據(jù)查詢與XML數(shù)據(jù)存儲方式密切相關,在確定存儲方式后,選擇合適的查詢語言,可以對Internet中的大量數(shù)據(jù)進行靈活的查詢。XML數(shù)據(jù)的物理存儲格式對查詢處理的效率有很大的影響,不同的存儲方式配合不同的查詢語言和查詢方式,會在查詢效率上有很大的不同?,F(xiàn)今較為流行的是利用關系數(shù)據(jù)庫系統(tǒng)管理XML數(shù)據(jù),它可以保證XML數(shù)據(jù)的一致性和完整性。與此同時,關系數(shù)據(jù)庫產(chǎn)品在市場上占的比重較大,包括WEB上的后臺服務器所用的數(shù)據(jù)庫一般也是關系數(shù)據(jù)庫,那么如果用關系數(shù)據(jù)庫存儲XML數(shù)據(jù)的話,就能夠比較方便地在兩者之間進行數(shù)據(jù)格式的轉換。所以,用關系數(shù)據(jù)庫來存儲和查詢XML數(shù)據(jù)是一種方便可行的方法,而且比較容易實現(xiàn)企業(yè)應用的遷移。存儲方式及查詢方式確定之后,需要設計一種方便、易用的XML查詢語言,供用戶及上層應用程序檢索XML文檔。目前,己經(jīng)有多種面向XML數(shù)據(jù)的查詢語言,如Lorel,XML-QL,XML-GL,XQL,XSLT,Quilt,xQuery等。下文將對XML文本存儲數(shù)據(jù)查詢作詳細介紹。3 文本存儲中XML數(shù)據(jù)查詢方法對于一般的XML文檔,有多種查詢語言可以對其進行查詢,只是它們各有側重,下面我們通過實例對它們分別介紹。以下是簡單的XML文檔: 文檔students 文檔courses 文檔scs3.1 XPath3.1.1 XPath簡介XPath J Clark. XML Path Language (XPath) EB.OL. /TR/xpath.(XML定位語言)是XML路徑語言,是W3C關于查詢部分XML文檔的通用語言標準。XPath是實現(xiàn)XML數(shù)據(jù)的周游語言,是其他查詢語言的基礎。XPath通過定義一系列規(guī)則來指定對XML文檔樹型結構的訪問方式,并給出從某個結點起的查詢路徑,搜索文檔。使用XPath可以在XML層次結構中快速定位和提取信息,它的內(nèi)建函數(shù)提供了全面的功能,可以方便的處理數(shù)值及文本數(shù)據(jù)。可以這樣理解XPath,如果將XML文檔看成DOS目錄結構,XPath就是cd,dir等目錄操作命令的集合。3.1.2 XPath文本查詢實例XPath主要用于對XML文檔選定部分的定位及導航,XPath主要是對一個文檔的查詢。如對上面的students.xml中的student的sno進行查詢:其輸出結果為:“95001” “95002”3.1 XSLT 根據(jù)W3C 劉秋香, 張永勝. 對XPath,XLink和XPointer的分析研究J. 微機發(fā)展. 2005 (10): 19-22的規(guī)范說明,最早設計XSLT(XML Systlesheet Language Transormation)的用意是幫助XML文檔轉換為其它文檔。但是隨著技術的發(fā)展,XSLT已不僅僅用于將XML轉換為HTML或其它文本格式。如今,XSLT是一種應用于操作XML文檔的完整高級語言,用于轉換XML文檔結構。3.2.1 XSLT主要功能及特點 XSLT最主要的功能是將XML轉換為HTML,XSLT含有類似數(shù)據(jù)查詢的語法,是一種轉換XML文檔的語言。XSLT中包含了一系列的模板規(guī)則與命令來控制數(shù)據(jù)的結構 W3C. XSL Transformations (XSLT) 1.0. W3C Recommendation EB/OL (1999-11-16). /TR/1999/REC-xslt-1999.11.16.,它具有以下特點: (1)XSLT基于嚴格的XML文檔格式,可以自動使用XML的所有詞匯設備。XSLT可以容易地將期望的XML輸出塊嵌入樣式表,如多個簡單的樣式表可以寫為期望輸出文檔的模板,并且可以將一些特殊指令嵌入文本中,以便插入輸入中的變量數(shù)據(jù)或計算某個值。 周兆濱,等.XSLT應用于數(shù)據(jù)編程的研究J. 制造業(yè)自動化, 2003(12): 93-95. 周順平, 等. 使用XSL表現(xiàn)XML的幾種方法J. 計算機與現(xiàn)代化,2002(5): 7-10. (2)XSLT樣式表是易于移植的,任何符合XSLT推薦標準的處理程序都可以使用它。 (3)基本處理范例是模式匹配。XSLT樣式表包括一組模板規(guī)則,每條規(guī)則都使用以下方式:“如果在輸入中遇到此條件,則生成下列輸出”。XSLT將輸入XML文檔視為樹狀結構,每條模板規(guī)則都適用于樹中的一個節(jié)點,模板規(guī)則本身可以決定下一步處理哪些節(jié)點,因此不必按照輸入文檔的原始順序來掃描輸入。(4)XSLT是用XPath子語言來引入輸入樹中的節(jié)點。3.2.2 XSLT文本查詢實例XSLT適合對單獨的XML文檔進行查詢。如對上面的students.xml中的學號和姓名進行查詢,可采用如下格式:結果如下:3.3 XQueryXQuery D. Chamberlin, etal. XQuery1.0: An XML query languageEB/OL./TR/xquery/. World Wide Web Consortium. XQuery 1.0: An XML Query LanguagesEB/OL(2002-11-15).W3C Working Draft. /TR/2002/WD-xquery-20021115.工作組的任務是創(chuàng)建一種靈活的查詢語言以便從XML文檔中抽取數(shù)據(jù)。目前W3C所公布的最新XQuery草案是2003年11月12日的版本,它還在不斷的修訂和完善之中。作為一種新型的查詢語言,XQuery汲取了其它多種查詢語言的優(yōu)點,適用于各種類型的XML數(shù)據(jù)源的查詢,不僅查詢功能強大,而且簡潔靈活且易于實現(xiàn)。同時,XQuery還具有從多種數(shù)據(jù)庫中檢索信息的特點,它能對各種數(shù)據(jù)和文檔進行查詢。3.3.1 XQuery查詢原理XQuery建立在XPath規(guī)范之上,其核心是能夠通過XPath表達式從文檔中選擇特殊的節(jié)點序列。XQuery是一種將查詢表示成表達式的功能語言,通過它所支持的多種表達式,它的查詢可以有多種不同的形式,XQuery還允許通過嵌套類SQL的子句來創(chuàng)建復雜查詢,以及通過將XML構造器直接包括在輸出中來創(chuàng)建復雜結果。XQuery模塊包括三個部分:命名空間和模式聲明、函數(shù)定義、查詢表達式,其中模式聲明和函數(shù)定義不是必須的。 XQuery的特性之一是利用功能強大的FLWR表達式進行查詢 萬常選. XSL數(shù)據(jù)庫技術M.北京:清華大學出版社,2005: 13-38.。FLWR表達式是一種典型的能夠完成具有某種實際意義的查詢的表達式。FLWR表達式包含模式匹配、過濾選擇和結果構造三種操作。FLWR語句是XQuery所具有的最接近于SQL的語句。FLWR表達式是由FOR-LET-WHERE-RETURN四個關鍵字定義的子句構成的,在最新的標準中則更新為“FLWOR”,其中O代表Order by子句。FLWOR表達式可以完成很多在XSLT中難以完成的任務。它支持迭代并且可以把變量綁定到中間結果,對兩個或多個文檔進行連接和重構數(shù)據(jù)時這種表達式非常有用。每個FLWOR表達式都有一個或多個for子句、一個或多個let子句、一個可選的where子句、一個order by子句以及一個return子句。for子句通過將節(jié)點綁定到變量以便繼續(xù)循環(huán)遍歷序列中的每一個節(jié)點;let子句為一個變量賦一個值或一個序列;return子句定義每個元組要返回的內(nèi)容;對于where子句,如果其有效布爾值為真,那么該元組就被保留,并且它的變量綁定用在return子句中,如果其有效布爾值為假,那么該元組就被廢棄。3.3.2 XQuery文本查詢實例(1)簡單查詢 XQuery在查詢方面有類似于SQL的結構,易于理解,易于設計。如對上面的scs.xml進行查詢并返回所有成績大于90的學生的sno和grade的結果,可采用如下的方式:結果為:“950

溫馨提示

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

評論

0/150

提交評論