XML數(shù)據(jù)的查詢技術(shù)及優(yōu)化策略
摘 要:
摘 要:隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)為主的一系列科學(xué)技術(shù)得到了迅猛發(fā)展,XML,可擴(kuò)展標(biāo)記語言,也成為網(wǎng)絡(luò)應(yīng)用中重要的組成部門。XML廣泛應(yīng)用于金融、電子政務(wù)、電子商務(wù)、科學(xué)數(shù)據(jù)、出版、以及各種資料的數(shù)字化管理,成為數(shù)據(jù)交換的標(biāo)準(zhǔn)。IBM公司直接就把XML作為產(chǎn)品的新賣點(diǎn),微軟也稱能夠?qū)崿F(xiàn)XML的查詢和存儲(chǔ)。XML數(shù)據(jù)管理市場(chǎng)競(jìng)爭激烈,引發(fā)了XML技術(shù)的不斷改革和提高。
關(guān)鍵詞:
關(guān)鍵詞:XML 數(shù)據(jù)查詢 優(yōu)化策略
XML具有高性能的數(shù)據(jù)查詢和存儲(chǔ)功能,能夠?qū)崿F(xiàn)計(jì)算機(jī)的廣泛存儲(chǔ)。XML在金融領(lǐng)域的廣泛引用,引起了各個(gè)軟件公司進(jìn)行XML技術(shù)的研發(fā)和改革。IBM公司、微軟公司、Oracle公司都在致力于XML技術(shù)的優(yōu)化。用戶可以用結(jié)構(gòu)化查詢語言和關(guān)鍵字查詢?cè)赬ML獲取相應(yīng)的信息。
1 XML數(shù)據(jù)查詢方法
1.1 關(guān)系存儲(chǔ)基礎(chǔ)
為了達(dá)到查詢XML數(shù)據(jù)的目的,多種查詢語言已經(jīng)被研發(fā)出來,比如XQUERY、QUIT、XML-QL、XPATCH等,查詢語言有一個(gè)共同的特點(diǎn),使用正則路徑表達(dá)式引導(dǎo)XML查詢,這種方法便于分析、合成、抽取文檔的主要內(nèi)容。存儲(chǔ)結(jié)構(gòu)和查詢性能和存儲(chǔ)方式有密切的關(guān)系,一般采用四種存儲(chǔ)方式進(jìn)行選擇。這四種是特殊數(shù)據(jù)庫系統(tǒng)、關(guān)系數(shù)據(jù)庫系統(tǒng)、對(duì)象數(shù)據(jù)庫系統(tǒng)以及文件系統(tǒng)。從查詢的意義上說,關(guān)系數(shù)據(jù)庫系統(tǒng)最為方便。采用關(guān)系數(shù)據(jù)庫系統(tǒng)之前,要生成一個(gè)關(guān)系模式,等效于XML的文檔。有了關(guān)系模式以后,XML文檔就是按照這種關(guān)系模式進(jìn)行存儲(chǔ)的,然后才能進(jìn)行查詢工作。
XML文檔用關(guān)系數(shù)據(jù)庫系統(tǒng)進(jìn)行查詢也有很多的不足之處,主要有在進(jìn)行查詢之前,XML要將XQUERY轉(zhuǎn)化成為SQL進(jìn)行數(shù)據(jù)的查詢。但是在實(shí)際操作中,很多的XML不能成功進(jìn)行轉(zhuǎn)化,導(dǎo)致XML查詢功能存在缺陷。
1.2 使用索引功能
依據(jù)XML獨(dú)有的特點(diǎn),很多時(shí)候都是使用路徑表達(dá)式作為查詢語言。使用索引功能也是查詢中常見的方法,,路徑索引能夠有效的提高查詢效率。常見的有效路徑索引結(jié)構(gòu)是DATA GUIDE,這種路徑索引主要是提高了數(shù)據(jù)的訪問效率,適用于數(shù)據(jù)存在引用關(guān)系或者源數(shù)據(jù)環(huán)數(shù)很多或者完全引用的時(shí)候。
路徑索引對(duì)象的數(shù)量很大,在操作過程中太過于復(fù)雜。為了減輕維護(hù)和建立路徑索引所要付出的代價(jià),可以使用更新路徑索引和分布建立的方案,這樣能夠有效減少路徑索引的復(fù)雜程度。
1.3 使用DOM樹
與DOM進(jìn)行交互作用是XML的真正優(yōu)勢(shì)。DOM是指文檔對(duì)象模型,是數(shù)據(jù)機(jī)制的界面。在實(shí)際中XML組織結(jié)構(gòu)采用的層層嵌套的模式,采用DOM樹以后,XML會(huì)產(chǎn)生一個(gè)根結(jié)點(diǎn),這個(gè)節(jié)點(diǎn)表示的XML文檔。每個(gè)結(jié)點(diǎn)的后面跟隨幾個(gè)元素,這些元素就是樹的分支,元素后面還有其他的元素,就是樹的分支后面還有其他分支,這樣就變成了一個(gè)XML文檔樹。DOM樹就是通過隨機(jī)訪問XML文檔,在DOM樹的隨意位置建立附加的結(jié)點(diǎn),這種方式優(yōu)勢(shì)明顯。
2 XML查詢方法分類
2.1 NXD查詢
NXD查詢是指將XML編輯一個(gè)邏輯模型,利用這個(gè)模型進(jìn)行 XML文檔的檢索和存儲(chǔ),這種查詢方法的優(yōu)點(diǎn)是不用獨(dú)特的底層物理存儲(chǔ)模型,因?yàn)樗墙⒃诿嫦驅(qū)ο、層次、關(guān)系之上的。
不一樣的 NXD體系也是不同的,主要是采納了成熟的數(shù)據(jù)庫管理系統(tǒng),然后加上XML的結(jié)構(gòu)特點(diǎn),形成了不同的存儲(chǔ)形式。典型的體系結(jié)構(gòu)采用數(shù)據(jù)分析模塊作為數(shù)據(jù)的輸入,不同的概念數(shù)據(jù)分析XML數(shù)據(jù),接受解析樹以后,轉(zhuǎn)化為內(nèi)部模型。查詢輸出、查詢求解、查詢優(yōu)化、查詢解析是主要的查詢語言的過程,通過優(yōu)化代數(shù)系統(tǒng)得到結(jié)構(gòu)的查詢。
2.2 DOM樹查詢數(shù)據(jù)
DOM樹定義文檔邏輯結(jié)構(gòu),能夠?qū)?shù)據(jù)信息進(jìn)行層次管理,結(jié)點(diǎn)對(duì)應(yīng)著功能和行為,組成一個(gè)整體。DOM能夠?yàn)榻Y(jié)點(diǎn)的訪問提供訪問接口,這些訪問接口用來動(dòng)態(tài)操作XML的風(fēng)格、結(jié)構(gòu)、內(nèi)容,還可以刪除要素和內(nèi)容、修改、查詢、添加、結(jié)構(gòu)等操作。
DOM對(duì)象能夠?qū)ML文件進(jìn)行操作,然后使用DOM對(duì)象建立DOM樹,這樣可以轉(zhuǎn)換成為文件,進(jìn)行操作。對(duì)XML文件進(jìn)行操作得到文件信息,然后對(duì)結(jié)構(gòu)樹的屬性和元素實(shí)施操作。
DOM的最大優(yōu)點(diǎn)就是編寫程序方便,DOM先是對(duì)文檔進(jìn)行分析,使文件變成獨(dú)立的注釋、屬性和元素。節(jié)點(diǎn)代表著XML文檔,程序能夠隨時(shí)隨意的進(jìn)行訪問任意的節(jié)點(diǎn)信息和修改節(jié)點(diǎn)。這種方式使得程序能夠在很抽象、很高的層次上工作,減少了底層的工作量,極大的提高了查詢工作效率。
2.3 TWIG 查詢
TWIG查詢求解主要是以下步驟:第一,將TWIG分為二元的結(jié)構(gòu),如祖先——子孫,父親——孩子;第二,使用結(jié)構(gòu)連接算法,搜索數(shù)據(jù)庫查找滿足條件的節(jié)點(diǎn);第三,合并得到了結(jié)果,得出最后的結(jié)構(gòu)關(guān)系結(jié)果。此外,還可以在結(jié)構(gòu)連接中吸收XML信息和新的連接算法提高結(jié)構(gòu)連接操作,增大分解粒度。
3 關(guān)鍵字查詢系統(tǒng)
3.1 查詢接口
現(xiàn)在的查詢接口主要是分為2類:一類是純文本輸入;另一種是指定屬性值和屬性查詢方式。
3.2 工作機(jī)制
查詢處理器負(fù)責(zé)生成查詢、執(zhí)行查詢和展示結(jié)果,存儲(chǔ)管理器管理模式信息、索引、數(shù)據(jù),并且對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行緩沖管理。
主要的操作步驟是:第一,用戶鍵入關(guān)鍵字,清洗功能首先進(jìn)行容錯(cuò)處理,剔除沒用的關(guān)鍵字,識(shí)別有意義的短語,并且依據(jù)歷史上其他用戶的查詢過程進(jìn)行推薦,為用戶提供更加具有意義的關(guān)鍵字查詢;第二,搜索引擎執(zhí)行算法,按照排序機(jī)制和查詢語句執(zhí)行,執(zhí)行以后,使用存儲(chǔ)管理器取得符合條件的查詢結(jié)果;第三,滿足條件的語義將會(huì)按照用戶查詢的主次程度,進(jìn)行先后順序的展示。
3.3 關(guān)鍵技術(shù)
XML查詢主要有五個(gè)方面的重點(diǎn)問題,首先是查詢生成,能夠向搜索引擎盡快的提交相關(guān)的查詢關(guān)鍵字,并且表達(dá)用戶自身的愿望的代表。然后是查詢語義,搜索引擎能夠自動(dòng)的剔除沒用的關(guān)鍵字,更加確定中心的關(guān)鍵字,這樣能夠有效的集中展示更加符合用戶要求的查詢結(jié)果。其次,查詢到的結(jié)果還會(huì)依據(jù)客戶的關(guān)注程度進(jìn)行排序,和用戶想要搜索的信息最相關(guān)的排列在最上面,依次按照相關(guān)程度向下排列,最不相關(guān)的排在最后。并且,高效算法能夠有效的提高系統(tǒng)的查詢速度和系統(tǒng)的反應(yīng)速度,以最快的方式查出結(jié)果。最后,查到的結(jié)果還要進(jìn)行某種方式傳達(dá)給用戶,用戶能夠清晰的看到相關(guān)內(nèi)容,并且還能看見與關(guān)鍵字有聯(lián)系的內(nèi)容,提高了用戶選擇度。
4 XML系統(tǒng)優(yōu)化
自從XML問世以后,XML系統(tǒng)的研究就沒有中斷過,很多公司都在積極地進(jìn)行XML系統(tǒng)的研發(fā),極大的優(yōu)化了XML系統(tǒng)的查詢技術(shù)。但是現(xiàn)在XML系統(tǒng)仍然存在很多的問題,我們現(xiàn)在所應(yīng)用的技術(shù)看來,高效性和有效性是XML查詢系統(tǒng)的重點(diǎn)目標(biāo)。有效性是指用戶輸入了相關(guān)關(guān)鍵字以后,系統(tǒng)能夠自動(dòng)的分辨輸入的信息排除沒用的關(guān)鍵字,對(duì)主要的關(guān)鍵字進(jìn)行查詢,減輕了系統(tǒng)工作量;返回結(jié)果包括關(guān)鍵字的關(guān)系,用戶能夠理解返回結(jié)果所要表達(dá)的信息;系統(tǒng)提高智能化,能夠依據(jù)用戶輸入的關(guān)鍵字揣測(cè)出來作者的目的,進(jìn)行針對(duì)性的查詢,查詢結(jié)果盡可能滿足用戶的意圖;若是查詢的結(jié)果出現(xiàn)了偏差,系統(tǒng)能夠及時(shí)進(jìn)行改進(jìn),對(duì)于不符合要求的內(nèi)容自動(dòng)刪除,重新進(jìn)行快速搜索,再次呈現(xiàn)用戶的查詢目的。
5 總結(jié)
雖然XML關(guān)鍵字查詢系統(tǒng)已經(jīng)得到了廣泛的應(yīng)用,為金融、電子商務(wù)等帶來了巨大的便利,但是XML系統(tǒng)仍然存在很多技術(shù)上的問題,需要科技人員不斷的進(jìn)行研發(fā),完善XML系統(tǒng),爭取讓該系統(tǒng)工作效率更加高效,查詢結(jié)果更加滿足用戶的需要。
本文編號(hào):14593
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/14593.html