專利名稱::數據庫不一致的處理方法
技術領域:
:本發明涉及一種解決記錄在數據庫中的信息結構不一致的處理方法。
背景技術:
:通常情況下,存放在數據庫(DB)中的信息是關聯到其他記錄的記錄集合。關聯完整性(見非專利文獻l)是指一個關系數據庫(RDB)的關聯一致性,關聯是一個用來表示不同數據庫之間記錄關系的常用概念,面向對象的數據庫中也具有關聯和被關聯的記錄。—些數據庫具有"瀑布式刪除功能"或"瀑布式修改功能",即是刪除或修改一個記錄之后順序刪除或修改其他記錄的功能。然而,這些關聯完整性的功能有時會刪除一些不希望刪除的記錄,或者沒有按需求修改一些希望修改的記錄。當然,用戶可以將數據庫的關聯完整性功能失效,并且通過調用一個被自身的觸發事件所激活的用戶程序來實現類似的功能。但是,該用戶程序必須對所有可能被刪除或修改的記錄進行檢索,這需要消耗大量處理器的處理能力。數據庫訪問類型為了簡化本說明,將數據庫訪問類型分為如下介紹的幾種類型單機數據庫訪問只有一臺計算機訪問一個數據庫;服務器數據庫訪問只有一臺服務器計算機訪問一個數據庫,其他終端計算機首先訪問服務器,由服務器直接從一個數據庫獲取數據。從一個數據庫都是被一個單用戶計算機所訪問的觀點看,這種類型也可以認為等效于單機數據庫訪問。并行數據庫訪問原始數據庫被復制到多臺計算機,其中,所復制的多個數據庫可以被同時修改,而且原始數據庫會被這些修改內容的映射所修改。常見的做法是將原始數據庫部署在一臺特定的計算機中,例如一臺服務器或一臺執行管理任務的計算機。由于在這種類型中數據庫是多臺計算機同時進行訪問,因此并行數據庫訪問與"單機數據庫訪問"和"服務器數據庫訪問"不同。有些情況下數據庫的范圍是將整個數據庫進行復制,另外一些情況下,只是根據當前工作情況需要復制數據庫的一部分。在復制之前通過預先將原始數據庫進行細分的方法,有可能減少對復制數據庫的修改操作,例如保證復制數據庫與原始數據庫內容一致的操作等。數據庫結構不一致如果為提高運行速度而省略關聯完整性檢查,將產生結構的不一致,諸如"關聯記錄不存在",或者"產生錯誤的關聯"等等問題。如果這些結構的不一致依然保留在數據庫中,當程序遇到上述結構不一致的問題時,將會導致不能繼續進行數據處理的情況。這種情況在以上介紹的所有數據庫訪問類型中都可能會發生。結構不一致對于并行數據庫訪問是致命的,因為在對一個復制數據庫進行修改之前不可能對在其他計算機上的復制數據庫進行檢查。例如當刪除或修改一條記錄時,而這條記錄可能被其他計算機上的其他記錄關聯到。隨著原始數據庫的不斷更新以及復制數據庫與原始數據庫的數據同步,這些不一致的情況會在其他計算機的復制數據庫中擴散開來。在并行數據庫訪問中,多臺計算機有可能會同時對同一個記錄進行修改。當用這些被修改的內容在原始數據庫中被更新時,不一致便出現了。這種情況也稱為"存儲在數據庫中信息結構的不一致"。并行數據庫訪問的當前狀況本說明書作者的指導下所開發的"增強報紙銷售"系統,只允許對讀操作進行并行訪問,該系統阻止了并行的寫操作,強制所有計算機在開始對數據庫進行編輯之前必須獲取"修改權限",在說明書中這也稱為"修改鎖"。對并行數據庫訪問的研究如下所述。MVCC(見非專利文獻1)給出的技術方案是其中一種在線數據庫軟件,盡管它為讀取訪問復制了(一部分)數據庫,它是只使用了"修改鎖"來解決修改沖突(非專利文獻2和3)的情況。在面向對象數據庫中的CACHE(見非專利文獻4)和OSbjectStore(見非專利文獻5)也只使用了"修改鎖"功能來避免并行的修改操作。關系數據庫PostSQL使用"SELECTFORUPDATE"或"L0CKTABLE"命令作為"修改鎖"來避免同時的修改操作(見非專利文獻6)。專利文獻l給出的技術方案也使用了"修改鎖"功能。對專利文獻26給出的技術方案進行研究后發現,其中沒有一個是適用于解決數據庫的并行修改操作而引起的不一致性問題的。微軟的ADO.NET邁出了從服務器數據庫訪問到并行數據庫訪問的一大步。它是根據當前工作的需求把數據從一臺服務器拷貝到一臺終端計算機上,并在切斷與服務器計算機的連接之后可以執行修改操作,它在完成修改操作后重新與服務器計算機建立連接,并將修改的內容上傳給服務器計算機。如果原始內容已經被其他終端計算機更改,那么上傳的修改內容將是無效。這被稱為"優化并行控制"(見非專利文獻7和8)。雖然優化并行控制是一種并行數據庫訪問類型,但它存在著兩個問題。一個問題是它忽略了關聯完整性不一致的可能性。例如假設有一臺終端計算機從一臺服務器拷貝了一條記錄(R),之后將其刪除,該終端計算機在拷貝發生10秒后將上述操作報告了服務器,如果在這10秒過程中服務器沒有接收到從其他終端計算機發送的對R進行編輯的報告,那么上述刪除操作是有效的。然而,如果其他記錄與R記錄的關聯仍然存在,或上面提到的io秒內新的關聯重新建立,這樣就會發生結構的不一致。另一個問題就是在一些情況下,基于最新信息的判斷是無效的。這是存在于實際數據庫操作的一個問題,因為基于最新信息而作出的判斷有可能是實際數據庫操作時最佳的。例如"計算機A"的操作者在早上九點寫下這句話"不需要發送友好的信函給這個客戶,他是開玩笑的",然后這個操作者離開了一會兒。另一方面,"計算機B"的操作者在中午十二點收到一條"這個客戶可能會有大件訂單"的信息,于是寫下"應給以最大招待以得到一個合同",并發送給服務器。可是,如果"計算機A"剛好在一分鐘前把編輯的內容發送給服務器,那么"計算機B"的編輯操作將是無效的。這就是"計算機A"不能阻止在"計算機B"上操作者變幻不定的操作的情況。專利文獻7應用修改時間于復制數據庫中,并根據如下方式操作由此產生的修改版本,"相對最早時間增長方式對版本號重新編號(步驟S604)",(參見專利文獻7的00654段和0097段),以及"最新的版本將會賦給最早時間的內容"(參見0097段),也就是說,之前的修改具有優先權。盡管采用越早的編輯具有優先權的方法,可是這仍然存在一個問題。例如假設一臺計算機在某段時間內(如一年前)存儲了修改的結果。如果某一天該結果突然被發送給一個服務器并變得有效,所有在過去一年中被其他計算機所進行修改的內容將會失效。那樣的操作通常似乎是不允許的。傳統技術的局限性盡管"修改鎖"能夠防止對一個記錄的修改沖突,但是它不能防止由并行數據庫訪問所引起的不一致,不一致的情況可能會是"所指向的記錄不存在"及"建立了錯誤的關聯"。即使是通過使用對修改內容定時檢查來選擇有效修改的方法或定時發送信息給服務器的方法,上述結構的不一致也不可避免。因此,將會存在一些如下的問題,例如"盡管一些記錄的編輯違背用戶期望,但這些修改記錄卻是有效的"。傳統的關聯完整性技術下面進一步分析傳統的關聯完整性技術。專利文獻8給出的技術方案是暫時去除了對關聯完整性的限制并載入大量的數據入口,之后對關聯完整性進行檢查。專利文獻9揭示了一種方法,該方法能夠防止另一臺計算機讀取在修改操作中臨時產生關聯完整性不完整狀態的數據。上述兩個專利文獻中的技術方案都不適用于解決本發明所考慮的問題。在主表發生改變的情形下,專利文獻10給出的技術方案是立即將這些改變通知給具有與這些修改相關聯的記錄的計算機。可是,服務器數據庫訪問方式會比這些復雜的通知過程要簡單和清楚得多。使用此類通知方法結合并行數據庫訪問方式并無價值。專利文獻1JP,11-272534,A專利文獻2JP,11-161535,A專利文獻3JP2005-503606,A專利文獻4JP2005-508050,A專利文獻5JP,8-16447,A專利文獻6JP2000-501532,A專利文獻7JP,2005-216167,A專利文獻8JP,2006-79260,A專利文獻9JP,3185718,B專利文獻10JP,3612449,B非專利文獻1"主要功能和價值",聯網,2007年4月22日檢索因特網(URL:htt。//www.sonicsoftware.co..i。/。roducts/ob.iectstore/function,html)非專利文獻2MVCC(多相并行控制),"最先9.1"聯網,2007年4月22曰檢索因特網(URL:http://www.postgresql.jp/document/pg721doc/user/mvcc.html#MVCC-INTR0)非專利文獻3"9.5.處于一個應用等級的一致性數據檢查",聯網,2007年4月22日檢索因特網(http://www.postgresql.jp/document/pg721doc/user/即plevel-consistency.html)非專利文獻4"緩沖存儲器技術指南",聯網,2007年4月22日檢索因特網(URL:http://www.intersystems.co.ip/cache/technologyguide/technologyguide.html)非專利文獻5主要功能和價值",聯網,2007年4月22日檢索因特網(URL:http://www.sonicsoftware.co.ip/products/obiectstore/function,html)非專利文獻6"9.5.處于一個應用等級的一致性數據檢查",聯網,2007年4月22日檢索因特網(http://www.postgresql.jp/document/pg721doc/user/即plevel-consistency.html)非專利文獻7"在ADO.NET中的數據并行控制概述",2007年1月,MSDN訂閱圖書館(MSDN訂閱圖書館),光盤文件,(URL:ms-help:〃MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/d5293098-4a88-4110-abd2_34d9e6661664.htm)非專利文獻8"教程并行異常的數據處理",2007年1月,MSDN訂閱圖書館(MSDN訂閱圖書館),光盤文件,(URL:ms-help:〃MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.Ja/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fcl7bff93.htm)非專利文獻9]"關聯一致性",聯網,2007年1月,2007年6月6日檢索因特網(URL:http:〃www.leasekin.com/rodan/makepos/02ac2kint:ro/tablekihon/pOl0130sansyouseigousei.htm)
發明內容本發明解決的技術問題如果為了提高運行速度,數據庫在沒有對其記錄之間的關聯關系進行完全檢查之前就被編輯,將出現"數據庫中記錄信息結構不一致"的情況,該問題普遍存在于單機數據庫訪問方式、服務器數據庫訪問方式和并行數據庫訪問方式中。在并行數據庫訪問方式的修改工作中,產生數據庫結構不一致的情況是不可避免的,例如缺乏關聯完整性、記錄修改沖突等等。當多臺計算機同時向一個表增加記錄時,各主鍵就會互相沖突,這些也是結構的不一致。當然,實現并行數據庫訪問方式仍然是合理的。單機數據庫訪問方式在與其他計算機進行數據共享時會存在問題。而服務器數據庫訪問方式則存在致命的缺陷,即"當與服務器連接中斷的情況下,信息將無法被訪問"。在移動通訊領域則表現為遠程通信頻繁地無法進行,然而即使遠程通信無法進行,一些重要的商業任務仍然需要執行。與服務器通訊所產生的延遲也是一個問題。盡管并行數據庫訪問方式是比較理想的,由于沒有合理的方法去解決"由于修改數據庫所引起的數據庫結構的不一致問題",因此目前沒有一種可行的并行數據庫訪問方法來實現同時讀操作和寫操作。本發明說明了一種新的方法,該方法允許暫時的"記載到數據庫中結構的不一致"且在需要時解決該問題。解決問題的技術方案可變關聯目標信息的介紹對于如何修改數據庫中記錄之間的關聯關系,數據庫操作者具有非常清晰的意6圖,同時也會根據該意圖對數據庫進行修改。如果所有相關的關聯都是根據確定的意圖進行修改的,那么不一致性就不會出現了。由于在對數據庫進行修改操作后立即執行加載處理,處理器的負荷量會很大,本發明指定(寫)了"可變關聯目標信息"給被修改的記錄,當這個記錄的關聯關系被檢測到時,關聯目標將會(被程序)根據這個"可變關聯目標信息"的指導所修改。下面對該技術方案進一步詳細的說明。設置一個記錄的"可變關聯目標信息"的方法是指定一個新的記錄,關聯到該記錄的(其他的)記錄應該重新關聯。此時,"刪除標記"將被添加到一個具有"可變關聯目標信息"的記錄上。具有刪除標記的記錄是不會顯示出來的,對于操作者來說這個記錄好像真正被刪除了,這個記錄將永遠不會被最新關聯。例如一個刪除標記被添加到記錄"Tokyo"上,作為一個記錄"Tokyo"的通用概念,記錄"Japan"被指定為"Tokyo"的"可變關聯目標信息"。如何指定可變關聯目標信息是取決于一個操作者的決定(或一個程序設計員的決定),也可能定義一條新的"未指定"記錄,這個記錄可以被設置成"可變關聯目標信息"的新關聯目標。當(通過程序)處理一條關聯到"Tokyo"的記錄時,通過根據"可變關聯目標信息"來更改指向"Japan"(或"未指定")關聯目標的方式,這個記錄的不一致性將會而逐漸被消除。在關系數據庫中被關聯的記錄集的表被稱為主表。該表中一個記錄的關聯目標被修改后,可能會是該主表的另一個記錄,或者是另一個主表中的另一個記錄。為了避免發生關聯目標無限循環改變的情況,一個方案是建立一個新的主表后把一個關聯目標更改到這個新表中。"恢復"可作為可變關聯目標信息的一個高級類型。假設刪除標記被添加給某個可"恢復"的"可變關聯目標信息"的記錄,當一條指向這個記錄的記錄被檢測到時,這個記錄可以通過消除一個刪除標記的方式得到恢復。由于通過添加"刪除標記"而進行的刪除操作是一種邏輯上的刪除,而不是真正的刪除,因此恢復是可能實現的。記錄的實際刪除操作可以被推遲到以下情況下進行,即具有刪除標記的記錄變得非常多并且內存被長時間操作所耗盡的情況。假設所有關聯目標的更改都是在對記錄真正地刪除操作之前完成,那么不會有問題存在。如果一些關聯目標的更改因未完成而保留下來,一個程序將會檢測到一個關聯目標已經被真正刪除掉并顯示一條信息。如果只有少量修改工作沒有完成,即使一個操作者指定了新的關聯目標也不會出現嚴重的問題。當系統由于處理負載量減少而進行了實際地刪除操作時,即使對關聯目標進行完全地研究和完全地更改操作也不會存在問題。如果沒有必要更正由于修改一些記錄所引起的關聯,那么也沒有必要去指定"可變關聯目標信息"。正如對于具有城市名稱的記錄而言,當"Tokyo"被改成"Tokyo市"時,改變關聯是沒有必要的。以上說明了暫時地允許關聯完整性所產生的不一致以及在必要時逐步解決該問題的方法。解決修改工作中的沖突當一個記錄在并行數據庫訪問方式下被修改時,可能會發生一個沖突。盡管有必要解釋包括一個可變關聯目標信息的關系,這里首先說明了一種解決一個簡單沖突的方法。本發明提供了一種機制,該機制采用實現"對最新信息進行修改的內容優先"的方法,它與"優選并行控制"或專利文獻7中所提供的定時發送給服務器或定時修改操作的機制是相反的。程序如下(a)每當原始數據庫被更新時,更新該數據庫的一個版本;(b)當把原始數據庫復制到一臺計算機時,把該原始數據庫的版本號設置為復制數據庫的源版本號;(c)當一臺計算機把在復制數據庫上的修改內容發送到一臺管理所述原始數據庫的計算機(例如服務器)時,它也通知(發送)該復制數據庫的源版本;(d)當復制數據庫上修改的內容與在其他終端計算機上修改的內容發生沖突時,具有更高源版本號的復制數據庫上修改的內容將會被采納;(e)如果存在多個具有同樣源版本的修改,那么較早發送的修改內容被采納。作為一個簡單的實施,一臺管理原始數據庫的計算機(例如服務器)可以執行上述(d)(e)的操作,可是如果包含同樣的結果,另一臺計算機可以執行它們或多臺計算機可共享它們。—臺修改版本的計算機執行以下一系列的步驟(步驟1)通過拷貝原始數據庫來產生一個復制數據庫,或者把復制數據庫與最新的原始數據庫進行數據同步;(步驟2)修改復制數據庫;(步驟3)把在復制數據庫上修改的內容和該復制數據庫的版本發送給管理原始數據庫的一臺計算機。管理原始數據庫的計算機在執行(步驟3)后,根據上述(d)和(e)的判斷標準,做出采納修改內容的決定。在(步驟2)的執行過程中,沒有必要保持與管理原始數據庫的一臺計算機的連接。假設當"計算機A"在執行(步驟l)和(步驟2)時,計算機B發送了修改的內容。在這種情況下,管理原始數據庫的計算機首先將來自計算機B的修改內容設置為有效,同時更新原始數據庫的版本。當計算機A的所述修改內容被發送時,管理原始數據庫的計算機將做出判斷哪一個修改內容優先的決定。通過比較計算機A和計算機B中修改內容的源版本,具有最新源版本的修改內容將被采納。如果計算機A的修改內容被采納,計算機B的修改內容將無效;如果兩者都有同樣的源版本,由于較早被發送,計算機B的修改將被采納,計算機A的修改內容將無效。如果原始數據庫的一個源版本比所述修改內容在發送時的源版本要新,那么可能會出現另一個較新源版本的修改被較晚發送并可能有效的情況。與此相反,如果修改內容的一個源版本與一個原始數據庫在這個所述修改內容發送時間的一個版本相同,那么不可能出現另一個較新源版本的修改內容被較晚發送的情況。這個發送是在對同樣源版本的修改內容中最先的。因此這個發送操作被采納,該原始數據庫被更新,結果是這個操作的一個版本將被唯一更新。如果從(步驟1)到(步驟3)進行修改計算機的處理過程在非常短的時間內進行,一個很小的可能是另一個修改內容的一個結果將會被發送并中斷該處理過程。在執行(步驟3)之后,一個復制數據庫將與原始數據庫進行數據同步,以及獲得該原始數據庫的一個版本并將其設置為該復制數據庫的一個源版本。如果此時只更新了一個源版本,這臺計算機能確認修改內容的一個稍前結果是設置成有效的。相反地,如果更新了兩個以上的源版本,存在一個可能,即修改內容的稍前結果將變成無效或已經無效了。如果從(步驟1)到(步驟3)的處理過程在很短的時間內進行,那么該處理過程成為非常接近于在線操作(例如服務器數據庫訪問)的操作。編輯一個可能被爭用的修改內容的記錄是非常有用的。另一方面,當處理一個在修改工作中有很小爭用可能性的記錄時,(步驟2)的一個階段會被極度延長,對于一個輸入或修改工作將花費足夠的時間,并且(步驟3)在上述操作后將被執行。當然,當執行(步驟2)時,與管理該原始數據庫的計算機(例如服務器等)保持連接是毫無必要的。例如,在某種情況下輸入某個公司中每一機構的借方減少數量,當發生一個輸入錯誤和錯誤處理被發現,一個記錄將被修改。即使需要更正,在許多情況下該更正操作將被輸入原始記錄的同一臺計算機所執行。在另一些情況下,(步驟2)具有相當長一段時間的離線操作是沒有問題的。盡管我們不能與因特網連接,我們可以慢慢地輸入借方減少數量。當帳目結算或接近檢查時,我們可以在步驟3把輸入的借方減少數量發送出去。盡管數據庫的結構不一致是由于并行修改的工作而發生,當需要時,通過提供本發明的一種方法(也包括一種之后解釋的方法)可以將不一致性消去。如上所述,通過設置一個(步驟1)到(步驟3)的循環執行過程,一個臨近在線或臨近離線的操作能夠被唯一選中,這兩個操作可以同時存在。這也是本發明的一些好處通過分配較高的優先級別給指向最新信息的一個修改內容,解決了修改操作的沖突;以及僅僅改變從(步驟l)到(步驟3)的一個執行循環,一臺終端計算機可以在某個特定時間執行將近在線的操作,并在另一時間執行將近離線的操作。某一臺終端計算機在將近在線時被操作,而另一臺終端計算機在將近離線時被操作,因此也有可能會出現混合的操作。在一種"優選并行控制"的方法和專利文獻7中,正如之前所述,從一臺"正處于將近離線操作"的計算機發送的信息會阻止從一臺"正處于將近在線操作"的計算機發送的信息。然而,由于是對同樣記錄所進行的修改操作,如果本發明是用于把優先權分配給對最新信息所進行的修改操作,優先權則通過"正處于將近在線的操作"分配給修改操作的一個結果。如果你想驗證修改操作的結果,什么是有必要在將近離線操作一樣去執行的?如果你正處理那些具有很小修改沖突的記錄以及想要省下通信支出和時間,什么是有必要如同將近離線操作一樣去執行的?對于人們來說,我們在短時間內執行從(步驟1)到(步驟3)的處理過程來驗證修改操作的結果是很容易理解的,因為優先權賦予基于較新信息的判斷(修改操作)是非常接近于人們的常識的。這個特性是適合于多人連接的實際數據庫操作的。這是另一個通過"設置優先權給具有較新信息的修改操作"來解決修改沖突的好處。通過上述的機制,解決了對一個記錄修改操作的簡單爭用。在這里,簡單爭用意味著沒有引用這些記錄的記錄。雖然在上述描述中,版本被設置給原始數據庫,版本還能夠被設置給原始數據庫的表或記錄,以及用來管理之用,這與再細分原始數據庫是等效的。解決可變關聯目標信息的沖突對被引用記錄修改內容的沖突情況仍然需要考慮。為了說明之便,假設對X的修改和對Y的修改相互沖突,S卩二者都對同一記錄設置了不同的"可變關聯目標信息",如果通過如下機制把高優先級設置給較早信息的修改內容,那么對X的修改則被采納。問題是在判斷對Y的修改是無效之前,一些記錄的一個關聯目標將通過修改Y中所設置的"可變關聯目標信息"而改變。下面說明了一個例子假設一臺計算機執行了修改的內容Y,在這里,通過該修改操作中應用的"可變關聯目標信息",Y改變了一些記錄的關聯目標。之后,當修改內容Y被發送且修改內容X被認為是有效時,修改的內容Y是無效的。對于只被修改內容X改變的關聯與第一次修改內容Y和修改內容X改變的關聯是等效的情況,這是不能保證的。以下說明了一個解決這個問題的處理過程修改一個可能被引用的記錄后,基于可變關聯目標信息來改變這臺計算機中的關聯關系之前,首先應發送這個修改的內容,然后通過與原始數據庫數據同步來更新復制的數據庫。在確認這個修改的內容是有效的之后,也就是源版本被唯一更新之后,通過運用關聯目標信息來改變關聯關系。在之前的例子中,發送修改內容X的那臺計算機將會檢查修改內容X是否已經被采納,然后根據所述的這個修改內容來改變關聯關系。發送修改內容Y的計算機會知道修改內容Y是無效的且修改內容X被采納了。如果有必要的話,它將會重新修改。通過使用修改內容X,該計算機可以改變它們的關聯關系。當一個記錄有很多的改變時,如果略過中間的可變關聯目標信息,只有最后一個被用作可變關聯目標,這將會產生不一致性問題。因此,在確認或設置一個關聯關系時(復制數據庫的)源版本應被記錄下來。當一個記錄有多個關聯關系時,有可能為每一個關聯關系記錄一個源版本,但是這存在著一個問題由于巨大的信息量,管理將會很復雜;而且,作為一個寫(記錄)給一個記錄的記錄版本,這個版本將被寫(記錄)給每一個記錄。當一個記錄在新建立時,或者當這個記錄的內容被部分改變時,此時一個(復制數據庫的)源版本作為一個記錄版本被記錄(和更新)下來。由于關聯目標的設置或改變也是屬于該內容的改變,一個記錄版本將被更新。當(至少一個)關聯目標被改變或當其他的改變被執行時,該記錄的所有關聯關系將被檢查。如果可變關聯目標信息被設置給一個被關聯的記錄,一個關聯目標將會根據它而改變。因此,在記載于該記錄中源版本所位于的復制數據庫中,這個記錄的所有關聯關系被更新或檢查。增加一個記錄時,一個主鍵(ID)將通過上述結構賦值給這個記錄。事實上,數據庫中有一個保存下列主鍵的記錄(K)。新記錄(Z)使用K的值作為主鍵,之后K的一個值將被更新。如果通過下述規則"優先權設置給具有較早信息的修改操作"來重生K,則可以完成一個記錄的增加。當修改內容K被認定是無效的以及一個K的重生成值是無效時,新記錄(Z)的添加操作是無效的。然而為了驗證增加的新記錄,(步驟1)到(步驟3)應該會被很快執行;這將縮小將近離線操作的適用性范圍。因此,當將近離線操作是重要的時,應預先對每一臺計算機賦給一個主鍵(ID)的范圍,這些范圍是相互不重疊的。本發明的有益效果通過使用本發明之可變關聯目標信息的方法,在需要時臨時產生的關聯完整性不一致問題將被逐漸解決;同時,由于不必為每一個修改操作進行關聯完整性檢查,在數據庫中進行修改操作處理過程的速度大大提高。由于并行數據庫訪問所產生的在修改操作中的沖突情況可以通過如下方法"把高優先權賦值給較新信息的修改操作"來解決。通過這個方法,接近在線或離線的操作可以根據已被處理信息的字符任意地更改;本方法還有一個很重要的特點是具有不同操作(將近在線或離線的操作)的計算機可以通過一臺服務器來共同工作;本發明的方法對于多臺計算機在共享一個數據庫時提供了很大的靈活性。通過合并"使用可變關聯目標信息的方法"和"把高優先權賦值給較新信息的修改內容的方法",由并行數據庫訪問的修改操作所產生的不一致問題被合理地解決了。它的有益效果將被一一體現出來,特別是在我們修改那些可能被引用記錄的時候。并行數據庫訪問具有很大的特點,例如"使通過數據庫與其他計算機通訊成為可能",或"即使在與外部無法通信的情況下,也可以處理數據庫",或"通過與一臺服務器通訊來實現無延遲響應"。然而,由于之前沒有方法能夠解決必然發生的結構不一致問題,執行并行的修改操作是很困難的。本發明解決了這些問題并使得執行實際的并行數據庫訪問系統成為可能;本發明還可以適用于移動數據庫訪問方式或重要的商務工作;本發明對于降低成本和每次連接到網絡需要的投入也很有效。圖1是一臺普通計算機的組成;圖2是作為一種用程序來實現提供功能的實施方式的計算機的組成;圖3是改變一個關聯目標的處理過程;圖4是設置"可變關聯目標信息"的處理過程;圖5是一臺終端計算機基于最新信息把優先權設置給修改內容的處理過程;圖6是一臺服務端計算機基于較新信息來設置優先權給修改操作的處理過程;圖7是一臺終端計算機對可能被其他記錄所引用的記錄進行修改的處理過程;圖8說明了更改關聯目標的例1、例2和例3;圖9說明了更改關聯目標的例4;圖10說明了更改關聯目標的例5;圖11說明了一個數據庫版本管理的例子;射0101-計算機,0102-通訊單元,0103-運算單元,0104-主存儲器單元,0105-主存儲器單元中的DB(數據庫),0106-第二存儲器,0107-輸入/輸出單元,0108-顯示單元,0109-總線,0110-通訊網絡,0111-第二存儲器中的DB(數據庫),0201—傳輸裝置,錄,0202-0203-0204-0205-0206-0301-0302-0303-0304-0305-0401-0402-0501-0502-0503-0504-0505-0601-0602-0603-0604-0605-0606-0701-0702-0703-0704-0705-0801-0802-0803-0804-0901-0902-0903-0904-1001-1002--接收裝置,-改變關聯目標的方法,-設置"可變關聯目標信息"的方法,-DB(數據庫),-判斷修改內容有效性的方法,-提取記錄的處理過程,-指定設置給這個記錄的"關聯目標記錄"的處理過程,-指定設置給所述關聯目標記錄的"可變關聯目標信息"的處理過程,-激活對應于該可變關聯目標信息而改變關聯目標進程的處理過程,-將新獲取的關聯目標作為新的關聯目標設置給所述之前提取(0301)的記-提取一個記錄的處理過程,-指定"可變關聯目標信息"的處理過程,-將復制數據庫與原始數據庫進行數據同步的處理過程,-記錄作為復制數據庫源版本的原始數據庫版本的處理過程,-在復制數據庫中的修改操作,-判斷,-發送修改內容和對服務器修改的數據庫源版本的處理過程,-按順序提取被修改和被發送記錄的處理過程,-指定這個記錄的記錄版本(NRV)的處理過程,-指定一個對應該記錄的原始記錄的記錄版本(0RV)的處理過程,-記錄版本的對比,-在原始數據庫中使近期被發送的記錄有效的處理過程,-只更新一個原始數據庫版本的處理過程,-修改一個可能被引用記錄的處理過程,-發送源版本(BV1)和修改內容給服務器的處理過程,-將復制數據庫與原始數據庫進行數據同步的處理過程,-獲取和記錄新的源版本(BV2)的處理過程,-BV2和BV1的對比,-子表,-主表A,-主表B,-項n,-提取一個關聯目標記錄的標記的處理過程,-確認預先指定的字符串"HeadOffice"是否被包含的處理過程,-判斷,-更改關聯目標的處理過程,-節點P,-節點R,1003-節點Q,1004-指定節點的處理過程,1005-檢查表和記錄是否被指定的處理過程,1006-更改引用記錄的關聯目標的處理過程,1007-指定更高階記錄的處理過程,1101-服務器,1102-計算機A,1103-計算機B,1104-原始數據庫,1105-復制數據庫(在A中),1106-復制數據庫(在B中),1107-記錄X的正本,1108-復制的記錄X(在A中),1109-復制的記錄X(在B中),1110-數據同步(在A中創建新的復制數據庫),1111-數據同步(在B中創建新的復制數據庫),1112-數據同步(在A的復制數據庫中更新Nol),1113-修改操作(通過A對復制的X),1114-發送修改內容(從A到服務器),1115-更新原始的X(計算機A修改操作的映射),1116-確認(A修改的內容是否有效)并進行數據同步,1117-數據同步(在B中更新復制數據庫),1118-修改操作(在B中對復制的X),1119-發送修改的內容(從B到服務器),1120-更新X的正本(計算機B修改操作的映射),1121-確認(B修改的內容是否有效)并進行數據同步,1122-數據同步(在A中更新復制數據庫No2),1123-更新X的正本(計算機B修改操作的映射)。具體實施例方式實現本發明在權利要求所述作為一個計算機程序的方法被認為是公知的。圖1示出了傳統計算機0101的組成,它包括運算單元0103、主存儲器單元0104、第二存儲器0106、輸入/輸出單元0107以及顯示單元0108,它們都與總線0109相連接。當與其他計算機交換數據時,該計算機OIOI通過通訊單元0102與通訊網絡0101連接;這個已經被每一項權利要求所引用的"數據庫"是處于第二存儲器0106中的數據庫0111,或是處于主存儲器單元0104的數據庫0105。程序被記載在第二存儲器0106中,被激活和加載到主存儲器單元0104,然后運算單元0103運行程序指定的進程。因此,計算機作為實現程序設計員意愿的方法組合而被重組。圖2示出了實現權利要求中所述方法的功能性的組成。13由于是通過程序對數據庫進行操作,在開發了整個或部分數據庫到主存儲器操作0104之后,它是非常容易實現的。在第二存儲器0106中開發了全部或部分數據庫Olll的數據庫0105到主存儲器單元0104的操作正在進行,同時修改操作的結果將被寫入到處于第二存儲器單元0106的數據庫Olll中。然而,我們很自然地假設數據庫處于第二存儲器0106中,與數據庫0105開發到主存儲器單元0104是沒有區別的,圖2示出了基于兩者之上作為統一概念的數據庫0205。"改變關聯目標的方法0203"實現了權利要求1的"通過使用設置給這個記錄的信息來改變這個記錄與另一個記錄關聯關系的處理過程",或權利要求2的"如果一個指向附有刪除標志的記錄的關聯關系被檢測到,移除一個刪除標記的處理過程。""設置可變關聯目標信息的方法0204"實現了權利要求3的"記載把指向一個記錄的關聯關系更改為指向另一個記錄關聯關系的信息的處理過程"。"判斷修改內容有效性的方法"(0206)實現了權利要求4的"驗證在'修改內容以及源版本的多個組合'中最新版本的修改內容,該版本即是當復制數據庫被建立時原始數據庫的版本,然后將它映射到原始數據庫的處理過程"。這個方法應部署在具有修改有效性判斷處理過程的計算機中(例如,配置有控制功能的計算機,如一臺服務器)。傳輸裝置0201和接收裝置0202是用于在計算機之間進行通訊。圖3到圖7說明了權利要求1到權利要求5的處理過程。圖3描述的處理過程與權利要求1是相同的,處理過程0301是提取記錄,處理過程0302是指定設置給這個記錄的關聯目標記錄,處理過程0303是指定設置給所述關聯目標記錄的"可變關聯目標信息",處理過程0304是激活對應這個可變關聯目標信息而對關聯目標進行更改的處理過程,處理過程0305是把新獲取的關聯目標作為新的關聯目標設置給之前提取0301的記錄。到目前為止的說明中,我們認為"改變關聯目標"處理過程的內容只是獲得關聯目標,其他的處理過程將在例子中進行解釋。圖3也相當于權利要求2的處理過程首先,處理過程0302提取記錄,處理過程0302指定設置給這個記錄的關聯目標記錄,處理過程0303指定設置給所述關聯目標記錄的"可變關聯目標信息",處理過程0304激活對應于這個可變關聯目標信息而對關聯目標進行更改的處理過程。如果檢測到"恢復"的情況,那么這個關聯目標記錄的刪除標記將被移除。在這種情況下,由于在一個關聯目標中不存在更改,因此也沒有其他更改存在于"處理過程0305將新獲取的關聯目標作為新的關聯目標設置給之前提取(0301)的記錄"(0305)。圖4是等同于權利要求3的程序步驟處理過程0401提取一個記錄,處理過程0402指定"可變關聯目標信息",即是設置把對該記錄的關聯關系更改給另一個記錄的信息。圖5是進行修改操作的計算機執行的處理過程。為了實現本發明之"設置優先權給最新信息的修改內容"的方法,首先,0501將復制數據庫與原始數據庫進行數據同步;在實際情況下,很多情況是生成新的復制數據庫或用不同信息來更新它;處理過程0502將原始數據庫的版本作為復制數據庫的源版本記錄下來;處理過程0505在需要時0504重復在復制數據庫上的修改操作0503,然后發送這些修改的內容;在這里,"發送這些修改的內容"意味著發送編輯給服務器的修改操作內容和數據庫源版本。權利要求4是一個判斷被發送的修改內容有效或無效的處理過程。為了指定一個更高版本的修改內容,一個記錄版本針對每一個記錄被記載下來。當一個記錄被建立時,此時一個(復制數據庫的)源版本作為一個記錄版本被記載下來。當至少一部分該記錄的內容被更正時,一個(復制數據庫的)源版本將同時作為一個記錄版本被記載下來。圖6詳細說明了權利要求4中使用這個記錄版本的一個處理過程。順序取出被編輯和最近被發送的記錄0601,指定所述記錄的記錄版本NRV0602,指定該記錄正本的記錄版本0RV0603,然后比較這些記錄版本0604,當NRV>0RV,最近被發送的記錄在原始數據庫0605中是有效的;當NRV=0RV或NRV<0RV時,最近被發送的記錄是無效的,然后繼續下一個處理過程。在為所有最近發送的記錄執行了以上過程后,只更新原始數據庫的一個版本。實施例6詳細說明了版本的管理方法。權利要求5是一個如下的處理過程,該過程是修改一個可能被其他記錄所引用的記錄。圖7說明了它的流程首先,類似圖5的處理過程,將一臺計算機的復制數據庫與原始數據庫進行數據同步0501,同時把原始數據庫的版本作為復制數據庫的源版本記錄下來0502。接著修改一個可能被引用的記錄0701,然后把這個修改的內容和源版本BV1發送給服務器0702,之后立即將復制數據庫與原始數據庫進行數據同步0703,此時原始數據庫的新版本被獲取并作為新的源版本BV2記載下來0704。如果經比較0705,BV2是在BV1之后,由于是對所述記錄的修改操作,移動到下一個處理過程,直到對可能被關聯記錄的操作已完成。如果"可變關聯目標信息"存在于一個將被我們在下一個處理過程所處理的記錄的關聯目標中,一個關聯目標將據此而被改變。如果經比較0705,BV2不在BV1之后,可能被關聯記錄的修改操作可以被重做。實施例一—個關聯目標沒有被改變的例子圖8說明了建立可變關聯目標信息的例子和進行更改的處理過程。圖8中子表0801有多個記錄,以及"項n"0804具有指向該主表0804中一個記錄的關聯。子表0801中ID=a的記錄引用主表A0802中ID=1的記錄。由于這個記錄的"可變關聯目標信息"是"沒有設置"的,因此來自子表中一個記錄的關聯關系不能被改變。實施例二恢復的例子在圖8中,"display顯示=False"的說明等同于一個"刪除標識"。如果一個記錄在顯示屏上沒有顯示,那么它對于用戶而言與被刪除了是一樣的。在主表A0802中,ID二2,3和4的記錄是處于刪除狀態的(display顯示=False)。在處理一個在子表0801中ID=b的記錄過程中,當檢查主表A中ID=2記錄的"可變關聯目標信息"時,"恢復"被檢測到,因此"display顯示二True"被設置。由于恢復的操作在以上已經被完成了,"恢復"將被改變為"沒有設置"。實施例三改變關聯的例子當"可變關聯目標信息"被"更改給一個ID=X(X是解釋的ID:主鍵)的記錄"時,相關更改的處理過程是把與這個記錄的關聯關系改變成與指定記錄的關聯關系。也就15是說,來自子表對這個記錄的關聯將被改變成X記錄的關聯。在最開始的時候,圖8所示在子表0801中ID=c的記錄與主表A0802中ID=3的記錄相關聯。接著這個記錄的"可變關聯目標信息"被"改變成與記錄=5的關聯",也即是A中一個ID=3被改變為在子表中ID=c記錄的"項n"值等于"5"。它意味著與ID=c的記錄的關聯被改變為與ID=5的關聯。關聯循環改變的阻止如果主表被徹底地改變,循環會在轉換關聯關系的時候發生。在這種情況下,循環的關聯能被下列方法所阻止首先準備好所有傳統的和新的主表;然后把對傳統主表的關聯更改為對于新主表的關聯。如果可變關聯目標信息是"表規格=S"(S是用于說明的臨時表名)+"新記錄=Y"(Y是用于說明主鍵的臨時ID),相應改變關聯目標的處理過程是在這個指定表S中把對這個記錄的關聯改變為對記錄Y的關聯。在最開始的時候,圖8的子表0801中ID=d的記錄引用了主表A0802中的4(ID=4的記錄),這個記錄的"可變關聯目標信息"是"主表B"和"更改給記錄二l",一個關聯目標將會設置給主表B0803中ID=1的記錄,同時在子表中一個ID=d的"項n"的值將被重寫。盡管圖8示出了所有更改給相同的表或給其他為了說明的表的關聯目標,然而目前大部分的關系數據庫有以下限制一個表只能被子表的一個項所引用。因此,設置如下的限制是非常實用的,這個限制就是關系數據庫中的軟件在變換后只引用新的主表、且之前的主表應被一個基于本發明的程序所訪問。實施例四可變關聯目標的邏輯當可變關聯目標信息是"同一個表的另一個記錄"+"可變關聯目標的邏輯=Z"(Z是用于解釋邏輯的一個臨時標記)時,或當可變關聯目標信息是"另一個表的記錄"+"可變關聯目標的邏輯=Z"時,改變關聯目標的邏輯的步驟如下當該主表中的這個記錄是被一個子表所引用時,激活被Z和該引用記錄中改變關聯目標的結果所指定的邏輯。圖9的一個子表中ID=e的記錄在最開始的時候引用了主表A中ID=11的記錄,這個記錄的"可變關聯目標信息"是"同一個表的另一個記錄"和"關聯目標的可變邏輯=Z",因此,邏輯Z被激活。圖9示出了如下所述邏輯Z的一個例子首先,提取原始關聯目標記錄的一個標示0901,即是在這個例子中的"Headofficebuilding";接下來,檢查是不是預先指定的字符串0902,例如這個"Headoffice"的詞是否包含在內;如果包含了這個字符串0903,把子表中ID=e的記錄的關聯關系改變為與主表A中ID=13的一個記錄的關聯0904;在最開始的時候,子表中ID=f的記錄是引用主表A中ID=12的記錄的,它被更改為與主表A中一個ID=13記錄的關聯關系;因此,所有與具有如"headoffice"、"managementd印artmentinheadoffice"、"headoffice"屬于同一概念但不同表現方式的記錄的關聯被統一為與一個"HeadOffice"記錄的關聯。實施例五使用可變樹的關聯目標當"可變關聯目標信息"是"一個可變樹中的V節點"(V是說明節點的標示),關聯目標被改變為指向節點V的一個記錄。如果沒有記錄作為新的可變關聯目標來指定給節點V,那么按順序搜索節點V上高一級的節點,檢測最開始的新目標記錄,然后設置它為新的目標。在最開始時,圖10的子表中ID=h的記錄引用主表A中ID=21的記錄,這個記錄的"可變關聯目標信息"是"可變樹的P節點";接下來,提取1004節點P1001并檢查1005在這個節點上被指定的表和記錄,由于"主表B的ID=32"被指定了,所以它被設置為該關聯記錄的新關聯目標。在最開始時,子表中ID=i的記錄引用了主表A中ID=22的記錄;這個記錄的"可變關聯目標信息"是"可變樹的節點Q";接下來,提取1004節點Q1003并檢查1005在這個節點被指定的表和記錄,因為節點Q沒有具體的規定,搜尋1007更高一級的節點,即是節點R1002,然后檢查1005在這個節點被指向的表和記錄;因為節點R1002中存在與"主表B中ID=31"的關聯關系,因此它被設置為關聯記錄的關聯目標并寫入到該關聯記錄中。為了避免設置指向這個記錄的關聯,沒有顯示出具有"可變關聯目標信息"的記錄是個很好的主意。在圖10中,主表A沒有顯示出來,只顯示一個作為新主表的主表B。因此,一個操作者不能選擇主表A的一個記錄作為一個關聯目標。在圖9中,ID=11和ID=12的記錄沒有顯示出來(display顯示=False),只顯示有一個ID=13的記錄;也即是只有"HeadOffice"能夠被設置為新的關聯目標。當然,具有"可變關聯目標信息"且"display顯示=false"特性的記錄將會顯示給控制或修改它們的操作者。關聯目標改變的處理過程可以在執行來自子表的關聯時進行,即在一個關聯目標上的信息是被一個程序訪問的,或能在沒有更高優先級的處理過程運行時被集中地處理。實施例六數據庫的版本管理在本發明中,管理原始數據庫的版本和復制數據庫的源版本,以及實現把優先權設置給基于最新信息的修改內容的方法是很必要的。圖11說明了上述結構。原始數據庫1104被部署在服務器1101中。計算機A1102中有復制數據庫1105,計算機B1103中有復制數據庫1106。在最開始的時候,原始數據庫1104的版本是O,復制數據庫的源版本也是O。正如在權利要求4中已經說明的,記錄版本被記載給原始數據庫和復制數據庫中的每一個記錄;當該記錄被新建立或當更新了該記錄的至少一部分時,記錄版本是源版本的一個記錄。"O"是該原始和復制記錄X的記錄版本的初值。計算機A在第一個數據同步1110中建立了復制數據庫,計算機B在第一個數據同步llll中建立了復制數據庫,它們的源版本都是O。之后,原始數據庫的版本從"O"被更新為"6",這是從不同于計算機A和計算機B的其他計算機發送給服務器的結果。在圖11中,"計算機A"1102又一次執行了數據同步1112,于是復制數據庫的版本為1。現在,假設"計算機A"在復制數據庫1105中修改1113復制記錄X1108,由于此時復制數據庫的一個源版本是1,因此記錄X所復制1108的記錄版本被設置為1。這個修改的記錄和復制數據庫1105的源版本被發送1114給服務器。如果所述修改內容在服務器中被判斷為有效,原始數據庫1104將被更新且原始數據庫的版本是7。原始的記錄X也被更新1115為由"計算機A"修改的內容。在"計算機A"從服務器接收到該修改內容是有效1116的通知之后,數據同步1116將被執行,接著"計算機A"中復制數據庫的源版本是7。當程序在處理一個記錄時,程序也檢查該記錄的關聯目標記錄。如果存在"可變關聯目標信息",這個記錄的關聯目標則被更改。由于該記錄的一些內容是通過改變這個關聯目標來更改的,記錄版本被設置給那時的源版本。由較早版本所指定的可變關聯目標信息要早于記載在這個記錄中的版本,這點已經被確認。當通過可變關聯目標信息來更改關聯目標時,可變關聯目標信息,也就是設置在記載記錄版本之后的信息,是從較早的一個開始順序使用的。因此,關聯目標更改的執行不存在不一致性。另一方面,計算機B在原始數據庫1104的版本為6時執行數據同步1117,復制數據庫1106的一個版本被設置為6;接下來,(復制的)記錄X1109將被修改1118;此時,記錄版本被設置為6并被發送給服務器1119;因為"計算機A"(對記錄X)的修改內容在計算機B進行數據同步1117之后、計算機B進行修改操作之前被發送,對記錄X進行修改操作的沖突可以通過服務器的檢查而被發現。"計算機A"發送的修改內容的源版本是1(記錄X的正本的記錄版本是1),計算機B發送的修改內容的源版本是6(被計算機B修改的一個復制記錄X的記錄版本是6)。因此,計算機B修改的操作被采納,而且記錄X的正本被更改為1119計算機B所修改的內容。此時,原始數據庫的版本更改為8。計算機B從服務器收到"修改內容有效"1121的確認后,進行數據同步,接下來計算機B的復制數據庫的源版本是8。假設計算機A執行與原始數據庫的數據同步1120。此時,記錄X的內容被計算機B所修改且是有效的,該結果延及"計算機A"的復制數據庫;即是"計算機A"(在此時)的復制數據庫中,之前被計算機A所進行的修改是無效的;而且,需要額外的機制來通知一個操作者之前的修改是無效的。工業實用性本發明不僅使得對數據庫的修改處理速度得以提高,還使得并行數據庫成為可能,即多臺計算機對原始數據庫進行復制,在復制數據庫上進行修改并把修改內容映射給原始數據庫。這意味著在與服務器失去連接時,仍然有可能執行一個連續的處理過程。它適于移動數據庫訪問和重要的商務工作;它也能適應減少處理時間、物力以及降低與通訊網絡連接的花費的需求。將近在線或將近離線的操作能被基于任何一臺計算機處理的每一個內容所選中;而且,因為將近在線或將近離線的計算機能夠通過一臺服務器共同工作,本發明給予數據庫操作很大的靈活性。權利要求一種對包含有可能被引用記錄的數據庫處理方法,是通過使用設置給一個記錄的信息,然后把所述記錄的關聯終點改變為指向另一個記錄。2.—種對包含有可能被引用記錄的數據庫處理方法,包括當發現一個具有刪除標記的記錄的關聯關系時,移除刪除標記的過程。3.—種對包含有可能被引用記錄的數據庫處理方法,包括對一個記錄設置信息,把與所述記錄的關聯關系改變為指向另一個記錄。4.一種改變所有或部分的所述數據庫并將其映射給原始數據庫的數據庫管理方法,該方法包括當所述復制數據庫建立時,在多個對復制數據庫修改內容的組合中,設置具有較新版本的修改內容以及一個原始數據庫的版本為有效,然后將其映射給原始數據庫。5.根據權利要求4的一種數據庫管理方法,包括(1)修改一個記錄的步驟,即是設置信息給所述可能被其他記錄所引用的記錄,把與所述記錄的關聯關系更改為指向另一個記錄;(2)確認所述修改是否決定為有效的步驟,該確認是基于如下的標準當所述復制數據庫被建立時,對復制數據庫多個修改內容的組合中,具有較新版本的修改內容和一個原始數據庫的版本為有效;然后(3)使用信息的步驟,即是把所述記錄與另一個記錄的可變關聯終點設置給該記錄,以及把與所述記錄的關聯關系更改為指向另一個記錄。全文摘要本發明提供了一種修改數據庫中記錄之間關聯關系的數據庫操作方法,該方法的步驟是提取一個記錄(0301),指定設置給該記錄的一個關聯目標記錄(0302),指定設置給該關聯目標記錄的“可變關聯目標的修改”(0303),激活一個對應于該關聯目標修改信息的關聯目標修改處理過程(0304),接下來,該新獲取的關聯目標被設置為該被提取記錄的一個新關聯目標(0305);更進一步的,本發明提供一種數據庫的管理方法,通過該管理方法,原始數據庫的復制在多個計算機中被建立,且在復制數據庫中修改的內容被映射給該原始數據庫;數據庫的一個源版本針對每一個記錄而被記載下來,對于最新源版本進行修改的內容被設置為有效。文檔編號G06F12/00GK101765831SQ200880101010公開日2010年6月30日申請日期2008年6月4日優先權日2007年6月6日發明者上村邦夫申請人:雅典娜電信實驗有限公司