亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種存儲xml數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法

文檔序號:6366380閱讀:257來源:國知局

專利名稱::一種存儲xml數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種數(shù)據(jù)的存儲方法,尤其涉及一種存儲XML數(shù)據(jù)的方法。
背景技術(shù)
:XML是一種描述型的標(biāo)記語言,與HTML同為SGML(標(biāo)準(zhǔn)通用標(biāo)記語言,IS0-8879國際標(biāo)準(zhǔn))的一種應(yīng)用。由于XML在可擴(kuò)展性、可移植性和結(jié)構(gòu)性等方面的突出優(yōu)點,它的應(yīng)用范圍突破了HTML所達(dá)到的范圍。一篇XML文檔由標(biāo)記和內(nèi)容組成。XML中有六種標(biāo)記元素(elements)、屬性(attributes)、實體引用(entityreferences)、注釋(comments)、處理指令(processinginstructions)和CDATA段(CDATAsections)。XML與HTML最顯著的不同是XML文檔中引入了“文檔類型聲明”(DocumentTypeDeclarations)。DTD使文檔可以與分析器交流關(guān)于它的內(nèi)容的元信息。DTD的出現(xiàn),賦予了XML文檔可擴(kuò)展性、結(jié)構(gòu)性和可驗證性,使XML具備了類似于數(shù)據(jù)庫的一些性質(zhì),可以利用XML來組織和管理信息;又可以與HTML—樣在瀏覽器中方便地表示,在Internet上高效地傳遞和交換。目前,處理XML文檔的方式主要有SAX與DOM兩種。SAX(SimpIeAPIforXML)是一種基于流的、以事件處理方式工作的接口。SAX2.O在2000年5月發(fā)布,增強(qiáng)了許多功能,包括對名字空間的支持。D0M(DocumentObjectModel)則是在對XML文檔進(jìn)行分析后,在內(nèi)存中建立起一個完整的樹結(jié)構(gòu),然后在此基礎(chǔ)上進(jìn)行各種操作。簡單地比較來看,SAX對系統(tǒng)資源要求低、速度快,但對文檔的操作是只讀的;D0M的處理能力強(qiáng)大,但要求大量的系統(tǒng)資源,尤其是對于大的文檔。而后還出現(xiàn)了Xpath和Xpointer用以完成XML的搜索和轉(zhuǎn)換;XSL、XSLT和SOAP用以完成XML的遠(yuǎn)程對象訪問,XMLQueryLanguages的出現(xiàn)使XML查詢語言可用于任何XML文檔。而隨著網(wǎng)絡(luò)和Internet的發(fā)展,數(shù)據(jù)交換的能力已成為新的應(yīng)用系統(tǒng)的一個重要的要求。XML的好處是數(shù)據(jù)的可交換性(portable),同時在數(shù)據(jù)應(yīng)用方面還具有如下優(yōu)點=(I)XML文件為純文本文件,不受操作系統(tǒng)、軟件平臺的限制;(2)XML具有基于Schema自描述語義的功能,容易描述數(shù)據(jù)的語義,這種描述能為計算機(jī)理解和自動處理;(3)XML不僅可以描述結(jié)構(gòu)化數(shù)據(jù),還可有效描述半結(jié)構(gòu)化,甚至非結(jié)構(gòu)化數(shù)據(jù)。XML文件是數(shù)據(jù)的集合,它是自描述的、可交換的,能夠以樹型或圖形結(jié)構(gòu)描述數(shù)據(jù)。XML提供了許多數(shù)據(jù)庫所具備的工具存儲(XML文檔)、模式(DTD,XMLschema,RE1AXNG等)、查詢語言(XQuery,XPath,XQL,XML-QL,QUILT等)、編程接口(SAX,DOM,JD0M)等。但XML并不能完全替代數(shù)據(jù)庫技術(shù)。XML缺少作為實用的數(shù)據(jù)庫所應(yīng)具備的特性高效的存儲、索引和數(shù)據(jù)修改機(jī)制;嚴(yán)格的數(shù)據(jù)安全控制;完整的事務(wù)和數(shù)據(jù)一致性控制;多用戶訪問機(jī)制;觸發(fā)器、完善的并發(fā)控制等。因此,XML文本在數(shù)據(jù)讀取的性能方面較差,如果需要多次讀取同樣的XML文本,這種劣勢就會更加明顯,盡管在數(shù)據(jù)量小、用戶少和性能要求不太高的環(huán)境下,可以將XML文檔用作數(shù)據(jù)庫,但卻不適用于用戶量大、數(shù)據(jù)集成度高以及性能要求高的作業(yè)環(huán)境。
發(fā)明內(nèi)容為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明提供一種存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,將XML數(shù)據(jù)保存到關(guān)系數(shù)據(jù)庫中,加快數(shù)據(jù)的讀取訪問速度。為了實現(xiàn)上述目的,本發(fā)明提供的一種存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,包括以下步驟將一個XML的Schema拆成一個或多個映射配置文件,每個映射配置文件對應(yīng)一個關(guān)系數(shù)據(jù)庫的表;解析XML文本,按照映射配置文件中的關(guān)聯(lián)關(guān)系將XML文本中的數(shù)據(jù)插入到多個關(guān)系數(shù)據(jù)庫的表中;通過訪問數(shù)據(jù)庫的方式讀取XML文本的數(shù)據(jù)。其中,所述映射配置文件由一個根節(jié)點和多個子節(jié)點構(gòu)成,其中,所述根節(jié)點的屬性包括名稱,起始深度,深度數(shù);所述子節(jié)點的屬性包括ID,父ID,名稱,深度數(shù),最大值,類型。其中,所述根節(jié)點的名稱,為非空字符串,用于指定數(shù)據(jù)庫表的名稱;所述根節(jié)點的起始深度,為正整數(shù),當(dāng)XML樹解析深度為該值時開始使用該映射文件;所述根節(jié)點的深度數(shù),為正整數(shù),在XML樹從開始深度解析該值時停止使用該映射文件;所述子節(jié)點的ID,為正整數(shù),表示節(jié)點的ID;所述子節(jié)點的父ID,為正整數(shù),此節(jié)點的父節(jié)點的ID,無父節(jié)點時此字段為O;所述子節(jié)點的名稱,為非空字符串,表不標(biāo)簽的名稱;所述子節(jié)點的深度數(shù),正整數(shù),相對起始深度的深度數(shù),在XML解析深度數(shù)為該值時,進(jìn)行匹配該節(jié)點的嘗試;所述子節(jié)點的最大值,為正整數(shù),同名標(biāo)簽將在最大值內(nèi)展開為一條記錄的多個字段;所述子節(jié)點的類型,為字符串,表示是否為主鍵,基本數(shù)據(jù)類型,是否是葉子節(jié)點。其中,相同節(jié)點可以在不同的映射文件中出現(xiàn);根據(jù)類型為主鍵的節(jié)點在不同映射文件中建立索引。其中,所述解析XML文本,進(jìn)一步包括以下步驟根據(jù)索引文件,判斷是否需要進(jìn)入;根據(jù)索引文件,判斷是否為不包含其它子節(jié)點的葉子節(jié)點;根據(jù)索引文件,判斷是否完成了一條記錄。采用本發(fā)明的方法,根據(jù)XML的Schema和用戶的需求等,將一個XML的Schema拆成一個或多個映射文件,每個映射配置文件對應(yīng)一個關(guān)系數(shù)據(jù)庫的表。在第一次解析和讀取XML文本時,按照映射文件中的關(guān)聯(lián)關(guān)系將XML文本中的數(shù)據(jù)插入到多個關(guān)系數(shù)據(jù)庫的表中,實現(xiàn)了將XML數(shù)據(jù)保存到關(guān)系數(shù)據(jù)庫中的目的,加快了數(shù)據(jù)的讀取訪問速度。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,并與本發(fā)明的內(nèi)容和實施例一起,用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中圖I為根據(jù)本發(fā)明的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法流程圖2為根據(jù)本發(fā)明的標(biāo)簽入口處理流程圖3為根據(jù)本發(fā)明的標(biāo)簽內(nèi)容處理流程圖4為根據(jù)本發(fā)明的標(biāo)簽出口處理流程圖。具體實施例方式以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。XML文件是標(biāo)簽和有效數(shù)據(jù)組成的樹型結(jié)構(gòu),利用XML純文本文件可以用來存儲格式化數(shù)據(jù)。應(yīng)用程序通過解析XML的標(biāo)簽,來讀取XML的數(shù)據(jù),相比通過數(shù)據(jù)的索引可以快速地定位到需要讀寫的記錄的關(guān)系數(shù)據(jù)庫,XML文本在數(shù)據(jù)讀取的性能方面較差,如果需要多次讀取同樣的XML文本,這種劣勢就會更加明顯。這種情況下,可以將XML數(shù)據(jù)保存到關(guān)系數(shù)據(jù)庫中,來加快數(shù)據(jù)的讀取訪問速度。但由于關(guān)系數(shù)據(jù)庫是二維結(jié)構(gòu),而XML文本是樹形結(jié)構(gòu),因此需要將XML的樹形結(jié)構(gòu)的數(shù)據(jù)映射到關(guān)系數(shù)據(jù)庫的二維結(jié)構(gòu)上來。圖I為根據(jù)本發(fā)明的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法流程圖,下面將參考圖1,對本發(fā)明的存儲XML文件數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法進(jìn)行詳細(xì)描述首先,在步驟101,根據(jù)XML的Schema和用戶的需求等,將一個XML的Schema拆成一個或多個映射配置文件文件,每個映射配置文件對應(yīng)一個關(guān)系數(shù)據(jù)庫的表。映射配置文件的結(jié)構(gòu)由一個根節(jié)點和多個子節(jié)點構(gòu)成,其中,根節(jié)點有名稱,起始深度,深度數(shù)等屬性,子節(jié)點有ID,父ID,名稱,深度,最大值,類型等屬性。具體描述如下所示權(quán)利要求1.一種存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,包括以下步驟將ー個XML的Schema拆成ー個或多個映射配置文件,每個映射配置文件對應(yīng)ー個關(guān)系數(shù)據(jù)庫的表;解析XML文本,按照映射配置文件中的關(guān)聯(lián)關(guān)系將XML文本中的數(shù)據(jù)插入到多個關(guān)系數(shù)據(jù)庫的表中;通過訪問數(shù)據(jù)庫的方式讀取XML文本的數(shù)據(jù)。2.根據(jù)權(quán)利要求I所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在于,所述映射配置文件由一個根節(jié)點和多個子節(jié)點構(gòu)成,其中,所述根節(jié)點的屬性包括名稱,起始深度,深度數(shù);所述子節(jié)點的屬性包括ID,父ID,名稱,深度數(shù),最大值,類型。3.根據(jù)權(quán)利要求2所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在干,所述根節(jié)點的名稱,為非空字符串,用于指定數(shù)據(jù)庫表的名稱;所述根節(jié)點的起始深度,為正整數(shù),當(dāng)XML樹解析深度為該值時開始使用該映射文件;所述根節(jié)點的深度數(shù),為正整數(shù),在XML樹從開始深度解析該值時停止使用該映射文件;所述子節(jié)點的ID,為正整數(shù),表示節(jié)點的ID;所述子節(jié)點的父ID,為正整數(shù),此節(jié)點的父節(jié)點的ID,無父節(jié)點時此字段為O;所述子節(jié)點的名稱,為非空字符串,表不標(biāo)簽的名稱;所述子節(jié)點的深度數(shù),正整數(shù),相對起始深度的深度數(shù),在XML解析深度數(shù)為該值吋,進(jìn)行匹配該節(jié)點的嘗試;所述子節(jié)點的最大值,為正整數(shù),同名標(biāo)簽將在最大值內(nèi)展開為一條記錄的多個字段;所述子節(jié)點的類型,為字符串,表示是否為主鍵,基本數(shù)據(jù)類型,是否是葉子節(jié)點。4.根據(jù)權(quán)利要求1-3任一項所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在干,相同節(jié)點可以在不同的映射文件中出現(xiàn);根據(jù)類型為主鍵的節(jié)點在不同映射文件中建立索引。5.根據(jù)權(quán)利要求I所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在干,所述解析XML文本,進(jìn)ー步包括以下步驟根據(jù)索引文件,判斷是否需要進(jìn)入;根據(jù)索引文件,判斷是否為不包含其它子節(jié)點的葉子節(jié)點;根據(jù)索引文件,判斷是否完成了一條記錄。6.根據(jù)權(quán)利要求5所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在于,所述根據(jù)索引文件,判斷是否需要進(jìn)入的步驟,進(jìn)一歩包括以下步驟根據(jù)索引文件,判斷當(dāng)前解析深度是否位于映射配置文件要求的深度內(nèi),在該映射配置文件里是否存在深度和名稱滿足的標(biāo)簽;如果解析深度位于映射配置文件要求的深度內(nèi),且在該映射配置文件里存在深度和名稱滿足的標(biāo)簽,則記錄所述標(biāo)簽的進(jìn)入標(biāo)志,保存所述標(biāo)簽的所有屬性,否則停止解析。7.根據(jù)權(quán)利要求5所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在于,所述根據(jù)索引文件,判斷是否為不包含其它子節(jié)點的葉子節(jié)點的步驟,進(jìn)一歩包括以下步驟判斷標(biāo)簽是否有標(biāo)簽標(biāo)志,是否為葉子節(jié)點;如果有標(biāo)簽標(biāo)志,且是葉子節(jié)點,則轉(zhuǎn)換保存標(biāo)簽內(nèi)容的格式,否則停止解析。8.根據(jù)權(quán)利要求5所述的存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,其特征在于,所述根據(jù)索引文件,判斷是否完成了一條記錄的步驟,進(jìn)一歩包括以下步驟根據(jù)索引文件,判斷是否完成了一條記錄;如果完成,則保存完成的記錄,清除標(biāo)簽標(biāo)志,否則停止解析。全文摘要一種存儲XML數(shù)據(jù)到關(guān)系數(shù)據(jù)庫的方法,包括以下步驟將一個XML的Schema拆成一個或多個映射配置文件,每個映射配置文件對應(yīng)一個關(guān)系數(shù)據(jù)庫的表;解析XML文本,按照映射配置文件中的關(guān)聯(lián)關(guān)系將XML文本中的數(shù)據(jù)插入到多個關(guān)系數(shù)據(jù)庫的表中;通過訪問數(shù)據(jù)庫的方式讀取XML文本的數(shù)據(jù)。采用本發(fā)明的方法,將XML文件數(shù)據(jù)存儲到關(guān)系數(shù)據(jù)庫中,加快數(shù)據(jù)的讀取訪問速度。文檔編號G06F17/30GK102662997SQ201210067768公開日2012年9月12日申請日期2012年3月15日優(yōu)先權(quán)日2012年3月15日發(fā)明者畢松申請人:北京播思軟件技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1