一種數(shù)據(jù)替換方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫管理領(lǐng)域,尤其涉及一種數(shù)據(jù)替換方法及系統(tǒng),應(yīng)用于XML數(shù)據(jù)庫。
【背景技術(shù)】
[0002]在XML (Extensible Markup Language,可擴展標(biāo)記語言)數(shù)據(jù)庫的實際使用過程中,有很多類似于替換replace的需求,當(dāng)需要replace —數(shù)據(jù)時,當(dāng)該數(shù)據(jù)在數(shù)據(jù)庫中存在,則更新它,如果該數(shù)據(jù)不存在就插入這個數(shù)據(jù),但XML數(shù)據(jù)庫中不支持這樣的replace操作,現(xiàn)有數(shù)據(jù)替換的方法,需要客戶端先判斷舊值文檔或?qū)傩允欠翊嬖?,然后選擇更新或者插入,但查找操作和更新操作是兩個不同的語句,在查找操作中已經(jīng)有一次路徑查找步驟,而在更新操作中還需進行查找步驟,這次查找操作不僅使得數(shù)據(jù)替換的步驟更加繁瑣,而且增加了系統(tǒng)的工作負擔(dān),事務(wù)并發(fā)處理性能差,降低了系統(tǒng)的整體性能。
【發(fā)明內(nèi)容】
[0003]為了解決上述技術(shù)問題,本發(fā)明提供了一種數(shù)據(jù)替換方法及系統(tǒng),解決了現(xiàn)有XML數(shù)據(jù)庫中替換數(shù)據(jù)的方法,需要兩次查找步驟所造成步驟繁瑣,工作負擔(dān)大,事務(wù)并發(fā)處理性能差的問題。
[0004]依據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)替換方法,應(yīng)用于XML數(shù)據(jù)庫,其中,該數(shù)據(jù)替換方法包括:
[0005]查找待替換數(shù)據(jù)的目標(biāo)地址;
[0006]檢測目標(biāo)地址上是否存在與待替換數(shù)據(jù)名稱相同的舊值數(shù)據(jù);
[0007]若目標(biāo)地址上存在舊值數(shù)據(jù),將待替換數(shù)據(jù)替換舊值數(shù)據(jù);
[0008]若目標(biāo)地址上不存在舊值數(shù)據(jù),將待替換數(shù)據(jù)插入至目標(biāo)地址。
[0009]可選地,該數(shù)據(jù)替換方法在查找待替換數(shù)據(jù)的目標(biāo)地址的步驟之前還包括:
[0010]獲取所述待替換數(shù)據(jù)的目標(biāo)地址信息,根據(jù)所述目標(biāo)地址信息查找所述目標(biāo)地址。
[0011]可選地,當(dāng)待替換數(shù)據(jù)的類型為文檔時,該數(shù)據(jù)替換方法包括:
[0012]查找待替換文檔的目標(biāo)容器;
[0013]檢測目標(biāo)容器中是否存在與待替換文檔名稱相同的舊值文檔;
[0014]當(dāng)舊值文檔存在時,將待替換文檔替換舊值文檔;
[0015]當(dāng)舊值文檔不存在時,在目標(biāo)容器中插入待替換文檔。
[0016]可選地,在查找待替換文檔的目標(biāo)容器的步驟之前還包括:
[0017]創(chuàng)建并命名存儲文檔的容器,將不同類型的文檔存儲于對應(yīng)的容器中。
[0018]可選地,待替換文檔的類型包括XML文件、服務(wù)器端存在的文件或/和客戶端存在的文件。
[0019]可選地,當(dāng)待替換數(shù)據(jù)的類型為節(jié)點時,該數(shù)據(jù)替換方法包括:
[0020]查找待替換節(jié)點的目標(biāo)路徑,目標(biāo)路徑根據(jù)路徑表達式計算得出;
[0021]檢測目標(biāo)路徑處是否存在舊值節(jié)點;
[0022]當(dāng)舊值節(jié)點存在時,將待替換節(jié)點替換舊值節(jié)點;
[0023]當(dāng)舊值節(jié)點不存在時,判斷是否接收到插入指令,若接收到插入指令將待替換節(jié)點插入至目標(biāo)路徑處;若未接收到插入指令,則發(fā)送報錯信息。
[0024]可選地,待替換節(jié)點包括:XML路徑表達式片段或XML片段。
[0025]可選地,當(dāng)待替換數(shù)據(jù)的類型為節(jié)點屬性時,該數(shù)據(jù)替換方法包括:
[0026]查找待替換節(jié)點屬性的目標(biāo)路徑;
[0027]檢測目標(biāo)路徑處是否存在與待替換節(jié)點屬性名稱一致的舊值節(jié)點屬性,
[0028]當(dāng)舊值節(jié)點屬性存在時,將待替換節(jié)點屬性替換舊值節(jié)點屬性,
[0029]當(dāng)舊值節(jié)點屬性不存在時,判斷是否接收到插入指令,若接收到插入指令,將待替換節(jié)點屬性插入至目標(biāo)路徑處;若未接收到插入指令,則發(fā)送報錯信息。
[0030]依據(jù)本發(fā)明的另一個方面,還提供了一種數(shù)據(jù)替換系統(tǒng),應(yīng)用于XML數(shù)據(jù)庫,包括:
[0031]查詢模塊,用于查找待替換數(shù)據(jù)的目標(biāo)地址;
[0032]檢測模塊,用于檢測目標(biāo)地址上是否存在與待替換數(shù)據(jù)名稱相同的舊值數(shù)據(jù);
[0033]替換模塊,用于當(dāng)目標(biāo)地址上存在舊值數(shù)據(jù)時,將待替換數(shù)據(jù)替換舊值數(shù)據(jù);
[0034]插入模塊,用于當(dāng)目標(biāo)地址上不存在舊值數(shù)據(jù)時,將待替換數(shù)據(jù)插入至目標(biāo)地址。
[0035]可選地,該數(shù)據(jù)替換系統(tǒng),還包括:
[0036]獲取模塊,用于獲取待替換數(shù)據(jù)的目標(biāo)地址信息,根據(jù)目標(biāo)地址信息查找目標(biāo)地址。
[0037]可選地,查詢模塊包括:第一查詢模塊,用于查找待替換文檔的目標(biāo)容器;檢測模塊包括:第一檢測模塊,用于檢測目標(biāo)容器中是否存在與待替換文檔名稱相同的舊值文檔;替換模塊包括:第一替換模塊,用于當(dāng)舊值文檔存在時,將待替換文檔替換舊值文檔;插入模塊包括:第一插入模塊,用于當(dāng)舊值文檔不存在時,在目標(biāo)容器中插入待替換文檔。
[0038]可選地,該數(shù)據(jù)替換系統(tǒng),還包括:
[0039]創(chuàng)建模塊,用于創(chuàng)建并命名存儲文檔的容器,將不同類型的文檔存儲于對應(yīng)的容器中。
[0040]可選地,該查詢模塊還包括:第二查詢模塊,用于查找待替換節(jié)點的目標(biāo)路徑,目標(biāo)路徑根據(jù)路徑表達式計算得出;該檢測模塊還包括:第二檢測模塊,用于檢測目標(biāo)路徑處是否存在舊值節(jié)點;替換模塊還包括:第二替換模塊,用于當(dāng)舊值節(jié)點存在時,將待替換節(jié)點替換舊值節(jié)點;插入模塊還包括:第二插入模塊,用于當(dāng)舊值節(jié)點不存在時,判斷是否接收到插入指令,若接收到插入指令將待替換節(jié)點插入至目標(biāo)路徑處;若未接收到插入指令,則發(fā)送報錯信息。
[0041]可選地,該查詢模塊還包括:第三查詢模塊,用于查找待替換節(jié)點屬性的目標(biāo)路徑;該檢測模塊還包括:第三檢測模塊,用于檢測目標(biāo)路徑處是否存在與待替換節(jié)點屬性名稱一致的舊值節(jié)點屬性,替換模塊還包括:第三替換模塊,用于當(dāng)舊值節(jié)點屬性存在時,將待替換節(jié)點屬性替換舊值節(jié)點屬性,插入模塊還包括:第三插入模塊,用于當(dāng)舊值節(jié)點屬性不存在時,判斷是否接收到插入指令,若接收到插入指令,將待替換節(jié)點屬性插入至目標(biāo)路徑處;若未接收到插入指令,則發(fā)送報錯信息。
[0042]本發(fā)明的實施例的有益效果是:一種數(shù)據(jù)替換方法及系統(tǒng),通過將查詢與更新插入合并為一個操作,當(dāng)需要替換數(shù)據(jù)時,只需查找到目標(biāo)地址,并檢測該目標(biāo)地址上是否存在與待替換數(shù)據(jù)名稱相同的舊值數(shù)據(jù),若存在,則替換該舊值數(shù)據(jù),若不存在,則在該目標(biāo)地址插入待替換數(shù)據(jù);這樣就在原有的替換數(shù)據(jù)的方法中減少了一次查找目標(biāo)地址的操作,對于待替換數(shù)據(jù)的目標(biāo)地址復(fù)雜的事務(wù),減少查找操作可大大提升系統(tǒng)的處理性能;這樣就在一定程度上提高了事務(wù)并發(fā)量。
【附圖說明】
[0043]圖1表示本發(fā)明的數(shù)據(jù)替換方法的流程圖一;
[0044]圖2表示本發(fā)明的數(shù)據(jù)替換方法的流程圖二 ;
[0045]圖3表示本發(fā)明的實施例的流程圖一;
[0046]圖4表示本發(fā)明的實施例的流程圖二 ;
[0047]圖5表示本發(fā)明的實施例的流程圖三;
[0048]圖6表示本發(fā)明的數(shù)據(jù)替換系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0049]下面將參照附圖更詳細地描述本發(fā)明的示例性實施例。雖然附圖中顯示了本發(fā)明的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本發(fā)明,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0050]實施例
[0051]如圖1和如圖2所示,本發(fā)明的實施例提供了一種數(shù)據(jù)替換方法,包括:
[0052]步驟10:查找待替換數(shù)據(jù)的目標(biāo)地址;
[0053]當(dāng)客戶端需要替換數(shù)據(jù)時,獲取待替換數(shù)據(jù)的目標(biāo)地址信息,根據(jù)該目標(biāo)地址信息查找待替換數(shù)據(jù)的目標(biāo)地址;