新四季網

一種xml文檔到資料庫的映射方法

2023-05-31 21:08:41

專利名稱:一種xml文檔到資料庫的映射方法
技術領域:
本發明涉及一種XML文檔映射方法,尤其涉及一種XML文檔到資料庫的映射方法, 屬於計算機數據處理技術領域。
背景技術:
XML (extensible Markup Language,可擴展標記語言)具有平臺無關性、自描述性、可擴展性、簡單易於處理等優點,其相關技術的成熟使之成為hternet數據表示和交換的標準。XML在Web服務、電子商務和數據集成等諸多領域具有廣泛應用。基於關係資料庫技術的的存儲應用十分普遍,但XML數據存儲與關係資料庫存儲的數據轉換是當前沒有解決的核心技術問題。目前,基於關係的XML存儲研究受到國內外研究者的重視,發表了一些重要的研究成果,但是總的來說根據存儲時是否使用XML模式(DTD或XML khema)可以分為以下兩類結構映射方法和模型映射方法。結構映射方法是在進行關係資料庫的XML存儲時,先根據XML模式(或挖掘出XML 文檔中固有的模式信息)生成相應的關係模式,然後再根據生成的關係模式對XML文檔進行解析分解並將其存放於相應的數據表中。結構映射方法中比較有影響的主要有STORED方法、DTD方法、CPI方法和p_schema方法。模型映射方法是將任何XML數據都存放在有固定關係模式的資料庫中,而不考慮 XML文檔的模式,其本質就是存儲XML文檔的結構信息。按XML數據的存儲方式不同,模型映射方法主要有基於邊的方法和基於節點的方法兩種。其中,基於邊的方法中比較有影響的主要有Edge方法和Xparent方法;基於節點的方法中比較有影響的主要有)(Rel方法。 與結構映射方法相比,模型映射方法具有以下三個優點⑴支持任何靜態(XML模式不變) 或動態(XML模式不斷變化)的XML數據存儲;⑵支持任何格式良好的而沒有XML模式的 XML數據存儲;⑶不需要對資料庫模型進行任何擴展就可以支持XML的存儲。以上關於XML存儲的研究所提出的方法多種多樣,但都不同程度的存在著一些問題。第一種結構映射方法對XML文檔的格式要求過於嚴格,耗費大量的數據空間,沒有考慮資料庫存儲及查詢方面的性能等因素;而第二種模型映射方法中插入節點後需要重新標識,動態更新非常困難,提取父-子和祖先-後代節點關係也很很麻煩。此外,模型映射方法中的基於邊的方法不能有效地處理正則路徑表達式查詢和XML結構查詢,在查詢過程中需要對表進行大量連接操作,因而效率特別低;基於節點的方法,例如)(Rel模型,則佔用了大量的存儲空間。申請號為PCT/US2002/030783的國際專利申請公開了一種將XML模式映射到對象關係資料庫系統的方法,該方法首先將XML模式註冊到資料庫系統中,然後將註冊的XML模式映射為資料庫系統所支持的模式,最後將符合所述XML模式的XML文檔存儲到資料庫系統中。此外,申請號為200410073869. 5的中國專利也申請公開了一種基於模式的XML存儲方法,該方法依據XML文檔的模式信息,選取了該模式定義的特定節點作為記錄節點,把輸入的XML文檔劃分成一個一個記錄,並記錄其類型,對得到的記錄按類型進行分類,類型相同的記錄存儲在一起,最終將XML文檔映射到了關係資料庫表中。採用這兩種方法,映射後的XML文檔佔用的存儲空間相對較小並且查詢效率得到一定提高。但這兩種方法都屬於結構映射方法,是基於模式的,不同XML文檔的模式很可能有差別,對這些模式信息的提取和管理本身就是一個極其繁瑣的問題。在映射過程中,關係表不是預定義的,而且產生表的數量也不確定。如果XML的嵌套深度很大,可能產生大量的關係表。此外,XML定義的元素、 屬性順序信息在映射後一般不予以保證,並且注釋、處理指令等信息也有可能被遺棄。綜上所述,目前廣泛採用的結構映射方法以及傳統的模型映射方法都不同程度的存在著一些缺陷,因此都不能較好的解決XML文檔到關係資料庫映射這一問題。

發明內容
本發明的目的是針對上述現有XML映射方法存在的問題和不足之處,鑑於模型映射方法具有的優勢,提出一種不僅可以顯著節省存儲空間以及提高查詢效率,並且動態更新十分方便的XML文檔到資料庫的映射方法。為達到上述目的,本發明XML文檔到資料庫的映射方法步驟如下
步驟1、建立有序標識樹一根據XML文檔節點結構,將XML文檔映射成對應的有序標識樹。通常,所述有序標識樹由按祖先後裔順序連接的元素節點(元素節點可以包含子元素節點)、與葉節點連接的文本值、以及與相應元素節點連接的屬性節點構成,給XML文檔節點 (元素和屬性)賦予唯一的標識。這樣,可以對節點進行如先序、中序或後序遍歷。步驟2、在資料庫中設置主、從表——根據步驟1所建立的有序標識樹,在資料庫中設置存儲基於文檔結構信息的主表和存儲基於文檔內容的從表。即這兩個表分別為 documents主表和tags從表,基於文檔本身結構信息的存儲放在documents表,基於文檔內容的存儲放在tags表。所述主表宜由用於標記XML文檔的主鍵欄位和用於以編碼字符串描述該文檔節點結構的文本欄位構成。即主表的結構可以表示為documents (doc_id,doc_structure)。 其中doc_id是唯一標識的主鍵欄位,由每個文檔本身產生來標記該文檔;doC_StruCture 是包含編碼字符串的大文本欄位,用來描述文檔結構,文檔節點結構的任何變化都映射在這個欄位中。所述從表宜由用於連接主表的外鍵欄位、用於標記主鍵欄位的主鍵標識欄位、 用於標記文檔內容名或屬性的名欄位,以及用於標記文檔內容的文本欄位構成。即從表的結構可以表示為 tags(doc_id, tag_id, tag_name, tag_value)。其中doc_id 是連接 documents表的外鍵,反映主從表間的關係;tag_id是每個標記產生的主鍵標識欄位;tag_ name是標記名或屬性名欄位;tag_ValUe是標記屬性的文本欄位。步驟3、XML文檔映射到資料庫——將XML文檔的有序標識樹逐項分別映射到資料庫相應的主表和從表對應的欄位中,從而完成XML文檔到資料庫的映射。上述映射算法可以採用W3C文檔對象模型DOM (Document Object Model,D0M)表示內存中的XML文檔,建立一個遍歷XML文檔的棧後,以相反的順序把XML文檔映射到關係資料庫主表和從表的各欄位元素壓入棧,以便保留它們在d0C_strUCtUre欄位裡的順序。歸納起來,本發明與現有技術相比,具有以下顯著優點
1.存儲空間佔用少。由於本方法將XML文檔僅映射為兩個關係資料庫表,且主表中存儲XML文檔的結構信息為字符串形式,與其它方法相比,較大程度節省了存儲空間。2.查詢效率高。當對XML文檔進行查詢時,首先將對XML文檔的查詢語句轉化為對關係資料庫表的查詢語句SQL,然後採用SQL對關係表查詢時,只需要做一下字符串匹配操作來判斷節點的父子關係,而不需要對大量的關係表進行頻繁的連接操作,因此顯著提高了查詢效率。3.動態更新容易。如果增加子樹節點(元素和屬性),僅僅是在字符串的合適位置做插入操作即可,而XML文檔原有的標識不需要更改,因此動態更新非常容易。4.通用性強。由於最終依據建立的有序標記樹來建立資料庫表,因此不僅適用於 XML文檔數據,而且還適用於任何樹狀數據結構,通用性較強。


下面結合附圖對本發明作進一步的說明。圖1為本發明實施例一的XML文檔; 圖2為圖1中XML文檔的樹形示意;
圖3為圖IXML文檔到關係資料庫映射算法示意圖; 圖4為圖2對應的documents表; 圖5為圖2對應的tags表; 圖6為插入的XML文檔片段; 圖7為圖6等價的tags表記錄片段。
具體實施例方式為使本發明的目的、優點以及技術方案更加清楚明白,以下通過具體實施例,並結合附圖,對本發明進一步詳細說明。步驟1、建立有序標識樹。對於圖1中的XML文檔,圖2給出了相應的樹形結構。根據XML文檔節點的結構,將XML文檔映射成對應的有序標識樹,該有序標識樹由按祖先後裔順序連接的元素節點(元素節點可以包含子元素節點)、與葉節點連接的文本值、以及與相應元素節點連接的屬性節點構成。給XML文檔節點(元素和屬性)賦予唯一的標識。可以對節點進行如先序,中序或後序遍歷。XML文檔D可以表示為一棵有序標識樹T= (V, ν0, Σ,type, tag, val,彡),其中 V是XML節點的集合;vO e V是樹的根節點;有窮字母表Σ是文檔D的元素和屬性名稱組成的集合;函數type:V— {elem, attr, text}確定節點類型,type (v) =elem若ν為元素, type (ν) =attr 若 ν 為屬性,type (ν) =text 若 ν 為文本;Ve= {ν | ν e V Λ type (ν) =elem} 表示元素節點集合,Va={v|v e V Λ type (ν) =attr}表示屬性節點集合, Vt={v|v e V Λ type (ν) =text}表示文本節點集合;函數tag:Ve U Va—Σ返回元素或屬性節點的名稱;函數val =Va U Vt — str返回屬性或文本節點的值,str是XML文檔中所有合法字符串的集合。二元關係< e V2定義XML文檔順序,在文檔D中如果節點u出現在ν 之前或u=v,則(U, v) e彡或記為U彡V。此邏輯數據模型只定義了構成XML文檔的主要數據元素、屬性和文本,而忽略處理指令、注釋等次要數據,因此V=Ve U Va U Vt0元素節點可以有0個、1個或多個子元素節點,子元素節點的類型可以是元素、屬性或文本;屬性和文本節點沒有子元素節點。T中每個元素和屬性節點都被賦予唯一的標識,稱為節點id。對於任意ν e V,其節點id記作 id (ν)。節點集合可以表示為節點id的集合。根據定義1可以寫出上述XML文檔的邏輯數據模型T= (V, ν0, Σ , type, tag, val,彡),其中
¥={100, IOli 114}; VO=IOOi
Σ= {pub, book, year, title, price, author, id, sex};
type(l00) =elem, type (102)=ati:r, type (104)二text,…;
tag(IOO)=Pubj tag(103)=title,…;
val (102)二 「2008 」, val (104)=25. 50,…;
<={(100,101), (101,102),-},
步驟2、在資料庫中建立主、從表——根據步驟1所建立的有序標識樹,在資料庫中設置存儲基於文檔結構信息的主表和存儲基於文檔內容的從表。即這兩個表分別為 documents主表和tags從表,基於文檔本身結構信息的存儲放在documents表,基於文檔內容的存儲放在tags表。所述主表由用於標記XML文檔的主鍵欄位和用於以編碼字符串描述該文檔節點結構的文本欄位構成。即主表的結構可以表示為documents (doc_id, doc_structure)。其中doc_id是唯一標識的主鍵欄位,由每個文檔本身產生來標記該文檔;doC_StruCture是包含編碼字符串的大文本欄位,用來描述文檔結構,文檔結構的任何變化都應該映射在這個欄位中。所述從表由用於連接主表的外鍵欄位、用於標記主鍵欄位的主鍵標識欄位、用於標記文檔內容名或屬性的名欄位,以及用於標記文檔內容的文本欄位構成。即從表的結構可以表不為 tags (doc_id, tag—id,tag—name,tag—value)。其中doc—id 是連接 documents 表的外鍵,反映主從表間的關係;tag_id是每個標記產生的主鍵標識欄位;tag_name是標記名或屬性名欄位;tag_ValUe是標記屬性的文本欄位。步驟3、XML文檔映射到資料庫——將XML文檔的有序標識樹逐項分別映射到資料庫相應的主表和從表對應的欄位中,從而完成XML文檔到資料庫的映射。其中,本實施例主表doc_structure欄位的規則如下 ⑴doC_StruCture欄位由一系列長序列相關鍵組成;
⑵每個鍵以字母表中字母為開始,元素用「T」,屬性用「A」,必須依照順序來定界鍵。 字母後面緊跟著一個數值型數字代表tag_id ;
(3)如果元素中有一些屬性,那麼這個鍵在doC_StruCture中的標識將由下面的一些鍵定義這些屬性。(4)如果元素中含有一些子元素,那麼這些子元素將由尖括號括起來的鍵字符串表不。根據上述映射規則,本映射算法可以採用W3C文檔對象模型D0M(Document Object Model,DOM)表示內存中的XML文檔,建立一個遍歷XML文檔的棧後,以相反的順序把XML文檔映射到關係資料庫主表和從表的各欄位元素壓入棧,以便保留它們在d0C_StrUCtUre欄位裡的順序。該映射算法的詳細描述如圖3所示。通過上述算法,XML文檔的所有結構信息以及節點信息都被映射到了關係資料庫表中。為了更詳細的闡述上面介紹的映射算法,結合圖1和圖2給出具體的算法示例。本實施例中,樹裡的每個節點(元素和屬性)標識假定按照先序遍歷的。經過轉換之後,這個文檔將在documents表裡有一條記錄顯示,如圖4中documents表所示的doc_id為50,圖5 中tags表包含文檔內容的所有記錄。此時文檔對應的doC_StruCture欄位如下T100<T1 01Α102Τ108Α109<Τ110Τ111Τ112Α113Α114 ο根據上述方法能很容易保持文檔的結構,例如要刪除id為101的作者的sex屬性,這個屬性是A107,所需做的僅是簡單的從d0C_strUCtUre字符串中刪除子串A107操作。 假設需要在已經存在的標記之間新增一個book標記,僅僅是在上面的字符串的合適位置做插入操作即可,如新增一本書其結構如圖6所示,相應的tags表的記錄片段如圖7所示, 其等價的鍵字符串是T150A151。這個新的子串將在合適的位置被插入到doc_ structure,來保留文檔的原先次序。此時doc_structure欄位將變成T100<T101A102 T150A151T108A109>。除上述實施例外,本發明還可以有其他實施方式。凡採用等同替換或等效變換形成的技術方案,均落在本發明要求的保護範圍。
權利要求
1.一種XML文檔到資料庫的映射方法,其特徵在於包括以下步驟步驟1、建立有序標識樹——根據XML文檔節點結構,將XML文檔映射成對應的有序標識樹;步驟2、在資料庫中設置主、從表——根據步驟1所建立的有序標識樹,在資料庫中設置存儲基於文檔結構信息的主表和存儲基於文檔內容的從表;步驟3、XML文檔映射到資料庫——將XML文檔的有序標識樹逐項分別映射到資料庫相應的主表和從表對應的欄位中,從而完成XML文檔到資料庫的映射。
2.根據權利要求1所述的XML文檔到資料庫的映射方法,其特徵在於所述有序標識樹由按祖先後裔順序連接的元素節點、與葉節點連接的文本值、以及與相應元素節點連接的屬性節點構成。
3.根據權利要求1或2所述的XML文檔到資料庫的映射方法,其特徵在於所述主表由用於標記XML文檔的主鍵欄位和用於以編碼字符串描述該文檔節點結構的文本欄位構成;所述從表由用於連接主表的外鍵欄位、用於標記主鍵欄位的主鍵標識欄位、用於標記文檔內容名或屬性的名欄位,以及用於標記文檔內容的文本欄位構成。
4.根據權利要求3所述的XML文檔到資料庫的映射方法,其特徵在於所述步驟3的映射採用W3C文檔對象模型DOM表示內存中的XML文檔,建立一個遍歷XML文檔的棧後,以相反的順序把XML文檔映射到關係資料庫主表和從表的各欄位元素壓入棧。
全文摘要
本發明涉及一種XML文檔到關係資料庫的映射方法,屬於計算機數據處理領域。該方法通過建立有序標識樹、建立主、從表以及將XML文檔的有序標識樹逐項分別映射到關係數據主表和從表對應的欄位中,從而完成XML文檔到資料庫的映射。本發明與傳統映射方法相比,不僅可以有效地保持XML文檔的結構,而且可以顯著節省存儲空間,還能提高數據查詢效率,具有實際應用價值。
文檔編號G06F17/30GK102456053SQ201010527890
公開日2012年5月16日 申請日期2010年11月2日 優先權日2010年11月2日
發明者宋餘慶, 耿飈, 鑑保瑞, 陳健美 申請人:江蘇大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀