<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-128  評論-55  文章-5  trackbacks-0

    雖然學術界和工業界對XML數據庫的研究和開發并不完全一致,但是兩者的目標卻非常相似:解決現有問題,擴展應用領域。

    一.學術界與工業界的兩種不同索求

    Ronald Bourret 在他那篇著名的《XML Database Products》中,將XML數據庫產品分為中間件(Middleware)、支持XML的數據庫(XML-Enabled Databases)、純XML數據庫(Native XML Databases)、XML服務器(XML Servers)、Wrappers、內容管理系統(Content Management Systems)、XML查詢引擎(XML Query Engines)、XML Data Binding、Discontinued products等九種,在業界影響很大。但是,在XML數據庫的研究和開發人員眼里,或許只有支持XML的數據庫、純XML數據庫能夠稱得上是真正意義上的XML數據庫。支持XML的數據庫可以被看做是支持XML數據的數據庫系統,它可能是關系數據庫、對象數據庫等。就在一年半以前,還有相當多的人在爭論關系庫支持的XML數據庫和純XML數據庫孰優孰劣的問題。但是,純XML數據庫卻在這種爭論中悄然進步,在技術上有了長足的發展。

    人們已經越來越傾向于認為XML數據庫就是純XML數據庫。隨著金融界確立XBRL(XML的一個子集)標準和政府規范電子政務的XML格式,實踐推動著XML數據庫技術不斷向前發展。

    XML數據庫系統從最初簡單的查詢引擎,不斷地加入查詢優化、事務處理、觸發器、并發控制、代數系統等傳統的數據庫技術,一步步地從性能和功能上完善自己。

    從目前XML數據庫的產品情況來看,學術界的實驗系統和市場產品之間有著些許微妙的差別,盡管它們的主流技術是一致的。

    學術界完成的實驗室原型系統一般側重于下面的一些特點:

    ● 專注于查詢性能的提高,對查詢優化的研究較多。為了提高查詢效率,學術界十分重視索引結構的設計,先后提出二十幾種適合于XML數據的索引方式,比如影響很大、簡單易用的三元組索引,并在此基礎上開發出了以結構化聯接為基礎的查詢模式匹配方法。

    ● 強調平臺無關性。在XML數據庫研究的早期,業界曾存在一個爭論:到底將XML數據存儲在關系庫中,還是另外開發存儲XML的物理數據庫。這在一定程度上影響著XML的研究者,在設計索引結構時必須考慮使索引過的XML數據可以存儲在多種數據庫結構中。

    ● 從理論的角度較多地考慮了XML數據庫的模式設計規范化問題。設計了基于鍵的函數依賴推理,在如何優化XML數據庫設計、消除數據冗余和不一致方面有了一些實質上的進展。

    工業界的XML數據庫產品更加強調實用,有著一些與學術界原型系統不盡相同的特點:

    ● 現有的主流XML數據庫產品都在底層提供collection數據結構,以存儲XML元素節點,通過B+樹結構來索引這些元素節點。這一點與關系庫系統的底層處理如出一轍。在collection之上一般還會有一級或兩級索引,以加快查詢處理速度。這一點比平臺無關的實驗原型系統更高效實用。

    ● 市場上的數據庫產品通過引入日志管理,建立了較完善的事務處理機制,這為上層的數據庫應用開發提供了便利。目前的商用XML數據庫一般提供事務處理功能,包括提交、回滾和日志文件。通過提供事務日志機制,紀錄系統執行的每個事務的詳細情況,保證在系統出現問題后可以完全恢復。

    ● 增強了對異構數據源的集成管理。樹型結構的XML數據有其難以管理的一面,但是,XML技術的可擴展性又使得它具有集成異構數據源的強大能力。因此,市場上的XML數據庫產品普遍具有較強的集成多種數據源的功能。這也是當前市場上的XML數據庫產品的一大亮點。

    二.實驗室的原型系統和商用化產品

    最近幾年以來,在學術界和工業界的共同推動下,如雨后春筍般誕生出大量的XML數據庫原型系統和商用產品。

    在Ronald Bourret的《XML Database Products》中一共列了36種XML數據庫產品,大致上可分為三大類型:

    ● 商業類(commercial):如Ipedo、Tamino、Natix、Xyleme等。其中,美國Ipedo公司的Ipedo XML Database和德國Software AG公司的Tamino是其中的佼佼者,成為目前市場上的主流產品。

    ● 研究類(research):如Stanford大學早期開發的Lore等。

    ● 開放源碼類(open source):其中影響較大的是Berkeley DB XML、dbXML、XDB和Xindice。

    需要指出的是, Lore database systems 只是Stanford大學早期針對半結構化數據而開發的數據庫系統。Lore連同其專設語言Lorel都是為半結構化數據而寫的。盡管說XML數據在某種程度上也是一種半結構化數據,但是,兩者之間還是有著一些差別,導致Lore database systems很難成為一種完全意義上的XML數據庫系統。

    事實上,在學術界,真正受到關注的XML數據庫原型系統有三家:密歇根大學安阿伯分校的Timber、西雅圖華盛頓大學的Tukwila和威斯康星大學麥迪遜分校的Niagara。其中,影響最大的是Timber,在該系統的實施過程中,產生了許多有關XML數據庫的新的概念和方法。當然,多倫多大學的Tox也是一個相當不錯的系統,尤其是其出色的索引結構。但是,總體上不如前面的三家有名。

    三.核心技術的進展

    綜合XML數據庫的實驗室原型和商業產品的共性,XML數據庫的核心技術主要包括:

    1.查詢語言

    自從1995年XML技術的研究和開發逐漸升溫以來,形形色色的XML查詢語言不斷問世。比較有代表性的如早期的XML-QL、XQL、UnQL,后來的Quilt、Xpath,以及由Quilt發展而來的XQuery。在W3C的極力推動和學術界、工業界的大力支持下,XQuery逐漸在這些查詢語言中脫穎而出,成為事實上的工業標準。

    XQuery的FLWR語句規范,有著與關系數據庫的SQL完全類似的表達方式,使得它在一般用戶眼里,也變得友好起來。

    而Xpath可以理解為是XQuery的一個子集。Xpath表達式在相關文獻中被證明與查詢模式樹是等價的,這也與學術界推崇的模式樹查詢方式一致,使得實驗室系統可以毫不困難地處理Xpath查詢表達式,并能進行查詢優化。這一點在XML數據庫研究中顯得頗有價值。

    2.XML文檔解析

    在圖1中,將XML文檔載入數據庫時,會經過一個XML數據解析器。數據解析器會依據一定的規則對XML數據進行解析后裝入數據庫。目前的數據解析器一般提供SAX(simple API for XML)和DOM(document object model)兩種方式。

    SAX和DOM是針對XML文檔的兩種不同的應用程序編程接口API。SAX更多地依賴語法制導(syntax driven),而DOM則提供一組功能程序來開發與XML數據相關的應用。

    SAX解析器是邊讀入邊解析,帶有一定的實時性,特別適合于XML流數據的處理。而DOM解析器是待整個文檔均導入內存后才開始解析,在一定程度上受到內存容量的限制。目前的XML數據庫產品均支持這兩種解析方式。

    3.查詢處理

    查詢處理的方式和效率,一直是XML數據庫研究和開發者關注的首要問題。

    如圖1所示,XML數據庫的查詢處理一般是從解析查詢語言(如XQuery)的查詢語句表達式開始的。XML數據庫的查詢解析器將表達式解析為一棵查詢模式樹(有的系統叫做語法樹)。

    假設一個XQuery表達式為:

    book [tittle = ‘XML’] // [ year = ‘2000’]

    它所對應的模式樹如圖2所示,它表示我們要查詢的 book節點滿足下面的條件:

    ● 有一個子節點tittle,它的內容為串值XML;

    ● 它有一個后代節點year,它的內容為串值2000。

    從語義上來說,就是:查找“一本2000年出版的、名為XML的書”。

    接下來就是到XML數據庫中去匹配這棵樹,得到最終的XML結果文檔。

    在如何匹配模式樹的技術上,實驗室原型系統與商業產品之間有著一些差別。

    比如,在Timber中,考慮了一種叫做“結構化聯接”的技術。它的基本思路是將上述的模式樹分解為二元關系序列。而在此之前,也已經將XML文檔庫做了索引處理,文檔中每個元素節點均被標以一個三元組索引,形式為:(文檔標識符,開始位置:結束位置,層號)。

    于是,該查詢模式可以分兩步來完成:在索引過的XML數據庫中匹配上述分解的二元結構關系;將查找到的二元結構匹配結果組裝(stitching)成最終的符合上述查詢表達式的完整文檔。

    結構化聯接技術在2002年被提出并在Timber中實現以后,在學術界引起過較大的反響。自2002年以來不斷有技術上的改進文章出現在數據庫的三大國際會議(VLDB、SIGMOD/PODS、ICDE)上,其中較有影響的成果是隱檢整枝聯接(holistic twig join)技術,可以用相互連接的多棧結構一次性生成查詢結果文檔。

    在商用產品中,由于文檔元素節點均存儲在B+樹結構中,可以直接到底層的數據庫中去查找相關的匹配節點序列,再根據其指針關聯,將結果節點集組裝成結果文檔。

    總的來說,實驗室產品在輸入節點序列較長時效率會較高,尤其是隱檢整枝聯接技術。而商用產品在查詢的文檔較大時更顯優勢。

    在查詢處理階段,實驗室產品做了而商用產品沒做的事情就是模式樹的最小化。它的主要思想就是,模式樹的匹配效率依賴于模式樹的規模(元素節點的多少)。而一般的模式樹均存在一定量的冗余節點,可以通過最小化算法予以去除。

    根據復旦大學數據庫研究中心XML小組的實驗結果表明,在隨機建立的XML查詢模式樹集合中,最小化算法平均可以消除30%的冗余節點。

    當然,模式樹最小化算法的時間復雜度比較高,目前的關注點主要在于時間復雜度的降低上。最新算法的時間復雜度已經降低到低階的多項式時間了。這項技術的實用化是值得期待的。

    4.事務處理和版本控制

    目前的商用XML數據庫一般提供事務處理功能,包括提交、撤回和日志文件。我們知道,事務為數據庫的一組操作,這些操作組成一個邏輯單元,執行時要么全部完成,要么全部不做(do all or do nothing)。XML數據庫通過提供事務日志機制,紀錄系統執行的每個事務的詳細情況,保證在系統出現問題后可以完全恢復。

    事務遵循的ACID性質 (原子性、一致性、獨立性和持久性) 保證了大部分事務處理穩定地運行。

    商用XML數據庫也包含對XML文檔的版本控制功能。使用版本控制,用戶或應用程序可以檢入(check in)或檢出(check out)XML文檔,利用版本號、日期或者標簽獲得以前版本的文檔,以及顯示XML文檔的版本歷史信息。每一個處于版本控制之下的文檔都有自己的歷史信息,紀錄了修改文檔的作者以及時間等。使用者可以根據文檔或用戶或日期來查看整個的版本歷史信息。

    版本控制允許用戶通過查詢更新原信息。通過更新引擎可以注釋、修改和精煉信息。內置的版本系統跟蹤信息的變化,提供這些變化的歷史信息。

    應該說,在事務處理和版本控制機制上,實驗室產品的考慮是不夠的,所提供的事務處理的功能顯得簡單。盡管加州大學洛杉磯分校的數據庫實驗室在XML的版本控制方面有一些突出的成果,但是,目前尚未形成產品。

    還有一個需要說明的是多事務并發控制機制和加鎖協議。這項技術的研發目前剛剛起步。現今的商用XML數據庫只在邏輯層面提供并發加鎖協議,但粒度為整個文檔。隨著單個XML文檔的增大,這個粒度顯然太粗。這一點可能要等待研究界開發出粒度為文檔元素節點的并發協議了。

    5.代數系統和模式規范化

    代數表達式和數據庫模式設計理論曾經是關系數據庫理論的精髓。代數系統成為關系庫查詢優化的重要工具,而范式理論的提出也曾為RDBMS設計優化的庫結構提供了依據。那么,人們不禁要問,在XML數據庫中是否存在相類似的理論和方法?

    由于這兩個問題有一定的難度,注定只能是由學術界的實驗系統先行一步。

    學術界公認的三大實驗系統都設計了相應的代數系統,其中影響最為廣泛的是Timber中實現的TAX(Tree Algebra for XML)。TAX以整個文檔樹作為操作的基本單位,在邏輯層提供選擇、投影、聯接等類似關系庫的9種基本操作和5種附加操作,以匹配模式樹得到實例樹(witness tree)為基本操作方法。在物理層提出7種基本操作實現上述邏輯運算。

    Timber依據TAX對XML查詢語句進行改寫和優化,但是效果并不理想。業界對TAX存在問題的看法是,過分地模仿了關系庫的代數系統而忽略了對XML文檔本身特點的考慮。

    XML模式規范化理論的早期開拓者是賓夕法尼亞大學的樊文飛等人。從定義XML的鍵(key)和函數依賴,到XML和DTD范式,再到基于約束的XML數據庫的模式規范化,XML數據庫的模式規范化理論在穩步地推動著。國內的復旦大學數據庫研究中心等單位也有著不錯的研究進展。在未來兩年內,估計會有較成熟的XML數據庫模式設計理論投入到實驗室產品和商用系統中。

    6.多數據源的集成

    多數據源的集成是數據庫市場對XML數據庫系統提出的要求。從1970年IBM公司的E.F.Codd提出關系數據庫的概念以來,關系數據庫在幾乎所有的應用領域都取得了巨大成功。XML數據庫是一個新事物,它從誕生的那一天起,就面臨著關系數據庫一統天下的局面。有人說,關系數據庫完全戰勝層次和網狀數據庫用了將近20年時間,XML數據庫也會用20年時間戰勝關系數據庫。這種看法并不全面。至少從目前來看,兩者應該各展所長,共同服務于巨大的數據庫市場。

    那么,XML數據庫的優勢在哪呢?用XML技術來進行多數據源的集成就是其中之一。

    從2001年以后,面對多數據源的集成這個傳統關系型數據庫系統做不了的事情,Ipedo等商用數據庫系統將自己的數據庫系統擴展為一個集成平臺,它可以將關系數據庫系統、MIS系統、OA系統、文件系統等集成在同一個平臺上,給用戶提供統一的界面。如Ipedo公司的Ipedo XML智能平臺,為用戶提供XML View來統一訪問底層的異構數據。人們也從這一點上進一步看到了XML技術的力量。

    四.未來的技術發展方向

    經過近5年業界同仁的共同努力,XML數據庫技術取得了很大的進展,已經有若干種XML數據庫產品問世并服務于社會生活的各個方面。但是,XML數據庫的事業才剛剛開始,還有很多問題等待著我們去解決。

    未來幾年,XML數據庫技術有可能在下述方面取得進展:

    ● 異構數據源的集成。XML數據庫對多數據源的集成,是對XML技術可擴展性這一長處的極好發揮。但是,就目前的集成程度和在應用層上所提供的功能來看還是遠遠不夠的。如何從對數據的集成過渡到對系統的集成,從而在遠景目標上實現類似于網格計算(grid computing)概念的系統,恐怕是XML數據庫工作者的核心任務之一。

    ● 底層索引結構。目前的商用XML數據庫系統優于實驗室原型系統的特點之一就是其底層的索引結構。但是,現有的商用XML數據庫的底層索引結構一般都是B+樹。雖然B+樹索引是一種成熟的索引結構,但是,研究結果顯示,在XML數據庫中,它的性能表現并不是最好的。學術界已經開發出了若干種適用于XML數據的索引結構,如XR樹、XB樹等,需要XML數據庫工作者來進一步關注。

    ● 并發加鎖協議。在現有的XML數據庫系統中,加鎖的粒度是整個文檔,事務并發的層次也在文檔一級。隨著應用級文檔的日益增大,這個粒度在一定程度上將會成為系統效率的瓶頸。如何通過邊鎖(edge lock)機制來實現元素節點級粒度的加鎖?這一工作現在吸引了不少研究者的目光,而且,上述的鎖協議是在邏輯層,如何將它映射到底層的B+樹索引(或者XR樹索引)上,也是必須要做的一件事情。

    ● XML模式規范化是一個值得關注的方向。一旦取得突破,將會使我們可以像在關系庫中那樣方便地設計XML數據庫的結構,消除數據的冗余和不一致現象。目前,這一領域已經成為學術界關注的熱點。但是,完整的、為業界所公認的理論體系尚未建立。



    Author: orangelizq
    email: orangelizq@163.com

    歡迎大家訪問我的個人網站 萌萌的IT人
    posted on 2009-12-09 17:02 桔子汁 閱讀(383) 評論(0)  編輯  收藏 所屬分類: SOA
    主站蜘蛛池模板: 久久精品国产亚洲av麻豆蜜芽| 日本免费A级毛一片| 蜜桃传媒一区二区亚洲AV| 免费国产a理论片| 国内精品一级毛片免费看| 亚洲一区二区三区免费观看| 成年女人免费v片| 亚洲一区二区三区自拍公司| 亚洲视频免费一区| 豆国产96在线|亚洲| 999zyz**站免费毛片| 好男人www免费高清视频在线| 九月婷婷亚洲综合在线| 亚洲国产成人精品不卡青青草原| 亚洲熟妇AV日韩熟妇在线| 色爽黄1000部免费软件下载| 久久久精品免费视频| 国产又黄又爽又猛的免费视频播放 | 亚洲国产精品成人精品无码区在线 | 亚洲欧洲尹人香蕉综合| 亚洲丶国产丶欧美一区二区三区 | 麻豆亚洲AV永久无码精品久久| 亚洲日韩AV无码一区二区三区人| 精品人妻系列无码人妻免费视频 | 国产成人涩涩涩视频在线观看免费| 亚洲乱码精品久久久久..| 亚洲AV一二三区成人影片| 中文在线日本免费永久18近| 毛片免费观看网址| 蜜芽亚洲av无码精品色午夜| 一进一出60分钟免费视频| 免费人成视频在线| 久久精品国产亚洲AV高清热| h视频免费高清在线观看| 成年大片免费视频| 亚洲同性男gay网站在线观看| 女同免费毛片在线播放| gogo全球高清大胆亚洲| 亚洲另类无码专区首页| 国产精品久久永久免费| 久久国产亚洲电影天堂|