專利名稱:有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及企業(yè)信息系統(tǒng)應(yīng)用技術(shù),特別涉及一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法、裝置及系統(tǒng)。
背景技術(shù):
有向無環(huán)圖是計算機(jī)圖論中非常重要的一種用于存儲和檢索數(shù)據(jù)信息的結(jié)構(gòu)形式,可以利用多種搜索方法來進(jìn)行存儲和檢索有向無環(huán)圖中的數(shù)據(jù),尤其是在軟件設(shè)計、企業(yè)信息及生物信息學(xué)等領(lǐng)域中,利用有向無環(huán)圖存儲和查詢數(shù)據(jù)占據(jù)重要的地位。有向無環(huán)圖包括節(jié)點和路徑,節(jié)點之間通過路徑連接起來,連接在節(jié)點之間的路徑具有一個方向,在有向無環(huán)圖可以表示為一個箭頭來表示路徑,通常將箭頭的起始節(jié)點定義為開始節(jié)點,以箭頭所指的節(jié)點為結(jié)束節(jié)點,在有向無環(huán)圖中,順著路徑的方向為開始節(jié)點的下游,逆著路徑的方向為開始節(jié)點的上游,并且,如果以任意節(jié)點作為起點,按照路徑的箭頭所指的方向遍歷有向無環(huán)圖中的各個節(jié)點的路徑串,不可能重新經(jīng)過到作為起點的節(jié)點。有向無環(huán)圖在實際應(yīng)用中,由于有向無環(huán)圖的類似于樹形結(jié)構(gòu)的復(fù)雜性,一直無法高效地用關(guān)系型數(shù)據(jù)庫來記錄、修改和查詢,原因在于有向無環(huán)圖的每一個節(jié)點都可以作為不同路徑上的開始節(jié)點或結(jié)束節(jié)點,通過開始節(jié)點和結(jié)束節(jié)點之間的關(guān)聯(lián)路徑的查詢或樹形查詢時不能有效遍歷有向無環(huán)圖中的各個節(jié)點,查詢有向無環(huán)圖中各個節(jié)點的關(guān)聯(lián)路徑信息時效率低。
發(fā)明內(nèi)容
本發(fā)明實施例的目的是提供一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法、裝置及系統(tǒng),用于解決現(xiàn)有技術(shù)中查詢各個節(jié)點的關(guān)聯(lián)信息時效率低的問題。為解決上述問題,本發(fā)明實施例提供了一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法,其中,包括獲取目標(biāo)節(jié)點的屬性信息;根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑并存儲;從所述有向無環(huán)圖中查詢所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑的信息。本發(fā)明實施例還提供了一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置,其中,包括獲取單元,用于獲取目標(biāo)節(jié)點的屬性信息;創(chuàng)建單元,用于根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑并存儲;查詢單元,從所述有向無環(huán)圖中查詢所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑信息。本發(fā)明實施例還提供了一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取系統(tǒng),其中,包CN 102541875 A
括顯示裝置和上述的任意一種存取裝置。本發(fā)明實施例獲取目標(biāo)節(jié)點的屬性信息后,根據(jù)目標(biāo)節(jié)點與各級關(guān)聯(lián)節(jié)點的順序關(guān)系以及遍歷有向無環(huán)圖中的各級關(guān)聯(lián)節(jié)點,創(chuàng)建起目標(biāo)節(jié)點的各級關(guān)聯(lián)路徑以及將各級關(guān)聯(lián)路徑串聯(lián)起來得到的路徑串,確保插入節(jié)點之后的有向無環(huán)圖中各節(jié)點之間的關(guān)系清晰、完整,從而簡化有向無環(huán)圖存儲或查詢節(jié)點數(shù)據(jù)的復(fù)雜度,并有效提高查詢節(jié)點數(shù)據(jù)的效率。
圖1為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法第一實施例的流程圖;圖2為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法第二實施例的流程圖;圖3為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法第二實施例的有向無環(huán)圖;圖4為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置第一具體實施例的結(jié)構(gòu)示意圖;圖5為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置第二具體實施例的結(jié)構(gòu)示意圖;圖6為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取系統(tǒng)具體實施例的結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明各實施例根據(jù)目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建其關(guān)聯(lián)路徑并存儲,用戶端可以從有向無環(huán)圖中查詢到目標(biāo)節(jié)點的關(guān)聯(lián)路徑的信息,既能確保插入節(jié)點之后的有向無環(huán)圖中各節(jié)點之間的關(guān)系清晰、完整,從而簡化有向無環(huán)圖存儲或查詢節(jié)點數(shù)據(jù)的復(fù)雜度,又能提高查詢節(jié)點數(shù)據(jù)的效率。下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步地詳細(xì)描述。圖1為本發(fā)明提供的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法第一實施例的流程圖。如圖1所示,本發(fā)明有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法具體包括如下步驟步驟101、獲取目標(biāo)節(jié)點的屬性信息。在本發(fā)明實施例中,目標(biāo)節(jié)點為待插入有向無環(huán)圖中的節(jié)點,有向無環(huán)圖存儲在關(guān)系型數(shù)據(jù)庫中,在需要在有向無環(huán)圖中插入目標(biāo)節(jié)點時,首先從關(guān)系型數(shù)據(jù)庫的路徑表中獲取目標(biāo)節(jié)點的屬性信息,包括目標(biāo)節(jié)點與有向無環(huán)圖中各級關(guān)聯(lián)節(jié)點之間的順序關(guān)系等信息,然后進(jìn)入步驟102。步驟102、根據(jù)目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建目標(biāo)節(jié)點的關(guān)聯(lián)路徑并存儲。關(guān)聯(lián)路徑包括目標(biāo)節(jié)點的直接路徑或路徑串,在本發(fā)明實施例中以創(chuàng)建目標(biāo)節(jié)點的路徑串為例來介紹幾方案,根據(jù)目標(biāo)節(jié)點的屬性信息遍歷目標(biāo)節(jié)點的各級關(guān)聯(lián)節(jié)點創(chuàng)建目標(biāo)節(jié)點的各級關(guān)聯(lián)路徑并存儲到有向無環(huán)圖中。首先在有向無環(huán)圖中建立以該目標(biāo)節(jié)點為開始節(jié)點、以與其關(guān)聯(lián)的下一級節(jié)點為結(jié)束節(jié)點之間的路徑,然后沿著該路徑的方向并以該路徑的結(jié)束節(jié)點為開始節(jié)點創(chuàng)建目標(biāo)節(jié)點的下一級關(guān)聯(lián)路徑,依次類推遍歷目標(biāo)節(jié)點下游的各級關(guān)聯(lián)節(jié)點以創(chuàng)建目標(biāo)節(jié)點下游的各級關(guān)聯(lián)路徑;然后,遍歷目標(biāo)節(jié)點上游的各級關(guān)聯(lián)節(jié)點以創(chuàng)建目標(biāo)節(jié)點上游的各級關(guān)聯(lián)路徑,首先創(chuàng)建以目標(biāo)節(jié)點為結(jié)束節(jié)點的上一級路徑,然后再以該路徑中的開始節(jié)點為結(jié)束節(jié)點繼續(xù)創(chuàng)建該目標(biāo)節(jié)點的更上一級路徑, 依次類推遍歷目標(biāo)節(jié)點下游的各級關(guān)聯(lián)節(jié)點以創(chuàng)建目標(biāo)節(jié)點下游的關(guān)聯(lián)路徑。在有向無環(huán)圖中經(jīng)過遍歷目標(biāo)節(jié)點上游和下游的各級關(guān)聯(lián)節(jié)點,依次創(chuàng)建起目標(biāo)節(jié)點的各級關(guān)聯(lián)路徑,然后將目標(biāo)節(jié)點的最上一級路徑到目標(biāo)節(jié)點的最下一級路徑的各級關(guān)聯(lián)路徑串聯(lián)起來,得到包括該目標(biāo)節(jié)點的完整的關(guān)聯(lián)關(guān)系信息的路徑串。在創(chuàng)建目標(biāo)節(jié)點路徑串的過程中,有向無環(huán)圖的關(guān)系型數(shù)據(jù)庫中對關(guān)聯(lián)路徑的記錄與對節(jié)點的記錄是解耦的,以減少在有向無環(huán)圖的關(guān)系型數(shù)據(jù)庫中對非關(guān)聯(lián)節(jié)點之間的記錄信息。在本發(fā)明實施例中,可以重新制定的路徑字段對有向無環(huán)圖中各個節(jié)點進(jìn)行插入或刪除的字段描述,如創(chuàng)建或刪除節(jié)點及其路徑的操作等字段描述,重新制定的節(jié)點及路徑的字段描述如表1所示,
權(quán)利要求
1.一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法,其特征在于,包括 獲取目標(biāo)節(jié)點的屬性信息;根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑并存儲;從所述有向無環(huán)圖中查詢所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑的信息。
2.根據(jù)權(quán)利要求1所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法,其特征在于還包括從所述有向無環(huán)圖中刪除所述目標(biāo)節(jié)點,包括刪除所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑信息。
3.根據(jù)權(quán)利要求1或2所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法,其特征在于, 所述根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑包括創(chuàng)建以所述目標(biāo)節(jié)點為開始節(jié)點的下游路徑串;創(chuàng)建以所述目標(biāo)節(jié)點的上游關(guān)聯(lián)節(jié)點到所述目標(biāo)節(jié)點的下一級關(guān)聯(lián)節(jié)點的上游路徑串;根據(jù)所述下游路徑串和所述上游路徑串創(chuàng)建所述目標(biāo)節(jié)點的完整路徑串。
4.根據(jù)權(quán)利要求1或2所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法,其特征在于, 所述根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑包括所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑以路徑表的格式存儲在所述有向無環(huán)圖的關(guān)系型數(shù)據(jù)庫中。
5.根據(jù)權(quán)利要求3所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法,其特征在于,所述根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑進(jìn)一步包括遍歷所述目標(biāo)節(jié)點的各級關(guān)聯(lián)節(jié)點以在所述有向無環(huán)圖的關(guān)系數(shù)據(jù)庫中記錄所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑信息。
6.一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置,其特征在于,包括 獲取單元,用于獲取目標(biāo)節(jié)點的屬性信息;創(chuàng)建單元,用于根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑并存儲;查詢單元,從所述有向無環(huán)圖中查詢所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑信息。
7.根據(jù)權(quán)利要求6所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置,其特征在于,所述創(chuàng)建單元用于從所述有向無環(huán)圖中刪除所述目標(biāo)節(jié)點,包括刪除所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑信息。
8.根據(jù)權(quán)利要求6或7所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置,其特征在于, 所述創(chuàng)建單元用于創(chuàng)建以所述目標(biāo)節(jié)點為開始節(jié)點的下游路徑串;創(chuàng)建以所述目標(biāo)節(jié)點的上游關(guān)聯(lián)節(jié)點到所述目標(biāo)節(jié)點的下一級關(guān)聯(lián)節(jié)點的上游路徑串;根據(jù)所述下游路徑串和所述上游路徑串創(chuàng)建所述目標(biāo)節(jié)點的完整路徑串。
9.根據(jù)權(quán)利要求6或7所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置,其特征在于, 所述創(chuàng)建單元還用于存儲所述有向無環(huán)圖的關(guān)系型數(shù)據(jù)庫,所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑以路徑表的格式存儲在所述有向無環(huán)圖的關(guān)系型數(shù)據(jù)庫中。
10.根據(jù)權(quán)利要求8所述的有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取裝置,其特征在于, 所述創(chuàng)建單元用于遍歷所述目標(biāo)節(jié)點的各級關(guān)聯(lián)節(jié)點以在所述有向無環(huán)圖的關(guān)系數(shù)據(jù)庫中記錄所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑信息。
11.一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取系統(tǒng),其特征在于,包括顯示裝置和權(quán)利要求6-10中任意一項所述的存取裝置;所述顯示裝置用于顯示所述存取裝置查詢到的目標(biāo)節(jié)點的關(guān)聯(lián)路徑。
全文摘要
本發(fā)明涉及一種有向無環(huán)圖的關(guān)系型節(jié)點數(shù)據(jù)的存取方法、裝置及系統(tǒng),其中,方法包括獲取目標(biāo)節(jié)點的屬性信息;根據(jù)所述目標(biāo)節(jié)點的屬性信息在有向無環(huán)圖中創(chuàng)建所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑并存儲;從所述有向無環(huán)圖中查詢所述目標(biāo)節(jié)點的關(guān)聯(lián)路徑的信息。本發(fā)明實施例獲取目標(biāo)節(jié)點的屬性信息后,根據(jù)目標(biāo)節(jié)點與各級關(guān)聯(lián)節(jié)點的順序關(guān)系以及遍歷有向無環(huán)圖中的各級關(guān)聯(lián)節(jié)點,創(chuàng)建起目標(biāo)節(jié)點的各級關(guān)聯(lián)路徑以及將各級關(guān)聯(lián)路徑串聯(lián)起來得到的路徑串,確保插入節(jié)點之后的有向無環(huán)圖中各節(jié)點之間的關(guān)系清晰、完整,從而簡化有向無環(huán)圖存儲或查詢節(jié)點數(shù)據(jù)的復(fù)雜度,并有效提高查詢節(jié)點數(shù)據(jù)的效率。
文檔編號G06F17/30GK102541875SQ20101059171
公開日2012年7月4日 申請日期2010年12月16日 優(yōu)先權(quán)日2010年12月16日
發(fā)明者王元 申請人:北京北大方正電子有限公司, 北京大學(xué), 北大方正集團(tuán)有限公司