專利名稱::處理正則路徑表達(dá)式查詢的擴(kuò)展標(biāo)記語(yǔ)言索引方法
技術(shù)領(lǐng)域:
:本發(fā)明要求2002年5月8日在韓國(guó)知識(shí)產(chǎn)權(quán)辦公室提交的韓國(guó)專利申請(qǐng)第2002-25398號(hào)的優(yōu)先權(quán),其內(nèi)容在此引入作為參考。本發(fā)明涉及一種路徑索引查找方法,它是一種擴(kuò)展標(biāo)記語(yǔ)言(XML)索引方法,通過(guò)它,關(guān)系數(shù)據(jù)庫(kù)可以穩(wěn)定地處理一個(gè)查詢而不管用戶如何表達(dá)這個(gè)查詢,本發(fā)明具體涉及一種用于利用路徑查找表和擴(kuò)展邊緣表通過(guò)單一的連接操作處理具有特定長(zhǎng)度的正則路徑表達(dá)式的方法。
背景技術(shù):
:已經(jīng)被提出作為用于在因特網(wǎng)上信息交換的標(biāo)準(zhǔn)語(yǔ)言的擴(kuò)展標(biāo)記語(yǔ)言(XML)被廣泛地用于計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)中(SynML,UpnP)和許多其他工業(yè)領(lǐng)域中,如生物信息(BSMP,BioML)、電子商務(wù)(ebXML,ECML)、電子數(shù)據(jù)交換(XML-EDI)、地理信息和全球定位系統(tǒng)(GPS)(GML,NVML)、多媒體(MPEG-7,IML)、娛樂(lè)(MusicXML,GML)、教育(LMML,TML)、醫(yī)療保健(CTDM,TDL)、出版(BiblioML,DocBook)、電視廣播(TV-Anytime)等。在XML中寫(xiě)入的數(shù)據(jù)在許多方面上不同于在諸如關(guān)系數(shù)據(jù)庫(kù)或面向?qū)ο髷?shù)據(jù)庫(kù)的現(xiàn)有數(shù)據(jù)庫(kù)中的典型數(shù)據(jù),例如前者數(shù)據(jù)是半結(jié)構(gòu)化的。換句話說(shuō),XML提供了適用于應(yīng)用領(lǐng)域的一種文件類型定義(DTD),但是具有半結(jié)構(gòu)化特點(diǎn),表現(xiàn)在XML可以不嚴(yán)格遵循DTD。由于XML的半結(jié)構(gòu)化特點(diǎn),因此在不同數(shù)據(jù)源之間的數(shù)據(jù)表達(dá)和交換是靈活的。XML因?yàn)榘虢Y(jié)構(gòu)化特點(diǎn)以及因?yàn)楹?jiǎn)單的數(shù)據(jù)表達(dá)而在許多應(yīng)用領(lǐng)域用作標(biāo)準(zhǔn)語(yǔ)言。因?yàn)閄ML的半結(jié)構(gòu)化特點(diǎn),因此允許XML文件的程序員變換偏離DTD的XML數(shù)據(jù),以便產(chǎn)生XML文件。而且,XML文件的用戶可以搜索數(shù)據(jù)而不用準(zhǔn)確知道XML數(shù)據(jù)的結(jié)構(gòu)?;赬ML的半結(jié)構(gòu)化特點(diǎn)的數(shù)據(jù)搜索可以有效地用于用戶不準(zhǔn)確知道包括要搜索的數(shù)據(jù)的XML文件的結(jié)構(gòu)的情況下。如果用戶對(duì)網(wǎng)絡(luò)搜索在特定領(lǐng)域的一個(gè)XML文件的網(wǎng)頁(yè),則用戶可以甚至從不準(zhǔn)確反映所述特定領(lǐng)域的模式的部分認(rèn)識(shí)獲得關(guān)于所找到的XML文件的查詢的結(jié)果。可以以正則的路徑表達(dá)式查詢——例如以XML查詢即XQuery——來(lái)表達(dá)根據(jù)用戶的XML數(shù)據(jù)的半結(jié)構(gòu)化特點(diǎn)的檢索表達(dá)。因?yàn)閷?duì)照根據(jù)一般模式的數(shù)據(jù)庫(kù)查詢,XML正則路徑表達(dá)式查詢不準(zhǔn)確地描述與查詢的條件對(duì)應(yīng)的數(shù)據(jù)的結(jié)構(gòu),因此查詢處理系統(tǒng)可以根據(jù)用戶定義查詢的方法來(lái)不同地翻譯和執(zhí)行表示同一條件的查詢。因此,其中查詢處理系統(tǒng)翻譯和優(yōu)化XML正則路徑表達(dá)式查詢的方法可以大大地影響查詢處理的性能。一種在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)XML文件的方法的示例包括邊緣方法和屬性(attribute)方法。邊緣方法具有一個(gè)優(yōu)點(diǎn),即,即使沒(méi)有關(guān)于XML文件的模式數(shù)據(jù),XML文件也可以被存儲(chǔ)和處理。但是,由于對(duì)于相對(duì)較長(zhǎng)邊緣數(shù)據(jù)的復(fù)制次數(shù)等于路徑表達(dá)式的長(zhǎng)度的自連接操作,邊緣方法可能導(dǎo)致性能的降低。連接操作表示計(jì)算在一個(gè)表的元素和另一個(gè)表的元素之間的關(guān)系的操作。自連接操作表示計(jì)算在一個(gè)表內(nèi)現(xiàn)有的元素之間的關(guān)系的操作。在屬性方法中,當(dāng)已經(jīng)知道XML文件的模式數(shù)據(jù)時(shí)產(chǎn)生和處理實(shí)體單元表。因此,可以將數(shù)據(jù)劃分和存儲(chǔ)在多個(gè)表中,提供了比邊緣方法更高的性能。但是,在屬性方法中,表的數(shù)量可能依賴于XML模式而過(guò)量地增加,或者數(shù)據(jù)可能被不必要地分段。為了解決這些問(wèn)題,已經(jīng)進(jìn)行了如下方法的研究,即確定可以通過(guò)使用用于存儲(chǔ)XML文件的數(shù)據(jù)提煉方法來(lái)劃分的表的類型和數(shù)量而不用模式引導(dǎo)。因?yàn)檫吘壏椒ê蛯傩苑椒ㄒ话闾峁┯脕?lái)處理路徑表達(dá)式,這兩種方法要求與路徑表達(dá)式的長(zhǎng)度一樣多的表連接操作。而且,這兩種方法不適合于處理正則的路徑表達(dá)式。邊緣方法包括一種利用標(biāo)記的起始和結(jié)束偏移的信息來(lái)處理正則路徑表達(dá)式的方法。如果邊緣方法被用于長(zhǎng)路徑表達(dá)式,則用于處理正則路徑表達(dá)式的邊緣方法無(wú)效。用于處理正則路徑表達(dá)式的邊緣方法的查詢處理性能依賴于用戶定義查詢的方法。索引XML數(shù)據(jù)的路徑表達(dá)式的方法的示例是一種索引構(gòu)造方法,其中以信號(hào)索引結(jié)構(gòu)管理在XML文件中存在的用于各種路徑的索引。索引結(jié)構(gòu)是被擴(kuò)展來(lái)支持關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)。在索引構(gòu)造方法中,為了處理特定路徑的正則路徑表達(dá)式,所述特定路徑必須被另外指定為在索引結(jié)構(gòu)中的一個(gè)細(xì)化路徑。已經(jīng)提出了一種作為索引的表結(jié)構(gòu)。但是,當(dāng)采用所述索引構(gòu)造方法來(lái)索引XML路徑表達(dá)式的時(shí)候,索引表的數(shù)量增加,或索引表可能被分段。XML數(shù)據(jù)路徑表達(dá)式處理類似于在面向?qū)ο蟮臄?shù)據(jù)庫(kù)中執(zhí)行的路徑表達(dá)式處理,表現(xiàn)在XML數(shù)據(jù)路徑表達(dá)式處理以圍繞樹(shù)運(yùn)動(dòng)的方式進(jìn)行。
發(fā)明內(nèi)容本發(fā)明提供了一種有效的XML索引方法,其中關(guān)系數(shù)據(jù)庫(kù)統(tǒng)一地翻譯XML正則路徑表示查詢而不管用戶如何描述所述查詢。具體而言,本發(fā)明提供了一種XML索引方法,用于通過(guò)單一的連接操作來(lái)處理正則的路徑表達(dá)式,而不管正則路徑表達(dá)式的長(zhǎng)度如何,以便解決傳統(tǒng)的問(wèn)題,即查詢處理的性能隨著正則路徑表達(dá)式長(zhǎng)度的增加而降低的問(wèn)題。本發(fā)明還提供了可以不必修改關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)引擎而使用的表和基于B樹(shù)的XML索引表數(shù)據(jù)結(jié)構(gòu)。根據(jù)本發(fā)明的一個(gè)方面,提供了一種路徑索引查找方法,其中,首先從以包括擴(kuò)展標(biāo)記語(yǔ)言(XML)的預(yù)定語(yǔ)言寫(xiě)的文件中提取表示信息源的多個(gè)路徑信息。接著,從用戶輸出并在路徑查找表存儲(chǔ)單元存儲(chǔ)與多個(gè)路徑信息和表示是否已經(jīng)在另一個(gè)存儲(chǔ)單元中詳細(xì)存儲(chǔ)了所述多個(gè)路徑信息的索引標(biāo)志信息對(duì)應(yīng)的用戶路徑ID信息。其后,如果索引標(biāo)志信息對(duì)應(yīng)于預(yù)定的值,則從用戶接收每個(gè)路徑信息的源ID和目標(biāo)ID,并將其存儲(chǔ)在擴(kuò)展邊緣表存儲(chǔ)單元中。然后,從用戶接收用于檢索信息的正則路徑表達(dá)式,并且對(duì)路徑查找表存儲(chǔ)單元搜索與正則路徑表達(dá)式匹配的路徑表達(dá)式信息,以獲得對(duì)應(yīng)于要檢索的信息的路徑的路徑ID信息。最后,對(duì)擴(kuò)展邊緣表存儲(chǔ)單元搜索與在上面步驟中獲得的路徑ID信息匹配的路徑ID信息的源ID和目標(biāo)ID。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種計(jì)算機(jī)記錄介質(zhì),它存儲(chǔ)用于執(zhí)行路徑索引查找方法的計(jì)算機(jī)程序。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種路徑索引查找裝置,它包括路徑查找表存儲(chǔ)單元、擴(kuò)展邊緣表存儲(chǔ)單元、路徑ID檢索單元和路徑信息確定和輸出單元。所述路徑查找表存儲(chǔ)單元從用戶接收在以包括XML的預(yù)定語(yǔ)言寫(xiě)的文件中包括的、與用于信息源的至少一段路徑信息對(duì)應(yīng)的路徑ID信息,和表示是否已經(jīng)在另一個(gè)存儲(chǔ)單元中指定了路徑信息的索引標(biāo)志信息,并且存儲(chǔ)路徑ID信息和索引標(biāo)志信息。如果索引標(biāo)志信息具有預(yù)定值,則擴(kuò)展邊緣表存儲(chǔ)單元從用戶接收每個(gè)路徑信息的源ID和目標(biāo)ID,并存儲(chǔ)源ID和目標(biāo)ID。路徑ID檢索單元從用戶接收用于檢索信息的正則路徑表達(dá)式,在路徑查找表存儲(chǔ)單元搜索與所述正則路徑表達(dá)式匹配的路徑表達(dá)式信息,并且獲得與要檢索的信息的路徑對(duì)應(yīng)的路徑ID信息。路徑信息確定和輸出單元對(duì)擴(kuò)展邊緣表存儲(chǔ)單元搜索與在路徑ID檢索單元中獲得的路徑ID信息匹配的路徑ID信息的源ID和目標(biāo)ID,并且輸出匹配的路徑ID信息的源ID和目標(biāo)ID。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種路徑查找表,用于在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)以包括XML的預(yù)定語(yǔ)言寫(xiě)的文件,并且包括多個(gè)用于信息源的路徑信息。所述路徑查找表包括表示路徑——要檢索的信息沿著這些路徑被存儲(chǔ)在所述文件中——名稱的路徑名稱信息、表示路徑ID的路徑ID信息和表示是否在擴(kuò)展邊緣表中索引路徑的索引標(biāo)志信息,所述擴(kuò)展邊緣表存儲(chǔ)在所述文件中的許多路徑的源ID和目標(biāo)ID。如果從用戶接收到用于檢索信息的正則路徑表達(dá)式,則對(duì)路徑查找表搜索關(guān)于與所述正則路徑表達(dá)式匹配的路徑表達(dá)式的路徑名稱信息,以便輸出對(duì)應(yīng)于所述路徑名稱信息的路徑ID信息。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種擴(kuò)展邊緣表,用于在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)以包括XML的預(yù)定語(yǔ)言寫(xiě)的文件,并且包括多個(gè)用于信息源的路徑信息。所述擴(kuò)展邊緣表包括表示路徑——要檢索的信息沿著這些路徑被存儲(chǔ)在所述文件中——ID的路徑ID信息、表示路徑源ID的源ID信息和表示路徑目標(biāo)ID的目標(biāo)ID信息。如果從用戶接收到要檢索信息的路徑ID信息,則擴(kuò)展邊緣表輸出對(duì)應(yīng)于所述路徑ID信息的源ID信息和目標(biāo)ID信息。對(duì)照根據(jù)用戶查詢的形式提供性能的現(xiàn)有方法,根據(jù)本發(fā)明的路徑索引查找方法可以與用戶查詢的形式無(wú)關(guān)地、穩(wěn)定和迅速地處理正則路徑表達(dá)式。通過(guò)參照附圖詳細(xì)說(shuō)明本發(fā)明的示范實(shí)施例,本發(fā)明的上述和其他特點(diǎn)和優(yōu)點(diǎn)將會(huì)變得更加清楚,其中圖1A示出了表示TV-anytime的部分元數(shù)據(jù)規(guī)范的擴(kuò)展標(biāo)記語(yǔ)言(XML)文件的一個(gè)實(shí)施例;圖1B示出了表示TV-anytime的部分元數(shù)據(jù)規(guī)范的XML文件的樹(shù)結(jié)構(gòu);圖2是示出在正則路徑表達(dá)式中使用的主要符號(hào)和所述符號(hào)的表示法的表;圖3示出了一個(gè)實(shí)施例,其中利用圖2的元素表和文本表來(lái)表達(dá)元素;圖4是示出了用于正則路徑表達(dá)式的SQL類語(yǔ)法的表;圖5A示出了輸入的XML文件的一個(gè)實(shí)施例;圖5B示出了根據(jù)本發(fā)明的XML文件的路徑查找表的一個(gè)實(shí)施例;圖5C示出了根據(jù)本發(fā)明的XML文件的擴(kuò)展邊緣表的一個(gè)實(shí)施例;圖6是表示根據(jù)本發(fā)明的用于路徑索引查找方法的結(jié)構(gòu)圖;圖7是表示根據(jù)本發(fā)明的用于正則路徑表達(dá)式查詢的路徑索引查找方法的流程圖;圖8是根據(jù)本發(fā)明的、用于正則路徑表達(dá)式查詢的路徑索引查找裝置的方框圖;圖9是在本發(fā)明的一個(gè)實(shí)驗(yàn)中使用的正則路徑表達(dá)式表;及圖10是表示根據(jù)本發(fā)明的、在關(guān)于正則路徑表達(dá)式中節(jié)點(diǎn)數(shù)量的時(shí)間的反應(yīng)周期中的變化的圖。具體實(shí)施例方式當(dāng)用戶在XML文件中指示要訪問(wèn)的某個(gè)實(shí)體的路徑時(shí),正則路徑表達(dá)式縮短并表達(dá)所述路徑。圖1A和圖1B示出了表示TV-anytime的部分元數(shù)據(jù)規(guī)范的擴(kuò)展標(biāo)記語(yǔ)言(XML)文件的一個(gè)實(shí)施例。TV-anytime的元數(shù)據(jù)表示與TV廣播節(jié)目相關(guān)的數(shù)據(jù)。元數(shù)據(jù)包括節(jié)目ID、標(biāo)題、提要、關(guān)鍵字、格式和演員表。圖1A示出了TV-anytime的XML文件的示例,圖1B示出了一個(gè)樹(shù)結(jié)構(gòu),其中表達(dá)了XML文件的內(nèi)容??梢詮膱D1B看出,在諸如TV-anytime的一般商業(yè)應(yīng)用領(lǐng)域中的XML文件的樹(shù)結(jié)構(gòu)非常大和復(fù)雜。因此,當(dāng)用戶請(qǐng)求搜索XML文件的時(shí)候,不容易定義一個(gè)準(zhǔn)確路徑。如果用戶試圖檢索在特定節(jié)目中演出的演員的姓名時(shí),用戶可以定義從根元素到姓名元素列舉的絕對(duì)路徑表達(dá)式,如/ProgramInformation/BasicDescription/CastList/CastMember/Agent/Name(/節(jié)目信息/簡(jiǎn)要說(shuō)明/演員表/演員/代理/姓名)。但是用戶也可以更簡(jiǎn)單地定義一個(gè)正則路徑表達(dá)式,其僅僅列舉用戶認(rèn)為需要的元素名稱,如/ProgramInformation//CastList//Agent/Name(/節(jié)目信息//演員表//代理/姓名)。在絕對(duì)路徑中的符號(hào)“/”表示在XML文件中直接的父子關(guān)系。在所述正則路徑表達(dá)式中符號(hào)“//”表示從父子關(guān)系擴(kuò)展的祖先-子孫關(guān)系,并且被廣泛用于正則路徑表達(dá)式。圖2是示出在正則路徑表達(dá)式中使用的主要符號(hào)和所述符號(hào)的表示法的表。具體而言,圖2示出了萬(wàn)維網(wǎng)聯(lián)盟(W3C)提出的關(guān)于XML查詢XQuery的正則路徑表達(dá)式的主要符號(hào)和所述主要符號(hào)的表示法。可以利用圖2的符號(hào)以幾種正則路徑表達(dá)式來(lái)表示單一的絕對(duì)路徑表達(dá)式。例如可用包括正則路徑表達(dá)式/ProgramInformation//CastList//Agent/Name的下列各種正則路徑表達(dá)式來(lái)表達(dá)絕對(duì)路徑表達(dá)式/ProgramInformation/BasicDescription/CastList/CastMember/Agent/Name//CastMember//Name/ProgramInformation/*/Agent/Name//CastList//Agent/?其中,//CastMember//Name簡(jiǎn)單地表示了絕對(duì)路徑表達(dá)式的內(nèi)容。象這樣,用戶可以以不同的正則路徑表達(dá)式來(lái)表達(dá)內(nèi)容。因此,用于處理正則路徑表達(dá)式的系統(tǒng)根據(jù)如何翻譯用戶的查詢可以提供的差別很大的性能。在現(xiàn)有技術(shù)中,關(guān)系數(shù)據(jù)庫(kù)提供下列兩個(gè)表以處理關(guān)于XML文件的正則路徑表達(dá)式查詢。Elements(term,docno,begin,end,level)Texts(term,docno,wordno,level)元素表(Elementtable)存儲(chǔ)了XML文件的元素和屬性,它們以一個(gè)元素和一個(gè)屬性的元組形式被指定為標(biāo)記。在元素表中,“term”表示標(biāo)記的名稱?!癲ocno”表示所述標(biāo)記所屬的文件的ID,“begin”和“end”定義了“term”所屬的標(biāo)記的偏移范圍,“l(fā)evel”表示在XML文件中的元素的復(fù)制頻率,即祖先的數(shù)量。文本表以獨(dú)立值的元組存儲(chǔ)包括在XML文件的標(biāo)記中的值。在文本表中,“docno”表示特定值的ID,“wordno”表示在XML文件中的值的偏移,“l(fā)evel(級(jí))”表示在XML文件中元素的復(fù)制頻率。在這個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)中,通過(guò)利用包括在元素表中的元素的偏移和級(jí)(level)值執(zhí)行自結(jié)合來(lái)處理正則路徑表達(dá)式。圖3示出了一個(gè)實(shí)施例,其中利用圖2的元素表和文本表來(lái)表達(dá)元素。如果如(1,1∶23,0)、(1,8∶22,1)或(1,14∶21,2)來(lái)描述一個(gè)元素,即部分,則在第一列中的數(shù)字表示“docno”,在中間列中的數(shù)字組表示“begin(開(kāi)始)”和“end(結(jié)束)”偏移,在最后一個(gè)列中的數(shù)字表示“l(fā)evel(級(jí))”。換句話說(shuō),在現(xiàn)有技術(shù)中,通過(guò)自結(jié)合元素表來(lái)處理正則路徑表達(dá)式。例如,在下面的SQL查詢中表示正則路徑表達(dá)式//CastMember//NameSelecte1FromElementsel,Elementse2Wheree1.term=‘CastMember’Ande2.term=‘Name’Ande1.begin<e2.beginAnde1.end>e2.ehdAnde1.docno=e2.docno通過(guò)將用于元素CastMember的表的元素與用于元素Name的表的元素的自連接操作來(lái)處理這個(gè)查詢。由符號(hào)“//”表達(dá)的祖先-子孫關(guān)系可以基于在兩個(gè)元素的偏移之間的包括關(guān)系來(lái)建立。換句話說(shuō),如果在XML文件中的元素A的“begin”偏移小于在所述XML文件中的元素B,并且元素A的“end”偏移大于元素B,則建立一個(gè)正則路徑表達(dá)式A//B。因此,上述的查詢表示條件元素CastMember的“begin”偏移小于元素Name,并且元素CastMember的“end”偏移大于元素Name?,F(xiàn)有的正則路徑表達(dá)式處理方法有一個(gè)問(wèn)題,即查詢處理系統(tǒng)的性能取決于用戶如何描述正則路徑表達(dá)式。換句話說(shuō),根據(jù)正則路徑表達(dá)式已經(jīng)表示了多少標(biāo)記來(lái)確定被要求來(lái)處理正則路徑表達(dá)式的連接操作的頻率。如上所述,由于可以將一個(gè)絕對(duì)路徑表達(dá)式轉(zhuǎn)換為幾個(gè)正則路徑表達(dá)式,因此連接操作的頻率不同。假定正則路徑表達(dá)式//CastMember//Name、/ProgramInformation/BasicDescription/CastList/CastMember/Agent/Name和/ProgramInformation//CastList//Agent/Name表示同一內(nèi)容。正則路徑表達(dá)式//CastMember//Name僅僅需要一次連接操作。正則路徑表達(dá)式/ProgramInformation/BasicDescription/CastList/CastMember/Agent/Name需要5次連接操作。正則路徑表達(dá)式/ProgramInformation//CastList//Agent/Name需要3次連接操作。如上所述,現(xiàn)有的正則路徑表達(dá)式處理方法有很多問(wèn)題,所以不適合實(shí)際的應(yīng)用領(lǐng)域。因此,存儲(chǔ)和檢索XML文件的技術(shù)已經(jīng)被認(rèn)為是在與XML處理相關(guān)的應(yīng)用領(lǐng)域中的一個(gè)技術(shù)瓶頸。在被提出來(lái)解決上述問(wèn)題的根據(jù)本發(fā)明的一種路徑索引查找方法中,向現(xiàn)有的兩個(gè)元素和文本表中加入了下面兩個(gè)表以便索引XML文件PathLookup(Pathname,pathid,indexflag)ExtendedEdge(pathid,sorid,tarid)路徑查找(PathLookup)表存儲(chǔ)在以元組解析(parsing)XML文件后獲得的可能的路徑。在路徑查找表中,“pathname”表示路徑的名稱,“pathid”表示路徑的ID,并且“indexflag”表示是否在擴(kuò)展邊緣表(ExtendedEdge)中索引路徑。擴(kuò)展邊緣表存儲(chǔ)長(zhǎng)度上是1或更大的路徑的索引信息。在擴(kuò)展邊緣表中,“pathid”表示在路徑查找表中指示元組的路徑的ID,“sorid(源ID)”和“tarid(目標(biāo)ID)”表示在元素表中的元素的ID。當(dāng)向數(shù)據(jù)庫(kù)輸入XML文件的時(shí)候,所有的可能路徑名稱與它們的ID一起以元組被提取并存儲(chǔ)在路徑查找表中。因?yàn)榭梢栽诮馕鑫募陂g提取XML文件的路徑,因此XML文件的DTD或其XML模式是不必要的。在XML文件的樹(shù)結(jié)構(gòu)中,在對(duì)于具有距離根級(jí)第k級(jí)的接點(diǎn)A的可能路徑中可能存在k個(gè)以A結(jié)束的路徑,它們的長(zhǎng)度是1或更大。在此,應(yīng)當(dāng)注意在提取文件的路徑時(shí),從前一個(gè)文件提取的路徑不輸入到數(shù)據(jù)庫(kù)中。因此,即使當(dāng)具有類似數(shù)據(jù)結(jié)構(gòu)的大XML文件被輸入到數(shù)據(jù)庫(kù)時(shí),路徑查找表的大小不大幅度地增加。路徑查找表作為一個(gè)索引,用于迅速將用戶輸入的正則路徑表達(dá)式轉(zhuǎn)換為實(shí)際存在于XML數(shù)據(jù)空間的路徑。利用SQL類語(yǔ)法來(lái)執(zhí)行將用戶定義的正則路徑表達(dá)式映射為存儲(chǔ)在路徑查找表中的路徑的操作。為了簡(jiǎn)化利用SQL語(yǔ)法的正則路徑表達(dá)式的映射,當(dāng)路徑的名稱被存儲(chǔ)在路徑查找表的時(shí)候,一個(gè)標(biāo)記被附加在路徑的每個(gè)節(jié)點(diǎn),并且然后將結(jié)果路徑的名稱存儲(chǔ)其中。例如,以‘<A><B><C>’的形式存儲(chǔ)一個(gè)路徑‘A/B/C’。圖4是示出了正則路徑表達(dá)式的SQL類語(yǔ)法的表。為了利用圖4的SQL類語(yǔ)法從路徑查找表檢索路徑,從上述示例的正則路徑表達(dá)式/ProgramInformation//CastList//Agent/Name寫(xiě)下列SQL語(yǔ)法SelectpathidFromPathLookupWherepathnamelike‘<ProgramInformation>%<CastList>%<Agent><Name>’;同時(shí),擴(kuò)展邊緣表是用于迅速處理XML文件的路徑的路徑索引表。因?yàn)樵跀U(kuò)展邊緣表中的每個(gè)元組含有用于查找的pathid,因此引用路徑查找表的元組。表示每個(gè)路徑的起始節(jié)點(diǎn)(sorid)和結(jié)束節(jié)點(diǎn)(tarid)字段值引用元素表的元組。如果結(jié)束節(jié)點(diǎn)(tarid)表示文本而不是元素,則結(jié)束節(jié)點(diǎn)(tarid)引用文本表的元組。應(yīng)當(dāng)注意,對(duì)照其中通過(guò)重復(fù)連接操作來(lái)處理路徑的現(xiàn)有邊緣方法,擴(kuò)展邊緣表具有這樣的結(jié)構(gòu),其中可以通過(guò)一個(gè)連接操作來(lái)訪問(wèn)很長(zhǎng)的路徑而不需要另外的連接操作。圖5A示出了輸入的XML文件的一個(gè)實(shí)施例。圖5B示出了圖5A的XML文件的路徑查找表的一個(gè)實(shí)施例。圖5C示出了圖5A的XML文件的擴(kuò)展邊緣表的一個(gè)實(shí)施例。換句話說(shuō),圖5A示出了輸入的XML文件的結(jié)構(gòu),圖5B示出了當(dāng)輸入XML文件時(shí)新產(chǎn)生的路徑的路徑查找表。圖5B的路徑查找表的字段indexflag表示是否在擴(kuò)展邊緣表中索引了新產(chǎn)生的路徑??梢詮膱D5B看出,在擴(kuò)展邊緣表中僅僅索引了路徑/A/B/C和/A/B/D。因?yàn)閿U(kuò)展邊緣表與XML文件的節(jié)點(diǎn)的數(shù)量的平方成正比,如果索引所有的路徑,則路徑查找表的大小可能過(guò)量地?cái)U(kuò)大。因此,僅僅在擴(kuò)展邊緣表中存儲(chǔ)被分類用來(lái)被索引的路徑。圖5C的擴(kuò)展邊緣表存儲(chǔ)了在圖5B的路徑查找表的indexflag字段中指示的路徑/A/B/C和/A/B/D的實(shí)際路徑實(shí)例。在擴(kuò)展邊緣表中,因?yàn)樵L問(wèn)對(duì)于給定的正則路徑表達(dá)式的由在路徑查找表中找到的pathid表示的元組,因此pathid被指定為擴(kuò)展邊緣表的關(guān)鍵字段。如果B-樹(shù)索引被用在所述關(guān)鍵字段中,則對(duì)應(yīng)于所述pathid的路徑可以被非??斓乇辉L問(wèn)。在利用路徑索引查找方法的正則路徑表達(dá)式的處理中,首先,從路徑查找表找到正則路徑表達(dá)式的可能路徑表達(dá)式,并且獲得可能路徑的ID。其后,從擴(kuò)展邊緣表獲得對(duì)應(yīng)于所獲得的路徑ID的sorid和tarid值??梢栽趐athid連接操作中表示上述兩個(gè)步驟。圖6是用于表示根據(jù)本發(fā)明的路徑索引查找方法的結(jié)構(gòu)圖。如圖6所示,在根據(jù)本發(fā)明的路徑索引查找方法中,通過(guò)路徑查找表搜索和擴(kuò)展邊緣表B-樹(shù)搜索來(lái)處理正則路徑表達(dá)式,而不管由用戶定義的正則路徑表達(dá)式的類型如何。當(dāng)在現(xiàn)有方法中處理TV-anytimeXML文件的正則路徑表達(dá)式/ProgramInformation//CastList//Agent/Name時(shí),獲得下面的SQL語(yǔ)法<prelisting-type="program-listing"> Selecte4.id FromElementse1, Elementse2, Elementse3, Elementse4 Wheree1.tagname=‘Programlnformation’ Ande2.tagname=‘CastList’ Ande3.tagname=‘Agent’ Ande4.tagname=‘Name’ Ande1.docno=e2.docno Ande1.begin<e2.begin Ande1.end>e2.end Ande2.docno=e3.docno Ande2.begin<e3.begin Ande3.docno=e4.docno Ande3.level=e4.level1;</pre>即,用于現(xiàn)有的正則路徑表達(dá)式處理方法的SQL語(yǔ)法包括三個(gè)連接操作。但是,通過(guò)一個(gè)連接操作來(lái)處理用于根據(jù)本發(fā)明的路徑索引查找方法的下列SQL語(yǔ)法Selecteet.TaridFromPathLookuppl,ExtendedEdgeeeWherepl.pathnamelike‘/ProgramInformation%CastList%Agent/Name’Andpl.pathid=ee.pathid圖7是用于表示根據(jù)本發(fā)明的正則路徑表達(dá)式查詢的路徑索引查找方法的流程圖。在步驟710中,所有的可能路徑名稱從XML文件被提取并與pathid信息和indexflag信息一起存儲(chǔ)在路徑查找表中。在步驟720,在擴(kuò)展邊緣表中存儲(chǔ)每個(gè)pathid的sorid和tarid。在步驟730,接收到一個(gè)正則路徑表達(dá)式。在步驟740,對(duì)路徑查找表搜索對(duì)應(yīng)于所述正則路徑表達(dá)式的路徑表達(dá)式,并且獲得所述路徑表達(dá)式的pathid。在此,利用SQL類語(yǔ)法從路徑查找表獲得路徑的pathid。在連接操作期間,所獲得的pathid作為連接密鑰(key)。在步驟750,通過(guò)使用所獲得的pathid作為搜索密鑰來(lái)對(duì)擴(kuò)展邊緣表搜索路徑的sorid和tarid。在此,對(duì)擴(kuò)展邊緣表進(jìn)行B-樹(shù)搜索。圖8是根據(jù)本發(fā)明的、用于正則路徑表達(dá)式查詢的路徑索引查找裝置的方框圖。路徑索引查找裝置包括路徑查找表存儲(chǔ)單元810、擴(kuò)展邊緣表存儲(chǔ)單元820、pathid檢索單元830和路徑信息確定和輸出單元840。路徑查找表存儲(chǔ)單元810從XML文件提取多個(gè)路徑信息,并且將它們與從用戶接收到的pathid信息和indexflag信息一起存儲(chǔ)。路徑信息、pathid信息和indexflag信息被以圖5B所示的表的格式存儲(chǔ)。擴(kuò)展邊緣表存儲(chǔ)單元820從用戶接收與每個(gè)pathid有關(guān)的sorid和tarid,并且以圖5C所示的表的格式存儲(chǔ)它們。pathid檢索單元830從用戶接收關(guān)于正則路徑表達(dá)式的信息,并且檢索對(duì)應(yīng)于正則路徑表達(dá)式的路徑以獲得路徑的pathid。路徑信息確定和輸出單元840對(duì)擴(kuò)展邊緣表存儲(chǔ)單元820搜索對(duì)應(yīng)于在pathid檢索單元830獲得的pathid的路徑信息,從路徑信息提取sorid和tarid信息,并且輸出它們。進(jìn)行了用于將根據(jù)本發(fā)明的用于正則路徑表達(dá)式查詢的路徑索引查找方法的性能與現(xiàn)有偏移連接方法的性能相比較的實(shí)驗(yàn)。在所述實(shí)驗(yàn)中,1200個(gè)TV-anytime文件被輸入到關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),PostgreSQL,并且在完成所述輸入后的表的元素的節(jié)點(diǎn)的數(shù)量是大約1,000,000。圖9是在本發(fā)明的上述實(shí)驗(yàn)中使用的正則路徑表達(dá)式表。如圖9所示,所述實(shí)驗(yàn)測(cè)量了被要求來(lái)處理具有2-9個(gè)節(jié)點(diǎn)的正則路徑表達(dá)式的時(shí)間的反應(yīng)周期。圖10是示出了根據(jù)本發(fā)明的、在關(guān)于正則路徑表達(dá)式中節(jié)點(diǎn)數(shù)量的時(shí)間的反應(yīng)周期中的變化的視圖。在圖10中,偏移-連接表示在現(xiàn)有偏移-連接方法中的反應(yīng)時(shí)間,路徑查找表示在根據(jù)本發(fā)明的路徑索引查找方法中的反應(yīng)時(shí)間。如圖10所示,在現(xiàn)有的偏移-結(jié)合方法中,隨著正則路徑表達(dá)式的變長(zhǎng),反應(yīng)時(shí)間增加。另一方面,根據(jù)本發(fā)明的路徑索引查找方法提供了均勻的良好性能而不對(duì)正則路徑表達(dá)式的長(zhǎng)度敏感。甚至當(dāng)在正則路徑表達(dá)式中的節(jié)點(diǎn)的數(shù)量是2的時(shí)候,即,甚至當(dāng)在現(xiàn)有的偏移-連接方法中要求一次的連接操作時(shí),路徑查找小于偏移-連接,因?yàn)槁窂剿饕檎曳椒ㄊ沟脭U(kuò)展邊緣表能夠利用B-樹(shù)迅速訪問(wèn)路徑表達(dá)式的元組。因此,路徑索引查找方法與現(xiàn)有的偏移-連接方法相比提供了更好的性能。而且,因?yàn)楝F(xiàn)有的偏移-連接方法使用在偏移之間的包括關(guān)系,因此偏移-連接大于路徑查找。本發(fā)明的實(shí)施例可以被寫(xiě)為計(jì)算機(jī)程序,存儲(chǔ)在計(jì)算機(jī)可讀的記錄介質(zhì)并且在通用的數(shù)字計(jì)算機(jī)中被執(zhí)行。用于本發(fā)明的實(shí)施例的數(shù)據(jù)的結(jié)構(gòu)也可以以多種方式被記錄到計(jì)算機(jī)可讀的記錄介質(zhì)上。計(jì)算機(jī)可讀的記錄介質(zhì)的示例包括磁存儲(chǔ)媒體(如ROM、軟盤、硬盤等)、光記錄媒體(如CD-ROM或DVD)和諸如載波的存儲(chǔ)介質(zhì)(如通過(guò)因特網(wǎng)的傳輸)。雖然已經(jīng)參照本發(fā)明的示范實(shí)施例具體示出和說(shuō)明了本發(fā)明,本領(lǐng)域的普通技術(shù)人員會(huì)明白,在不脫離所附的權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下,可以進(jìn)行形式和細(xì)節(jié)上的各種改變。如上所述,本發(fā)明提供了一種利用單一連接操作處理正則路徑表達(dá)式而不管用戶做出的查詢的形式如何的方法,所述正則路徑表達(dá)式是XML查詢的格式的核心部分。因此,所述方法可以有效地用于要求存儲(chǔ)XML文件的數(shù)字電視和其他各種信息裝置的EPG信息索引和檢索引擎中。而且,在本發(fā)明中,XML文件被有效地索引和存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。于是,作為核心用戶XML查詢類型的正則路徑表達(dá)式查詢被穩(wěn)定和迅速地處理而不管用戶做出的查詢的格式如何。具體講,對(duì)照現(xiàn)有技術(shù),本發(fā)明可以通過(guò)一次連接操作來(lái)處理正則路徑表達(dá)式而不管用戶做出的查詢的格式如何,其中在現(xiàn)有技術(shù)中,由于依賴于用戶做出的查詢的格式,正則路徑表達(dá)式被不穩(wěn)定地處理。權(quán)利要求1.一種路徑索引查找方法,包括從以包括擴(kuò)展標(biāo)記語(yǔ)言(XML)的預(yù)定語(yǔ)言寫(xiě)的文件中提取表示信息源的多個(gè)路徑信息;從用戶接收并在路徑查找表存儲(chǔ)單元存儲(chǔ)與多個(gè)路徑信息和表示是否已經(jīng)在另一個(gè)存儲(chǔ)單元中詳細(xì)存儲(chǔ)了所述多個(gè)路徑信息的索引標(biāo)志信息對(duì)應(yīng)的用戶路徑ID信息;如果索引標(biāo)志信息對(duì)應(yīng)于預(yù)定的值,則從用戶接收每個(gè)路徑信息的源ID和目標(biāo)ID,并將其存儲(chǔ)在擴(kuò)展邊緣表存儲(chǔ)單元中;從用戶接收用于檢索信息的正則路徑表達(dá)式,并且對(duì)路徑查找表存儲(chǔ)單元搜索與正則路徑表達(dá)式匹配的路徑表達(dá)式信息,以獲得對(duì)應(yīng)于要檢索的信息的路徑的路徑ID信息;及對(duì)擴(kuò)展邊緣表存儲(chǔ)單元搜索與在上面步驟中獲得的路徑ID信息匹配的路徑ID信息的源ID和目標(biāo)ID。2.根據(jù)權(quán)利要求1的路徑索引查找方法,其中存儲(chǔ)在所述路徑查找表存儲(chǔ)單元中的路徑表達(dá)信息包括路徑名稱信息,表示路徑名稱,其中要檢索的信息沿著這些路徑被存儲(chǔ)在所述文件中;路徑ID信息,表示路徑的ID;及索引標(biāo)志信息,表示是否在擴(kuò)展邊緣表中索引路徑,所述擴(kuò)展邊緣表存儲(chǔ)所述文件中的許多路徑的源ID和目標(biāo)ID。3.根據(jù)權(quán)利要求1的路徑索引查找方法,其中擴(kuò)展邊緣表包括路徑ID信息,表示路徑ID,其中要檢索的信息沿著這些路徑被存儲(chǔ)在所述文件中;源ID信息,表示路徑的源ID;及目標(biāo)ID信息,表示路徑的目標(biāo)ID。4.一種計(jì)算機(jī)記錄介質(zhì),它存儲(chǔ)用于執(zhí)行權(quán)利要求1的方法的計(jì)算機(jī)程序。5.一種路徑索引查找裝置,包括路徑查找表存儲(chǔ)單元,從用戶接收在以包括XML的預(yù)定語(yǔ)言寫(xiě)的文件中包括的、與用于信息源的至少一段路徑信息對(duì)應(yīng)的路徑ID信息,和表示是否已經(jīng)在另一個(gè)存儲(chǔ)單元中指定了路徑信息的索引標(biāo)志信息,并且存儲(chǔ)路徑ID信息和索引標(biāo)志信息;擴(kuò)展邊緣表存儲(chǔ)單元,如果索引標(biāo)志信息具有預(yù)定值,則從用戶接收每個(gè)路徑信息的源ID和目標(biāo)ID,并存儲(chǔ)源ID和目標(biāo)ID;路徑ID檢索單元,從用戶接收用于檢索信息的正則路徑表達(dá)式,對(duì)路徑查找表存儲(chǔ)單元搜索與所述正則路徑表達(dá)式匹配的路徑表達(dá)式信息,并且獲得與要檢索的信息的路徑對(duì)應(yīng)的路徑ID信息;及路徑信息確定和輸出單元,對(duì)擴(kuò)展邊緣表存儲(chǔ)單元搜索與在路徑ID檢索單元中獲得的路徑ID信息匹配的路徑ID信息的源ID和目標(biāo)ID,并且輸出匹配的路徑ID信息的源ID和目標(biāo)ID。6.一種計(jì)算機(jī)記錄介質(zhì),它存儲(chǔ)了一種路徑查找表,用于在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)以包括XML的預(yù)定語(yǔ)言寫(xiě)的文件,并且包括多個(gè)用于信息源的路徑信息,所述路徑查找表包括路徑名稱信息,表示路徑名稱,其中要檢索的信息沿著這些路徑被存儲(chǔ)在所述文件中;路徑ID信息,表示路徑的ID;及索引標(biāo)志信息,表示是否在擴(kuò)展邊緣表中索引路徑,所述擴(kuò)展邊緣表存儲(chǔ)所述文件中的許多路徑的源ID和目標(biāo)ID,其中,如果從用戶接收到用于檢索信息的正則路徑表達(dá)式,則搜索關(guān)于與所述正則路徑表達(dá)式匹配的路徑表達(dá)式的路徑名稱信息,并且輸出對(duì)應(yīng)于所述路徑名稱信息的路徑ID信息。7.一種計(jì)算機(jī)記錄介質(zhì),它存儲(chǔ)了擴(kuò)展邊緣表,用于在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)以包括XML的預(yù)定語(yǔ)言寫(xiě)的文件,并且包括多個(gè)用于信息源的路徑信息,所述擴(kuò)展邊緣表包括路徑ID信息,表示路徑ID,其中要檢索的信息沿著這些路徑被存儲(chǔ)在所述文件中;源ID信息,表示路徑的源ID;及目標(biāo)ID信息,表示路徑的目標(biāo)ID,其中,如果從用戶接收到要檢索信息的路徑ID信息,則輸出對(duì)應(yīng)于所述路徑ID信息的源ID信息和目標(biāo)ID信息。全文摘要一種路徑索引查找方法,即擴(kuò)展標(biāo)記語(yǔ)言(XML)索引方法,通過(guò)這個(gè)方法,關(guān)系數(shù)據(jù)庫(kù)可以穩(wěn)定地處理查詢而不管用戶如何定義這個(gè)查詢。在路徑索引查找方法中,利用路徑查找表和擴(kuò)展邊緣表通過(guò)單一的連接操作可以處理具有特定長(zhǎng)度的正則路徑表達(dá)式。因此作為XML用戶查詢的核心類型的正則路徑表達(dá)式查詢可以被穩(wěn)定和迅速地處理,而不管用戶如何描述所述查詢。文檔編號(hào)G06F9/45GK1457003SQ0310852公開(kāi)日2003年11月19日申請(qǐng)日期2003年3月28日優(yōu)先權(quán)日2002年5月8日發(fā)明者申孝燮,李蕙受申請(qǐng)人:三星電子株式會(huì)社