專利名稱:一種純擴展標記語言數據庫的查詢管理方法及其系統的制作方法
技術領域:
本發明涉及一種純擴展標記語言數據庫的查詢管理方法及其系統,屬于計算機純擴展 標記語言數據庫的査詢管理技術領域。
背景技術:
為了克服HTML技術和SGML技術所存在的不足,XML技術得以出現。XML的全稱是 extensible Markup Language (以下簡稱擴展標記語言),它是一種專門為互聯網所設計 的標記語言。XML的重點是管理信息的數據本身,數據的顯示交給其他技術解決。可以說, XML技術從誕生之日就預示了它輝煌的未來,特別是隨著近些年Web Service的蓬勃發展, XML越來越多地活躍在數據交換和存儲領域。
目前,XML已經成為互聯網上數據表示和數據交換的新標準,其可以創建標記和文法 結構,以便于結構化地描述特定領域的信息,從而提供一種處理數據的最佳方式。無論在 數據表示和存儲方面,還是在數據的傳輸和處理方面,XML都有獨特的優勢。首先,XML 技術實現不同數據源之間的數據交換。XML和Java—樣具有跨平臺特性。XML的跨平臺特 性在于它提供了一種不同的數據源之間進行數據交換的公共標準,是一種公共的交互平 臺。其次,XML技術實現了一份數據多種顯示。XML標記語言將信息的數據部分和信息的 樣式部分進行了區分。面對一個XML文檔,只知道該XML文檔存放的是什么數據,而沒有 辦法決定這些數據將來的顯示樣式。也就是說一個XML文檔并不決定數據的顯示樣式,數 據的顯示部分是由其他語言來解決的,這就給我們機會來按照自己的意愿給一份數據隨意 添加多種樣式。另外,XML技術實現了數據的分布式處理。XML是一種針對互聯網而設計 的標記語言, 一個保存有數據的XML文檔可以在互聯網自由傳送。當XML格式的數據被發 送給客戶端后,客戶可以通過應用軟件從XML文檔中提出這些數據,進而對它進行編輯和 處理,而不僅僅是顯示結果。XML文檔對象模型(DOM)允許用腳本和其他編程語言處理 XML格式的數據。而原來的HTML標記語言,即便是對一個字符的更改也都必須在服務器 上進行,從而導致整個頁面數據全部重新傳輸。因此,XML數據模型的一個優點就是將原 來必須由服務器端處理的許多負載都分配到了客戶端處理,從而降低了服務器的負擔,優 化了服務器的性能。述有,XML技術簡單易學且功能強大。XML和HTML—樣簡單易學,同 時它還繼承了 SGML的強大功能。整個XML 1. 0規范全部打印出來也不超過40頁,而SGML 的正式規范打印出來將超過500頁。
需要強調的是,XML技術以樹型結構組織數據,而傳統的數據庫采用二維表型的數據 結構,從而XML文檔難以存儲到傳統的數據庫中。如何管理和存儲XML文檔成為產業界普遍關注的問題之一。
XML數據庫是一個XML文檔的集合,這些文檔是持久的并且是可操作的。目前XML數 據庫有三種類型 一種稱為XML Enabled Database (XEDB),即能處理XML的數據庫。其 特點是在原有的數據庫系統上擴充對XML數據的處理功能,使之能適應XML數據存儲和査 詢的需要。能處理XML的數據庫的主要思路在于,將XML文檔映射并存儲到關系數據庫系 統中。這種方法的缺點是當前的關系數據庫系統與XML的負載是不協調的,而且通過諸如 結構化査詢語言SQL (Structured Query Language)的接口訪問XML數據會招致與存儲 無關的額外負擔。另一種稱為Native XML Database (NXD),即純XML數據庫。其特點是 以自然的方式處理XML數據,以XML文檔作為基本的邏輯存儲單位。第三種稱為Hybrid XML Database (HXD),即混合XML數據庫。根據應用的需求,可以視其為XEDB或NXD的數據 庫,比較典型的例子是0zone。可以說,能處理XML的數據庫和混合XML數據庫是將XML 數據査詢轉化成為原有數據庫的查詢表達并進行查詢處理,然后將査詢結果轉化為XML數 據。
能處理XML的數據庫和混合XML數據庫存在如下優點用戶不需要將傳統數據庫中原 有數據重新移植到新系統中,只是稍加改變就可以支持XML應用;傳統數據庫技術很成熟; 傳統數據庫知識和經驗依然有效,用戶不需要為了應用XML而再去學習一套新的數據庫技 術。前者存在如下缺點XML文檔存入到數據庫時需要"打碎",取出時需要"組合",耗 時而且可能出現錯誤,這個問題被稱為"阻抗失配";XML文檔和數據庫之間的模式轉換 復雜;現有數據庫對以文檔為中心、格式復雜的XML文檔處理性能較差;所采納的XML技 術標準比較落后。純XML數據庫存在如下優點XML文檔存取無需模式轉換,存取速度快; 對格式復雜的XML文檔有較好的支持;支持大部分的最新的XML技術標準。后者存在如下 缺點在傳統數據庫技術方面比較薄弱,沒有經過時間的考驗;知識比較新,相應的支持 人員和文檔資源都比較少;應用范圍僅局限在XML應用領域中。因此,純XML數據庫具有 明顯優點,得到了產業界的普遍關注。
純XML數據庫的結構如圖1所示,其中的查詢管理器和數據文件管理器是純XML數據 庫體系結構的核心。由于査詢是數據庫最為頻繁的操作,因此在純XML數據庫的研究中, XML査詢處理器是研究的熱點。XML査詢處理器的主要功能在于査詢分解,查詢優化和査 詢執行等,主要目的在于查詢求解。目前,純XML數據庫的査詢求解技術包括基于XML 文檔索引或者結構索引的導航遍歷技術;基于XML文檔關系分析的結構連接技術;基于 XML文檔序列表示的序列匹配技術等。而上述査詢求解技術的實現,需要借助于一定的數 據文件管理技術。
基于XML文檔索引或者結構索引的導航遍歷技術主要通過文檔索引或者結構索引的 方式進行査詢求解,文檔索引主要采用倒排表或者B+樹的方式實現,結構索引主要通過 從XML文檔數據中査找相應的索引的方式實現。基于XML文檔關系分析的結構連接技術對 XML文檔樹中的每個節點賦予一個或者多個文檔關f數據,上述文檔關系數據惟一地標識
5該節點在文檔樹中的位置,基于該文檔關系數據判斷不同節點之間的關系,然后基于該關 系實現結構連接技術。基于XML文檔序列表示的序列匹配技術通過將XML文檔樹轉化成有 序序列的方式實現査詢,序列是用類似字符串匹配的方法求解用戶査詢的基本條件。
發明內容
本發明的目的是提出一種純擴展標記語言數據庫的査詢管理方法及其系統,在已有的 基于XML文檔關系分析的結構連接技術中,對于純XML數據庫中基于文檔關系分析的結構 連接査詢器以及與之對應的數據文件管理器進行研究,以期實現純XML數據庫的高速查詢 和數據管理。
本發明提出的純擴展標記語言數據庫的査詢管理系統,含有-
數據文件管理模塊,用于對數據進行處理,將擴展標記語言數據記錄存儲在頁的各個 槽里,每頁都有惟一的頁號,而頁里的每一個槽都有惟一的槽號,可以用"頁號+槽號" 惟一地定位一條記錄的位置,存放同一個擴展標記語言文檔數據的頁用頁頭的指針連接起 來,構成一個雙向鏈表,節點存儲結構中包含code域,用于被關系分析單元賦予code值; .査詢操作模塊,用于實現査詢操作,含有 關系分析單元,用于進行節點間關系的分析,
結構連接單元,用于執行結構連接操作。
上述純擴展標記語言數據庫的查詢管理系統中,所述的關系分析單元用于獲得節點之
間的關系,用于實現
第一步定義素數數列{"},即P, =2, P2 :3…;
第二步給擴展標記語言文檔樹T的根節點C0de域賦值為1;
第三步給擴展標記語言文檔樹T的第一層子節點的code域自左至右賦值為P,, P2, P3…;
第四步給擴展標記語言文檔樹T的其他節點code域賦值設某節點P的最大素數 因子為Pk,則其子節點自左至右依次為P.codeXPk, P.codeXPk+l, P. code X Pk+2…。
上述純擴展標記語言數據庫的査詢管理系統中,所述的結構連接單元給節點賦予用于
査找所有的祖先后裔對,實現結構關系的査找,用于實現
第一步對文檔樹進行分層并且得到存儲桶l;
第二步在存儲桶1中的AList的節點加以標識,并且被稱為節點集AList'; 第三步在存儲桶l中的DList的節點的祖先加以標識,并且被稱為節點集AList"; 第四步節點集AList'和AList''的交集就是符合結構連接條件的祖先; 重復上述步驟,得到存儲擴展標記語言文檔樹中深度為3, 4, ..., n的節點的存儲桶,
從而得到所有符合結構連接條件的祖先,并將査詢結果輸出。本發明提出的純擴展標記語言數據庫的査詢管理方法,包括如下步驟
(1) 數據文件管理步驟對數據進行處理,將擴展標記語言數據記錄存儲在頁的各 個槽里,每頁都有惟一的頁號,而頁里的每一個槽都有惟一的槽號,可以用"頁號+槽號" 惟一地定位一條記錄的位置,存放同一個擴展標記語言文檔數據的頁用頁頭的指針連接起 來,構成一個雙向鏈表,節點存儲結構中包含code域,用于被關系分析單元賦予code值;
(2) 査詢操作步驟用于實現查詢操作,其含有 關系分析步驟,用于進行節點間關系的分析; 結構連接步驟,用于執行結構連接操作。
上述純擴展標記語言數據庫的査詢管理方法中,所述的關系分析步驟用于獲得節點之 間的關系,包括
第一步定義素數數列(P。h即P, =2, P2 :3…;
第二步給擴展標記語言文檔樹T的根節點C0de域賦值為1;
第三步給擴展標記語言文檔樹T的第一層子節點的code域自左至右賦值為P,, P2, P3…;
第四步給擴展標記語言文檔樹T的其他節點code域賦值設某節點P的最大素數 因子為Pk,則其子節點自左至右依次為P.codeXPk, P.codeXPk+1, P. code X Pk+2…。
上述純擴展標記語言數據庫的査詢管理方法中,所述的結構連接步驟給節點賦予用于 査找所有的祖先后裔對,實現結構關系的查找,包括
第一步對文檔樹進行分層并且得到存儲桶l;
第二步在存儲桶l中的AList的節點加以標識,并且被稱為節點集AList';
第三步在存儲桶l中的DList的節點的祖先加以標識,并且被稱為節點集AList";
第四步節點集AList'和AList''的交集就是符合結構連接條件的祖先;
重復上述步驟,得到存儲擴展標記語言文檔樹中深度為3, 4, ..., n的節點的存儲桶, 從而得到所有符合結構連接條件的祖先,并將查詢結果輸出。
本發明提出的純擴展標記語言數據庫的査詢管理方法及其系統,其優點是具有較高的 時間性能,能夠大幅度提高對純擴展標記語言數據庫的查詢效率,并且便于實現和應用。
圖l:純XML數據庫的結構示意圖; 圖2:純XML査詢處理系統的結構圖; 圖3:純XML數據庫的分槽頁結構圖; 圖4:純XML數據庫關系分析方法的示例圖 圖5:純XML數據庫節點存儲結構的示意圖 圖6:純XML數據庫節點存儲結構的示例圖 圖7:純XML數據庫結構連接方法的步驟一圖8:純XML數據庫結構連接方法的步驟二; 圖9:純XML數據庫結構連接方法的步驟三; 圖10:純XML數據庫結構連接方法的步驟四。
具體實施例方式
本發明提出的純擴展標記語言數據庫的查詢管理方法及其系統中,純XML數據庫的結
構示意圖如圖1所示。其中查詢管理系統主要包括數據文件管理模塊和查詢操作模塊兩部
分,其中首先由數據文件管理模塊對XML數據進行處理,然后查詢操作模塊實現查詢,查 詢操作模塊包括關系分析單^和結構連接單元,分別進行XML節點間關系的分析以及結構 連接操作,如圖2所示。
數據關系模塊將XML數據記錄存儲在頁的各個槽里,即頁的結構為分槽的頁結構,如 圖3所示。文件中,每一頁都有惟一的頁號,而頁里的每一個槽都有惟一的槽號,可以用 "頁號+槽號",即用RID (Row IDentifier)來惟一地定位一條記錄的位置。 一條記錄不 能跨頁存儲,而對于非常大的文本結點還可以采用B樹結構在多個頁上進行組織數據。考 慮到XML數據的更新,每個頁里并不是寫滿數據,而是要預留一部分存儲空間。每個頁的 空閑空間的多少都記錄在相關的控制頁里。存放同一個XML文檔數據的頁用頁頭的指針連 接起來,構成一個雙向鏈表,稱為頁鏈。其中節點存儲結構中包含code域,用于被關系 分析單元賦予code值,從而實現查詢,如圖5、 6所示。
查詢操作模塊在對節點關系進行分析的基礎上,執行結構連接操作,從而獲得査詢結 果。其包括關系分析單元和結構連接單元。
關系分析單元用于獲得節^之間的關系,其執行如下操作-
第一步定義素數數列bJ,即P,2, P廣3…; 第二步給XML文檔樹T的根節點code域賦值為1;第三步給XML文檔樹T的第一層子節點的code域自左至右賦值為P" P2, P3…; 第四步給XML文檔樹T的其他節點code域賦值設某節點P的最大素數因子為Pk, 則其子節點自左至右依次為P.codeXPk, P.codeXPk+1, P. codeXPk+2…。 該關系分析轉化的示例如圖4所示。
結構連接單元給節點賦予用于査找所有的祖先后裔對,從而實現結構關系的查找。首 先,分層并且得到存儲桶1;接著,在存儲桶1中的AList的節點都用格狀圖案加以標識, 并且被稱為節點集AList';然后,在存儲桶1中的DList的節點的祖先都用框加以標識, 并且被稱為節點集AList";之后,節點集AList'和AList''的交集就是符合結構連接 條件的祖先;同理,得到存儲XML文檔樹中深度為3, 4,…,n的節點的存儲桶,從而得 到所有符合結構連接條件的祖先,實現査詢。該結構連接單元的操作如圖7 — 10所示。
本發明提出的的純XML數據庫的查詢管理方法和査詢管理系統具有較高的時間性能, 能夠大幅度提高查詢效率,并且便于實現和應用。
權利要求
1、一種純擴展標記語言數據庫的查詢管理系統,其特征在于,該系統含有數據文件管理模塊,用于對數據進行處理,將擴展標記語言數據記錄存儲在頁的各個槽里,每頁都有惟一的頁號,而頁里的每一個槽都有惟一的槽號,可以用“頁號+槽號”惟一地定位一條記錄的位置,存放同一個擴展標記語言文檔數據的頁用頁頭的指針連接起來,構成一個雙向鏈表,節點存儲結構中包含code域,用于被關系分析單元賦予code值;查詢操作模塊,用于實現查詢操作,含有關系分析單元,用于進行節點間關系的分析,結構連接單元,用于執行結構連接操作。
2、 如權利要求1所述的純擴展標記語言數據庫的查詢管理系統,其特征在于其中所述的關系分析單元用于獲得節點之間的關系,用于實現 第一步定義素數數列(PJ,即P, =2, P2 =3 ; 第二步給擴展標記語言文檔樹T的根節點C0de域賦值為1;第三步給擴展標記語言文檔樹T的第一層子節點的code域自左至右賦值為P" P2, P3…;第四步給擴展標記語言文檔樹T的其他節點C0de域賦值設某節點P的最大素數因子為Pk,則其子節點自左至右依次為P.codeXPk, P.codeXP^, P. codeXPk+2…。
3、 如權利要求1或者2所述的純擴展標記語言數據庫的查詢管理系統,其特征在于 所述的結構連接單元給節點賦予用于査找所有的祖先后裔對,實現結構關系的査找,用于實現第一步對文檔樹進行分層并且得到存儲桶l;第二步在存儲桶1中的AList的節點加以標識,并且被稱為節點集AList'; 第三步在存儲桶l中的DList的節點的祖先加以標識,并且被稱為節點集AList"; 第四步節點集AList'和AList''的交集就是符合結構連接條件的祖先; 重復上述步驟,得到存儲擴展標記語言文檔樹中深度為3, 4, ..., n的節點的存儲桶, 從而得到所有符合結構連接條件的祖先,并將查詢結果輸出。
4、 一種純擴展標記語言數據庫的査詢管理方法,其特征在于,該方法包括如下步驟 (1)數據文件管理步驟對數據進行處理,將擴展標記語言數據記錄存儲在頁的各個槽里,每頁都有惟一的頁號,而頁里的每一個槽都有惟一的槽號,可以用"頁號+槽號" 惟一地定位一條記錄的位置,存放同一個擴展標記語言文檔數據的頁用頁頭的指針連接起來,構成一個雙向鏈表,節點存儲結構中包含code域,用于被關系分析單元賦予code值; (2)査詢操作步驟用于實現査詢操作,其含有 關系分析步驟,用于進行節點間關系的分析; 結構連接步驟,用于執行結構連接操作。
5、 如權利要求4所述的純擴展標記語言數據庫的查詢管理方法,其特征在于其中所述的關系分析步驟用于獲得節點之間的關系,包括 第一步定義素數數列{"},即P, =2, P2 :3…; 第二步給擴展標記語言文檔樹T的根節點COde域賦值為1;第三步給擴展標記語言文檔樹T的第一層子節點的code域自左至右賦值為P,, P2, P3…;第四步給擴展標記語言文檔樹T的其他節點C0de域賦值設某節點P的最大素數因子為Pk,則其子節點自左至右依次為P.codeXPk, P.codeXPk+1, P. codeXPk+2…。
6、 如權利要求4或者5所述的純擴展標記語言數據庫的查詢管理方法,其特征在于 所述的結構連接步驟給節點賦予用于查找所有的祖先后裔對,實現結構關系的査找,包括:第一步對文檔樹進行分層并且得到存儲桶l;第二步在存儲桶l中的AList的節點加以標識,并且被稱為節點集AList'; 第三步在存儲桶l中的DList的節點的祖先加以標識,并且被稱為節點集AList,'; 第四步節點集AList'和AList',的交集就是符合結構連接條件的祖先; 重復上述步驟,得到存儲擴展標記語言文檔樹中深度為3, 4,…,n的節點的存儲桶, 從而得到所有符合結構連接條件的祖先,并將查詢結果輸出。
全文摘要
本發明涉及一種純擴展標記語言數據庫的查詢管理方法及其系統,屬于計算機純擴展標記語言數據庫的查詢管理技術領域。包括數據文件管理模塊,用于對數據進行處理,其將XML數據記錄存儲在頁的各個槽里,每頁都有惟一的頁號,而頁里的每一個槽都有惟一的槽號,用“頁號+槽號”惟一地定位一條記錄的位置,存放同一個XML文檔數據的頁用頁頭的指針連接起來,構成一個雙向鏈表,節點存儲結構中包含code域,用于被關系分析單元賦予code值;查詢操作模塊,用于實現查詢操作,含有關系分析單元和結構連接單元,用于執行結構連接操作。本發明的查詢管理方法和查詢管理系統具有較高的時間性能,能夠大幅度提高查詢效率,并且便于實現和應用。
文檔編號G06F17/30GK101504660SQ20091007930
公開日2009年8月12日 申請日期2009年3月6日 優先權日2009年3月6日
發明者馮建華, 鵬 張, 李國良 申請人:清華大學