亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于關(guān)系數(shù)據(jù)庫(kù)的XML存儲(chǔ)技術(shù)

        2011-02-19 07:48:38吳潔明莫智懿陸科達(dá)
        制造業(yè)自動(dòng)化 2011年2期
        關(guān)鍵詞:關(guān)系數(shù)據(jù)庫(kù)結(jié)點(diǎn)文檔

        吳潔明,萬(wàn) 勵(lì),莫智懿,陸科達(dá)

        WU Jie-ming,WAN Li,MU Zhi-yi,LU Ke-da

        (梧州學(xué)院 計(jì)算機(jī)科學(xué)系,梧州 543002)

        0 引言

        在信息技術(shù)與網(wǎng)絡(luò)技術(shù)高速發(fā)展的今天,網(wǎng)絡(luò)已經(jīng)成為新一代操作平臺(tái)。信息正全面地以互聯(lián)網(wǎng)方式展開(kāi),互聯(lián)網(wǎng)的信息傳播,極大地加速了人類發(fā)展的進(jìn)程。隨著WEB技術(shù)的日益發(fā)展,WEB已經(jīng)成為信息制造、發(fā)布、加工和處理的主要平臺(tái)。XML技術(shù)已日益受到更為廣泛的關(guān)注,已經(jīng)在電子商務(wù)、電子數(shù)據(jù)交換、科學(xué)數(shù)據(jù)表示、數(shù)據(jù)建模與分析和搜索引擎等領(lǐng)域有著廣泛的應(yīng)用。隨著XML應(yīng)用技術(shù)的深入,將會(huì)有大量的XML文檔出現(xiàn),并且現(xiàn)在在網(wǎng)絡(luò)上已經(jīng)積累了大量的XML文檔[1,2]。將XML數(shù)據(jù)轉(zhuǎn)化為關(guān)系數(shù)據(jù),存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,利用己經(jīng)成熟的關(guān)系數(shù)據(jù)庫(kù)理論和技術(shù),來(lái)實(shí)現(xiàn)對(duì)XML數(shù)據(jù)的存取和訪問(wèn),并盡量減少XML數(shù)據(jù)查詢時(shí)的中間操作,以減少響應(yīng)時(shí)間,提高查詢效率,是XML文檔當(dāng)前最有效的存儲(chǔ)和查詢方式[3,4]。本文主要就基于關(guān)系數(shù)據(jù)庫(kù)的XML存儲(chǔ)技術(shù)相關(guān)問(wèn)題進(jìn)行探討。

        1 XML與關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu)上的差異

        XML文檔是半結(jié)構(gòu)化的數(shù)據(jù),是一個(gè)樹(shù)模型,如果考慮到XML元素次序,則是一棵有序樹(shù)模型,其數(shù)據(jù)結(jié)構(gòu)是非結(jié)構(gòu)化的,而關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)是采用二維表格作為存儲(chǔ)數(shù)據(jù)的模型,表格由行和列組成,列被稱作“字段”用于表示組成數(shù)據(jù)有效信息的屬性,行則用于儲(chǔ)存一條完整的數(shù)據(jù)記錄。XML數(shù)據(jù)與關(guān)系表之間數(shù)據(jù)結(jié)構(gòu)有很大的差異,具體來(lái)說(shuō),XML數(shù)據(jù)是有序的,而關(guān)系數(shù)據(jù)是則無(wú)序的,另外XML數(shù)據(jù)的模式往往經(jīng)常變化,可是關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)是固定不變的,XML數(shù)據(jù)可以無(wú)限層次嵌套,而關(guān)系數(shù)據(jù)則不能。雖然XML放松的類型限制和自描述性有利于數(shù)據(jù)之間的交換,但是卻不利于數(shù)據(jù)存儲(chǔ)。因此,XML的數(shù)據(jù)模型的半結(jié)構(gòu)化、有序性與平坦、無(wú)序的關(guān)系模型之間存在固有的不匹配。另外遵循文檔類型定義(DTD)或文檔模式定義(XML SCHEMA)的XML文檔也與遵循關(guān)系存儲(chǔ)模式的關(guān)系數(shù)據(jù)在語(yǔ)法、.結(jié)構(gòu)以及約束等很多方面存在著固有的異構(gòu)性,因此很難直接由XML數(shù)據(jù)產(chǎn)生關(guān)系模式。甚至即使多個(gè)XML文檔實(shí)例都遵循同一個(gè)文檔模式定義,它們也可能有不同的結(jié)構(gòu)??梢钥闯觯琗ML映射到關(guān)系數(shù)據(jù)庫(kù)中存在固有的困難。映射時(shí)主要存在以下需要解決的問(wèn)題:1)如何利用可能有的XML文檔模式(或類型)信息來(lái)采取各種不同的存儲(chǔ)策略;2)如何將XML文檔無(wú)損地存入關(guān)系數(shù)據(jù)庫(kù);3)如何從關(guān)系數(shù)據(jù)庫(kù)中查詢并重構(gòu)XML信息。

        2 基于關(guān)系數(shù)據(jù)庫(kù)的存儲(chǔ)策略

        當(dāng)前,在將XML數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)的策略主要有兩大類映射策略:即結(jié)構(gòu)映射策略和模型映射策略。簡(jiǎn)單地來(lái)說(shuō),結(jié)構(gòu)映射需要將XML模式(或DTD)映射為特定的關(guān)系模式,隨著XML文檔模式(或者為DTD)的不同,映射成的關(guān)系模式也不同。而模型映射則是將XML文檔映射為固定的關(guān)系模式,與XML文檔模式(或者為DTD)無(wú)關(guān)。

        2.1 基于結(jié)構(gòu)映射的策略

        具體來(lái)說(shuō),基于結(jié)構(gòu)的映射方法可以分為兩個(gè)步驟來(lái)實(shí)現(xiàn)。

        第一步:簡(jiǎn)化DTD并生成DTD圖。因?yàn)閄ML DTD的元素是相當(dāng)復(fù)雜的,需要對(duì)復(fù)雜的DTD進(jìn)行簡(jiǎn)化。DTD的簡(jiǎn)化變換主要有以下三種方式。1)平面化變換:將DTD內(nèi)的層次嵌套關(guān)系打平,把嵌套的定義轉(zhuǎn)換為非嵌套的定義;2)簡(jiǎn)化變換:將連續(xù)的多個(gè)一元操作轉(zhuǎn)換為一個(gè)一元操作;3)聚集變換:將多個(gè)具有相同名稱的子元素聚在一起,形成一個(gè)子元素。一個(gè)DTD圖表示的是一個(gè)DTD的結(jié)構(gòu),圖的結(jié)點(diǎn)表示DTD中的元素、屬性或操作符,DTD中的元素在DTD圖中只出現(xiàn)一次,屬性和操作符在DTD圖中出現(xiàn)的次數(shù)則與它們?cè)贒TD中出現(xiàn)的次數(shù)相同。

        第二步:DTD圖到關(guān)系模式的映射。從DTD圖到關(guān)系模式的映射方法主要有:基本內(nèi)聯(lián)法、共享內(nèi)聯(lián)法和綜合內(nèi)聯(lián)法。

        1)基本內(nèi)聯(lián)法?;緝?nèi)聯(lián)法的原則是在存儲(chǔ)一個(gè)結(jié)點(diǎn)的時(shí)候,盡可能多地將這個(gè)元素的后代結(jié)點(diǎn)存儲(chǔ)在一個(gè)表中。例如,形如直線而無(wú)分支的數(shù)據(jù)路徑上的結(jié)點(diǎn)。這些后代結(jié)點(diǎn)作為祖先結(jié)點(diǎn)表中的屬性域而存儲(chǔ)。而結(jié)點(diǎn)之間的嵌套關(guān)系則用采用關(guān)系表之間的外鍵來(lái)解決?;緝?nèi)聯(lián)法將產(chǎn)生大量的關(guān)系,并且會(huì)產(chǎn)生大量的數(shù)據(jù)冗余,因此該方法基本上是不實(shí)用的。

        2)共享內(nèi)聯(lián)法。共享內(nèi)聯(lián)法為以下三種DTD結(jié)點(diǎn)生成獨(dú)立的關(guān)系:(1)DTD圖中入度大于1或者等于0(根結(jié)點(diǎn))的元素結(jié)點(diǎn)生成獨(dú)立的關(guān)系;(2)DTD圖中結(jié)點(diǎn)“幸”的孩子結(jié)點(diǎn)(將值集元素作為單獨(dú)的關(guān)系保存);(3)互為遞歸的入度均為1的元素結(jié)點(diǎn),其中之一生成獨(dú)立的關(guān)系。而其余的結(jié)點(diǎn)都生成關(guān)系屬性。共享內(nèi)聯(lián)法相對(duì)減少了XML查詢轉(zhuǎn)換為SQL語(yǔ)句的數(shù)目,但增加了每個(gè)SQL查詢中的連接運(yùn)算。

        3)綜合內(nèi)聯(lián)法

        綜合內(nèi)聯(lián)方法在處理入度大于l的結(jié)點(diǎn)上與共享內(nèi)聯(lián)方法不同,綜合內(nèi)聯(lián)法將所有入度大于1的元素結(jié)點(diǎn)也內(nèi)聯(lián)進(jìn)入父結(jié)點(diǎn)所生成的關(guān)系表中,但是帶回路的結(jié)點(diǎn)以及結(jié)點(diǎn)“}”或“+”的直接后繼結(jié)點(diǎn)除外,該方法減少了子結(jié)點(diǎn)與父結(jié)點(diǎn)的連接運(yùn)算。綜合內(nèi)聯(lián)法的出發(fā)點(diǎn)是充分吸取基本內(nèi)聯(lián)法和共享內(nèi)聯(lián)法的優(yōu)點(diǎn),克服其缺點(diǎn)。與共享內(nèi)聯(lián)方法相比,綜合內(nèi)聯(lián)方法相對(duì)減少了每個(gè)SQL查詢中的連接運(yùn)算,但是增加了SQL語(yǔ)句的數(shù)目。

        2.2 基于模型映射的策略

        模型映射的方法是用一個(gè)固有的模式來(lái)存儲(chǔ)XML文檔。它用固定的關(guān)系模式來(lái)存放任何格式的XML數(shù)據(jù),而不考慮XML文檔的模式(DTD或SCHEMA),其實(shí)質(zhì)是存儲(chǔ)XML文檔本身的結(jié)構(gòu)信息。目前,基于模型的映射方法主要有Edge方法、XRel方法和XParent方法。

        1)Edge方法

        Edge方法圓的存儲(chǔ)策略是把要存入的XML文檔看做圖形結(jié)構(gòu),每個(gè)圖的邊界都表示為圖中的元組,把XML文檔圖中的所有邊都存入到關(guān)系表Edge中,用表Edge(source,ordinal,target,label,flag,value)存儲(chǔ)XML文檔圖中的邊,其中的source字段和target字段分別用來(lái)存儲(chǔ)邊的源結(jié)點(diǎn)和目標(biāo)結(jié)點(diǎn)的標(biāo)識(shí)符;label域?yàn)槟繕?biāo)結(jié)點(diǎn)的類型;flag用來(lái)區(qū)分目標(biāo)結(jié)點(diǎn);target是一個(gè)元素結(jié)點(diǎn)還是一個(gè)文本結(jié)點(diǎn),如果該目標(biāo)結(jié)點(diǎn)是文本結(jié)點(diǎn),則文本值存儲(chǔ)于value域中;ordinal字段指出target結(jié)點(diǎn)在source結(jié)點(diǎn)的所有孩子中的位置。由于Edge方法將所有XML數(shù)據(jù)都用Edge表存放,操作方法簡(jiǎn)單。但缺點(diǎn)是在Edge方法中每條邊都是單獨(dú)管理的,所以在用戶進(jìn)行查詢操作時(shí)就需在大量的表上進(jìn)行連接操作以形成路徑。如果要判斷祖先/后代關(guān)系就需要從祖先到后代(或與之相反)遍歷所有的邊,造成代價(jià)非常昂貴。

        2)XRel方法

        XRel方法為了存儲(chǔ)XML文檔的所有信息,將XML文檔樹(shù)分解為一個(gè)個(gè)路徑表達(dá)式,對(duì)于樹(shù)中每一個(gè)結(jié)點(diǎn),都將從根結(jié)點(diǎn)到其自身的路徑存儲(chǔ)。而在樹(shù)中有可能有多個(gè)結(jié)點(diǎn)的路徑是一樣的,所以單個(gè)的簡(jiǎn)單路徑表達(dá)式并不能夠存儲(chǔ)整棵XML文檔樹(shù)的信息。XRel模式是通過(guò)區(qū)間編碼[start,end]來(lái)反映XML文檔的模型結(jié)構(gòu),并根據(jù)結(jié)點(diǎn)類型來(lái)劃分,分為元素結(jié)點(diǎn)表、屬性結(jié)點(diǎn)表和文本結(jié)點(diǎn)表,同時(shí)將所有路徑進(jìn)行存儲(chǔ)。因此,XRel模式由四個(gè)關(guān)系表組成如圖1所示。

        圖1 XRel存儲(chǔ)模式

        在Path表中,存儲(chǔ)所有的不重復(fù)的路徑,其中,PathID為標(biāo)記路徑的標(biāo)識(shí),pathexp域存儲(chǔ)標(biāo)記路徑。為了實(shí)現(xiàn)路徑表達(dá)式的字符串匹配操作,防止意外的結(jié)果出現(xiàn),將標(biāo)記路徑中的“/”替換為“#/”進(jìn)行存儲(chǔ)。對(duì)于Element表、Attribute表和Text表,Attribute表和Text表中的value字段存儲(chǔ)的分別是屬性結(jié)點(diǎn)的值和文本結(jié)點(diǎn)的值。對(duì)于每一個(gè)路徑表達(dá)式,查詢過(guò)程都可以分為兩部:第一步,利用字符串的匹配操作,能夠快速的查找出與路徑表達(dá)式相匹配的所有標(biāo)記路徑的標(biāo)識(shí);第二步,利用這些路徑標(biāo)識(shí),能夠快速的查找出隸屬于這些路徑終端的值。

        XRel存儲(chǔ)模式的特點(diǎn)可以總結(jié)如下:1)用簡(jiǎn)單路徑表達(dá)式和結(jié)點(diǎn)的區(qū)間編碼(start,end)存儲(chǔ)XML文檔的所有信息。2)分別為每一種結(jié)點(diǎn)類型創(chuàng)建一個(gè)對(duì)應(yīng)的關(guān)系表。3)用一個(gè)Path表把文檔中所有不重復(fù)的路徑都提取出來(lái),有效地降低了數(shù)據(jù)庫(kù)的存儲(chǔ)容量。

        3)XParent方法

        XParent模式和XRel模式一樣,將文本數(shù)據(jù)路徑獨(dú)立出來(lái),共包含四個(gè)關(guān)系表,如圖2所示。

        圖2 XParent存儲(chǔ)模式

        其中,表LabelPath中的pathexp字段用來(lái)存儲(chǔ)所有不重復(fù)的標(biāo)簽路徑,即模式路徑。每一個(gè)標(biāo)簽路徑被賦予一個(gè)標(biāo)識(shí)符pathID,length為標(biāo)記路徑的長(zhǎng)度。Parent表存儲(chǔ)的是雙親/孩子關(guān)系,pid和cid分別表示一個(gè)邊的起始結(jié)點(diǎn)與結(jié)尾結(jié)點(diǎn)。did為XML文檔中元素結(jié)點(diǎn)的標(biāo)識(shí),它也可以作為以該結(jié)點(diǎn)為終端點(diǎn)的數(shù)據(jù)路徑的標(biāo)識(shí)。

        Parem表存儲(chǔ)的是雙親/孩子關(guān)系,因此,為了檢查數(shù)據(jù)路徑需要進(jìn)行連接操作。為了提高這種處理的效率,可以改用Ancestor表來(lái)存儲(chǔ)祖先/后裔關(guān)系。Ancestor(did,ancestor,level),利用Ancestor表能夠快速的檢測(cè)結(jié)點(diǎn)之間的祖先/后裔關(guān)系,但是它比Parent表需要更多的空間,而且由于存在冗余信息,修改代價(jià)也更高。XParent模式分別通過(guò)LabelPath表和Parent表來(lái)支持標(biāo)記路徑和數(shù)據(jù)路徑。因此,XParent模式既具有基于結(jié)點(diǎn)的模型映射的特點(diǎn),又具有基于邊的模型映射的特點(diǎn)。

        3 結(jié)束語(yǔ)

        主要討論了基于關(guān)系數(shù)據(jù)庫(kù)的XML存儲(chǔ)方式的兩大類映射方法:模型映射和結(jié)構(gòu)映射。并且分別對(duì)三種具體的映射方法:基于邊的映射方法、基于結(jié)點(diǎn)的映射方法和基于結(jié)構(gòu)的映射方法進(jìn)行了探討,并說(shuō)明了各自的原理與優(yōu)缺點(diǎn),對(duì)于今后XML數(shù)據(jù)庫(kù)設(shè)計(jì)具有一定幫助。

        [1]周勇,韓潔,史忠植.XML數(shù)據(jù)庫(kù)與關(guān)系數(shù)據(jù)庫(kù)協(xié)作研究[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(13).

        [2]曹亮,王茜,盧菁.XML數(shù)據(jù)在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)和檢索的研究和實(shí)現(xiàn)[J].東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2002,32(1).

        [3]路燕,郝忠孝,張亮.基于編碼的XML關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)[J].計(jì)算機(jī)研究與發(fā)展,2005,42(11).

        [4]許卓明,劉琴,董逸生.基于關(guān)系數(shù)據(jù)庫(kù)的XML存儲(chǔ)技術(shù)評(píng)述[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(21).

        猜你喜歡
        關(guān)系數(shù)據(jù)庫(kù)結(jié)點(diǎn)文檔
        關(guān)系數(shù)據(jù)庫(kù)在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
        山東冶金(2022年2期)2022-08-08 01:51:30
        有人一聲不吭向你扔了個(gè)文檔
        Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
        基于RI碼計(jì)算的Word復(fù)制文檔鑒別
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索
        基于Raspberry PI為結(jié)點(diǎn)的天氣云測(cè)量網(wǎng)絡(luò)實(shí)現(xiàn)
        一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索方法
        基于用戶反饋的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵字查詢系統(tǒng)
        不讓他人隨意下載Google文檔
        電腦迷(2012年4期)2012-04-29 06:12:13
        品色永久免费| 亚洲成年国产一区二区| 亚洲色偷偷综合亚洲avyp| 国产精品对白刺激久久久| 欧美一级人与嘼视频免费播放 | 免费毛片一区二区三区女同| 二区免费在线视频观看| 欧美另类人妖| 思思99热精品免费观看| 日本一区不卡高清在线观看| 中文字幕影片免费人妻少妇| 国产成人精品白浆久久69| 欧美日韩国产成人高清视| 成人午夜视频在线观看高清| 亚洲最大在线视频一区二区| 中文亚洲av片在线观看| 日韩精品久久久一区| 超短裙老师在线观看一区| 极品嫩模大尺度av在线播放| 久久久久人妻精品一区蜜桃| 亚洲午夜无码久久yy6080| 国产精品区二区东京在线| 2019nv天堂香蕉在线观看| 少妇特黄a一区二区三区| 国产精品国产午夜免费福利看| av免费在线国语对白| 国产精品无码v在线观看| 日韩在线无| 一区二区三区少妇熟女高潮| 可以免费看亚洲av的网站| 午夜精品久久久久成人| 国产成人丝袜网站在线看| 久久色悠悠综合网亚洲| 日本又色又爽又黄又免费网站| 婷婷综合久久中文字幕蜜桃三电影| 亚洲高清在线观看免费视频| 日韩不卡的av二三四区| 美女又色又爽视频免费| 国产精品激情综合久久| 一本色道久久88加勒比| 狠狠色狠狠色综合|