專利名稱::具有至少兩個主機(jī)數(shù)據(jù)庫和一個遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)庫系統(tǒng)以及同步這樣的數(shù)據(jù)庫的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及如下類型的數(shù)據(jù)庫系統(tǒng)這種系統(tǒng)至少有兩個主機(jī)處理設(shè)備,每個處理設(shè)備帶有各自的主機(jī)數(shù)據(jù)庫,這種系統(tǒng)還包括一個帶有遠(yuǎn)程數(shù)據(jù)庫的遠(yuǎn)程處理設(shè)備,遠(yuǎn)程數(shù)據(jù)庫的內(nèi)容與主機(jī)數(shù)據(jù)庫同步,所以對任何一個數(shù)據(jù)庫的修改都可以傳遞給其它數(shù)據(jù)庫?,F(xiàn)有技術(shù)對于上面的術(shù)語,主機(jī)處理設(shè)備可以例如為臺式個人計算機(jī),它把日歷或者地址簿作為它的主機(jī)數(shù)據(jù)庫。相應(yīng)地,遠(yuǎn)程處理設(shè)備可以是手提的通信機(jī),例如便攜式數(shù)字助理(PDA)或者移動電話,它把相應(yīng)的日歷或地址簿作為它的遠(yuǎn)程數(shù)據(jù)庫。主機(jī)和遠(yuǎn)程數(shù)據(jù)庫是用來包含相同的信息,即相同的日歷和地址簿項(xiàng)目,并為用戶提供很大的靈活性當(dāng)用戶在辦公室時,他可以使用臺式計算機(jī)的日歷來記錄會議、期限、生日等。當(dāng)用戶移動時,例如訪問顧客和商業(yè)伙伴等時,用戶將攜帶他的便攜式數(shù)字助理或移動電話,并使用其中遠(yuǎn)程數(shù)據(jù)庫中的日歷。為了保持?jǐn)?shù)據(jù)庫之間的一致性,對臺式計算機(jī)上的主機(jī)數(shù)據(jù)庫的修改或?qū)Ρ銛y式數(shù)字助理上的遠(yuǎn)程數(shù)據(jù)庫的修改都將傳給另外的數(shù)據(jù)庫。使兩個數(shù)據(jù)庫包含相同信息的過程稱為同步。美國專利US-5729735公開了一種計算機(jī)數(shù)據(jù)庫系統(tǒng),該系統(tǒng)包括主計算機(jī)上的主數(shù)據(jù)庫和多個位于便攜式計算機(jī)上的遠(yuǎn)程數(shù)據(jù)庫。開始時,從主數(shù)據(jù)庫中拷貝數(shù)據(jù)產(chǎn)生遠(yuǎn)程數(shù)據(jù)庫。對由此產(chǎn)生的每一個遠(yuǎn)程數(shù)據(jù)庫,系統(tǒng)還產(chǎn)生一個備份文件,并存儲在主計算機(jī)中,當(dāng)備份文件產(chǎn)生或最后被同步時,備份文件可以反應(yīng)每個遠(yuǎn)程數(shù)據(jù)庫的內(nèi)容。系統(tǒng)不時地同步主數(shù)據(jù)庫和其中一個遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)。為此,系統(tǒng)比較主數(shù)據(jù)庫、遠(yuǎn)程數(shù)據(jù)庫和備份文件中的相應(yīng)數(shù)據(jù),以確定哪一個數(shù)據(jù)庫(遠(yuǎn)程數(shù)據(jù)庫還是主數(shù)據(jù)庫)有較新版本的數(shù)據(jù)。系統(tǒng)則用具有較新數(shù)據(jù)的數(shù)據(jù)庫中的數(shù)據(jù)更新具有次新數(shù)據(jù)的數(shù)據(jù)庫。完成數(shù)據(jù)庫同步后,系統(tǒng)會把遠(yuǎn)程數(shù)據(jù)庫中的所有數(shù)據(jù)拷貝到備份文件中。因此,美國專利US-5729735的數(shù)據(jù)庫系統(tǒng)能夠同步主數(shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫。但是,因?yàn)橥绞峭ㄟ^將主數(shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫中的所有內(nèi)容和備份文件(本身就是遠(yuǎn)程數(shù)據(jù)庫的完全拷貝)中的所有內(nèi)容進(jìn)行比較來執(zhí)行的,該過程是耗費(fèi)時間的,而且需要大量的資源。美國專利US-5790974公開了一種個人日歷系統(tǒng),該系統(tǒng)包括便攜式日歷系統(tǒng)和輔助辦公室日歷系統(tǒng)??梢杂弥T如紅外線鏈路或無線電尋呼接口的雙向無線傳輸來同步日歷項(xiàng)目。對其中一個日歷所做的修改通過無線接口立即傳到另外的日歷。系統(tǒng)的優(yōu)點(diǎn)在于同步是立即完成的,但它也有缺點(diǎn),就是兩個日歷之間需要建立操作連接(即便攜式日歷系統(tǒng)在紅外線鏈路或無線電尋呼接口所覆蓋的范圍內(nèi))。雖然單一主機(jī)數(shù)據(jù)庫和單一遠(yuǎn)程數(shù)據(jù)庫之間的同步是一個簡單的工作,然而有兩個以上的數(shù)據(jù)庫時工作就變得更加困難。為了避免對一個數(shù)據(jù)庫所做的修改錯誤地傳遞給另外的數(shù)據(jù)庫,所以要特別小心。遠(yuǎn)程數(shù)據(jù)庫存儲容量有限(例如,由于便攜式數(shù)字助理的存儲空間有限,等等)就是這種情況。對于這樣一個容量有限的遠(yuǎn)程數(shù)據(jù)庫,為了給新的數(shù)據(jù)項(xiàng)留出空間,有時就需要犧牲(即刪除)其中存儲的舊的數(shù)據(jù)庫數(shù)據(jù)項(xiàng)。但這種刪除只是為了釋放遠(yuǎn)程數(shù)據(jù)庫中的存儲空間,所以不必傳遞給其它數(shù)據(jù)庫。本發(fā)明的目的是提供一種至少包括兩個主機(jī)數(shù)據(jù)庫和一個遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)庫系統(tǒng),該系統(tǒng)能夠比先有技術(shù)的解決方案更有效地實(shí)現(xiàn)同步。本發(fā)明一個特別的目的是防止僅僅為了釋放遠(yuǎn)程數(shù)據(jù)庫中的存儲空間所做的刪除傳遞給主機(jī)數(shù)據(jù)庫。對于一種數(shù)據(jù)庫系統(tǒng),上述目標(biāo)可以達(dá)到,該數(shù)據(jù)庫系統(tǒng)至少有兩個主機(jī)數(shù)據(jù)庫和一個遠(yuǎn)程數(shù)據(jù)庫,通過提供第一日志文件和第二日志文件,用每個主機(jī)數(shù)據(jù)庫的同步引擎來同步主機(jī)數(shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫,第一日志文件具有表示對遠(yuǎn)程數(shù)據(jù)庫做出改變的項(xiàng)目,包括遠(yuǎn)程數(shù)據(jù)庫中數(shù)據(jù)項(xiàng)的增加和修改,以及為了增加遠(yuǎn)程數(shù)據(jù)庫的用于存儲新數(shù)據(jù)項(xiàng)的自由存儲空間而對遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)項(xiàng)的刪除,第二日志文件具有表示根據(jù)任何一個主機(jī)數(shù)據(jù)庫中的刪除而對遠(yuǎn)程數(shù)據(jù)庫的相應(yīng)刪除的項(xiàng)目,其中,同步引擎適合于按照第二日志文件中的項(xiàng)目而不是第一日志文件中的項(xiàng)目來執(zhí)行其主機(jī)數(shù)據(jù)庫中數(shù)據(jù)項(xiàng)的刪除。通過下面的最佳實(shí)施例、附圖和后附的權(quán)利要求書的詳細(xì)公開,本發(fā)明的其它目的、優(yōu)點(diǎn)和特征將顯現(xiàn)。詳細(xì)公開圖1示出根據(jù)本發(fā)明最佳實(shí)施例的一種數(shù)據(jù)庫系統(tǒng)。第一主機(jī)處理設(shè)備100是臺式個人計算機(jī)并具有第一主機(jī)數(shù)據(jù)庫,下面將參照圖2對其進(jìn)行詳細(xì)說明。個人計算機(jī)100的主機(jī)數(shù)據(jù)庫可以例如為日歷,地址簿等。遠(yuǎn)程處理設(shè)備120是便攜式數(shù)字助理,它包含遠(yuǎn)程數(shù)據(jù)庫(見圖2)。遠(yuǎn)程數(shù)據(jù)庫包含日歷130的拷貝或者版本,正本存儲在個人計算機(jī)100中。用戶可以通過諸如短程無線電鏈路(如藍(lán)牙)或紅外線鏈路的無線鏈路102將便攜式數(shù)字助理120連接到個人計算機(jī)100上。此外,圖1以膝上型計算機(jī)的形式給出了第二主機(jī)處理設(shè)備110。膝上型計算機(jī)110包括了第二主機(jī)數(shù)據(jù)庫(見圖2),它也包括了日歷130的拷貝或者版本。用戶可以通過諸如串行電纜等有線連接112將便攜式數(shù)字助理120連接到膝上計算機(jī)110。但是,個人計算機(jī)100、膝上計算機(jī)110、便攜式數(shù)字助理120之間的互連也可以采用圖1中沒有列出的方式??偨Y(jié)圖1,用戶可以通過個人計算機(jī)100、膝上計算機(jī)110和便攜式數(shù)字助理120使用他的日歷130。這樣,提供了最大的靈活性,并且用戶根據(jù)當(dāng)時的位置和工作地點(diǎn),通過三臺計算機(jī)100、110、120中的任何一臺訪問他的日歷130。用戶也可以在計算機(jī)100、110、120中的任何一臺上往他的日歷130中添加新項(xiàng)目。類似地,用戶也可以從計算機(jī)100、110、120中的任何一臺上修改日歷130中的項(xiàng)目。此外,從計算機(jī)100、110、120中的任何一臺可以刪除日歷130中的項(xiàng)目。只要對日歷130中產(chǎn)生了這些變化,它們開始都發(fā)生本地,即發(fā)生在用戶正用來訪問日歷130的特定一臺計算機(jī)100、110或120上。這些變化必須隨后被傳遞到另兩臺計算機(jī)上,以便保持日歷130所有三個版本的一致性。正如本文檔前面部分所述,這個過程稱為同步?,F(xiàn)在轉(zhuǎn)到圖2,個人計算機(jī)100在圖2中舉例為第一主機(jī)處理設(shè)備200。此外,在圖2中,膝上型計算機(jī)110舉例為第二主機(jī)處理設(shè)備210,便攜式數(shù)字助理120舉例為遠(yuǎn)程處理設(shè)備220。第一主機(jī)處理設(shè)備200包括了第一主機(jī)數(shù)據(jù)庫204,它在上面已被提及并包括圖1所示日歷130的第一版本??刂破?08連接到第一主機(jī)數(shù)據(jù)庫204并負(fù)責(zé)第一主機(jī)處理設(shè)備200的所有操作。此外,向主機(jī)處理設(shè)備200提供了同步引擎206,后者連接到第一主機(jī)數(shù)據(jù)庫204和控制器208。同步引擎206的任務(wù)是根據(jù)同步協(xié)議202與遠(yuǎn)程處理設(shè)備220(和其中存儲的遠(yuǎn)程數(shù)據(jù)庫224)進(jìn)行同步。最后,第一主機(jī)處理設(shè)備200包括UID分辨表(resolutiontable)209,其中UID表示唯一標(biāo)識符。下面將詳細(xì)說明,UID是分配給每個數(shù)據(jù)庫數(shù)據(jù)項(xiàng)的唯一號碼。第二主機(jī)處理設(shè)備210包括了第二主機(jī)數(shù)據(jù)庫214,它連接到控制器218和同步引擎216。同步引擎216適合于根據(jù)同步協(xié)議212執(zhí)行第二主機(jī)處理設(shè)備210的第二主機(jī)數(shù)據(jù)庫214與遠(yuǎn)程處理設(shè)備220的遠(yuǎn)程數(shù)據(jù)庫224之間的同步。對應(yīng)于第一主機(jī)處理設(shè)備200的表209,第二主機(jī)處理設(shè)備210也有一個UID分辨表219。遠(yuǎn)程處理設(shè)備220包括連接到上述遠(yuǎn)程數(shù)據(jù)庫224的控制器228??刂破?28適合于根據(jù)同步協(xié)議202、212分別和第一主機(jī)處理設(shè)備200的同步引擎206、第二主機(jī)處理設(shè)備210的同步引擎216進(jìn)行通信。遠(yuǎn)程處理設(shè)備220還包括了常規(guī)變化日志227和硬刪除日志229,這將在下面更詳細(xì)說明。第一主機(jī)數(shù)據(jù)庫204、第二主機(jī)數(shù)據(jù)庫214、遠(yuǎn)程數(shù)據(jù)庫224都將包含各自版本的圖1所示日歷130。同步引擎206和216能夠與遠(yuǎn)程處理設(shè)備220的遠(yuǎn)程數(shù)據(jù)庫224進(jìn)行所謂的慢同步。慢同步是一個過程,在這個過程中,同步引擎206或216讀取遠(yuǎn)程數(shù)據(jù)庫224中所有的數(shù)據(jù)庫數(shù)據(jù)項(xiàng),并把它們與主機(jī)數(shù)據(jù)庫中204或214的數(shù)據(jù)庫數(shù)據(jù)項(xiàng)進(jìn)行匹配。同步引擎也讀取主機(jī)數(shù)據(jù)庫中存儲的所有數(shù)據(jù)項(xiàng),并將它們與遠(yuǎn)程數(shù)據(jù)庫中存儲的數(shù)據(jù)項(xiàng)進(jìn)行匹配。未能匹配的數(shù)據(jù)項(xiàng)將被添加到遠(yuǎn)程數(shù)據(jù)庫或主機(jī)數(shù)據(jù)庫中。同時,生成UID分辨表209或219。UID分辨表分別反應(yīng)了主機(jī)數(shù)據(jù)庫204或214與遠(yuǎn)程數(shù)據(jù)庫224中數(shù)據(jù)項(xiàng)的關(guān)系。如果已知主機(jī)數(shù)據(jù)庫204或214中特定數(shù)據(jù)項(xiàng)的UID,則UID分辨表209或219會提供遠(yuǎn)程數(shù)據(jù)庫224中對應(yīng)的數(shù)據(jù)項(xiàng)。慢同步最好在日歷130開始產(chǎn)生時進(jìn)行,或者將日歷130裝載到例如第一主機(jī)處理設(shè)備200的第一主機(jī)數(shù)據(jù)庫204時進(jìn)行。同步引擎206和216還能執(zhí)行所謂的半慢同步,其中,從遠(yuǎn)程數(shù)據(jù)庫224中讀取所有的數(shù)據(jù)項(xiàng)并將其與主機(jī)數(shù)據(jù)庫204或214中的數(shù)據(jù)項(xiàng)相匹配。未能匹配的數(shù)據(jù)項(xiàng)將分別加到遠(yuǎn)程數(shù)據(jù)庫224或主機(jī)數(shù)據(jù)庫204或214中。同步引擎206、216最好實(shí)施為軟件程序調(diào)度程序,分別存儲在與控制器208、218相關(guān)的各自的存儲器中,可以用同樣的軟件實(shí)現(xiàn)?,F(xiàn)在來看遠(yuǎn)程處理設(shè)備220,常規(guī)變化日志227的目的是記錄對遠(yuǎn)程數(shù)據(jù)庫224所做的變化。常規(guī)變化日志227可以是固定容量的;當(dāng)添加新的變化時,根據(jù)FIFO方法(先進(jìn)先出),將舊的變化推出變化日志227。常規(guī)變化日志227的每個項(xiàng)目包括以下屬性事件(添加、刪除或修改)、受影響的數(shù)據(jù)庫數(shù)據(jù)項(xiàng)的UID和變化計數(shù)器的值。變化計數(shù)器是這樣一種計數(shù)器它隨著對遠(yuǎn)程數(shù)據(jù)庫224所做的每次變化(添加、刪除或修改)而增加。變化計數(shù)器存儲在常規(guī)變化日志227中,在完成一次同步過程后,它還要保存到相應(yīng)的同步引擎206、216中。同步引擎206或216可以檢索常規(guī)變化日志227。通過使用變化計數(shù)器,同步引擎206或216可以把它的同步過程限制在最近的變化,即上一次完成的同步過程之后產(chǎn)生的變化。如果常規(guī)修改日志227包括了上一次同步過程之后的所有變化,則遠(yuǎn)程數(shù)據(jù)庫224和主機(jī)數(shù)據(jù)庫204或214中只有這樣的數(shù)據(jù)項(xiàng)需要比較,并在遠(yuǎn)程處理設(shè)備220和同步引擎206或216之間傳遞。這明顯加快同步過程并稱之為快同步。因此,按照本發(fā)明,由于提供了常規(guī)變化日志227,主機(jī)數(shù)據(jù)庫204、214和遠(yuǎn)程數(shù)據(jù)庫224之間的同步可以更為有效地完成。但是,兩個不同的可能情況會產(chǎn)生潛在的問題,在這兩種情況中,同步引擎206、216之一從遠(yuǎn)程數(shù)據(jù)庫224中刪除數(shù)據(jù)情況1為了給遠(yuǎn)程數(shù)據(jù)庫224留出空間以存儲新數(shù)據(jù)項(xiàng),同步引擎206或216從遠(yuǎn)程數(shù)據(jù)庫224中刪除數(shù)據(jù)項(xiàng)。換句話說,遠(yuǎn)程數(shù)據(jù)庫224中沒有足夠的可用存儲空間來存儲新數(shù)據(jù)項(xiàng),因此同步引擎206或216通過刪除遠(yuǎn)程數(shù)據(jù)庫224中的舊數(shù)據(jù)項(xiàng)來釋放所需數(shù)量的存儲空間。例如為了給日歷130保留一個滑動窗口而進(jìn)行上述過程。情況2當(dāng)用戶從主機(jī)數(shù)據(jù)庫204或214中刪除數(shù)據(jù)項(xiàng)時,同步引擎206或216會刪除遠(yuǎn)程數(shù)據(jù)庫224中相應(yīng)的數(shù)據(jù)項(xiàng)。下面舉一示例來說明,其中遠(yuǎn)程數(shù)據(jù)庫224與兩個主機(jī)數(shù)據(jù)庫204和214同步并發(fā)生了上述的潛在問題。1.第一處理設(shè)備200的第一同步引擎206與遠(yuǎn)程處理設(shè)備220開始同步過程。2.為了給遠(yuǎn)程數(shù)據(jù)庫224的新數(shù)據(jù)項(xiàng)留出空間,同步引擎206刪除遠(yuǎn)程數(shù)據(jù)庫224中的一個數(shù)據(jù)項(xiàng)。3.因?yàn)閯h除了遠(yuǎn)程數(shù)據(jù)庫224中的一個數(shù)據(jù)項(xiàng),遠(yuǎn)程處理設(shè)備220在常規(guī)變化日志227中為刪除的數(shù)據(jù)項(xiàng)產(chǎn)生一個刪除項(xiàng)目。4.同步引擎206完成同步過程。5.第二處理設(shè)備210的第二同步引擎216與遠(yuǎn)程處理設(shè)備220開始同步過程。6.同步引擎216檢查遠(yuǎn)程處理設(shè)備220中的常規(guī)變化日志227,發(fā)現(xiàn)有一條數(shù)據(jù)項(xiàng)被刪除。7.因此,同步引擎216從第二主機(jī)數(shù)據(jù)庫214中刪除該數(shù)據(jù)項(xiàng)。8.同步引擎216完成它的同步過程。在步驟7中,因?yàn)榈谝恢鳈C(jī)處理設(shè)備200的同步引擎206僅僅是為了給要存儲在遠(yuǎn)程數(shù)據(jù)庫224中的數(shù)據(jù)項(xiàng)留出空間而刪除數(shù)據(jù)項(xiàng),因此不應(yīng)該從第二主機(jī)數(shù)據(jù)庫214中刪除該數(shù)據(jù)項(xiàng)。因此,當(dāng)遠(yuǎn)程處理設(shè)備220與超過一個的主機(jī)處理設(shè)備200和210同步時,有可能意外刪除任何一個主機(jī)數(shù)據(jù)庫204或214的數(shù)據(jù)項(xiàng)??梢酝ㄟ^以下方法解決上述問題·引入兩種類型的刪除軟刪除和硬刪除?!ひ雰蓷l指令,一條用于軟刪除,一條用于硬刪除?!ひ胗矂h除日志229,用于記錄已經(jīng)被硬刪除的數(shù)據(jù)項(xiàng)?!ぎ?dāng)同步引擎206或216請求遠(yuǎn)程處理設(shè)備220的變化日志時,常規(guī)變化日志227和硬刪除日志229以合適的方式組成組合變化日志。為了給要存儲在遠(yuǎn)程數(shù)據(jù)庫224中新數(shù)據(jù)項(xiàng)留出空間,同步引擎使用軟刪除刪除其中的數(shù)據(jù)項(xiàng)。同步引擎使用硬刪除從遠(yuǎn)程數(shù)據(jù)庫224中刪除已經(jīng)從主機(jī)數(shù)據(jù)庫204或214中刪除了的這樣的數(shù)據(jù)項(xiàng)。硬刪除將作為硬刪除傳遞到和遠(yuǎn)程處理設(shè)備同步的其它主機(jī)處理設(shè)備(即,如果第一主機(jī)處理設(shè)備200開始了硬刪除,則硬刪除傳遞給第二主機(jī)處理設(shè)備220,反之亦然)。在遠(yuǎn)程數(shù)據(jù)庫224內(nèi)執(zhí)行硬刪除和軟刪除時,同步引擎206或216使用兩條不同的指令。除了常規(guī)變化日志227外,遠(yuǎn)程處理設(shè)備220還保存獨(dú)立的硬刪除日志229,用于記錄已從遠(yuǎn)程數(shù)據(jù)庫中硬刪除的數(shù)據(jù)項(xiàng)。硬刪除日志229的容量可以是固定的或者動態(tài)的。最新的項(xiàng)目最好放在日志的頂端。如果日志溢出,將刪除日志中最舊的項(xiàng)目。硬刪除日志229中的每個項(xiàng)目的屬性最好和常規(guī)變化日志227中的項(xiàng)目屬性相同事件(始終是硬刪除)、被硬刪除數(shù)據(jù)庫數(shù)據(jù)項(xiàng)的UID和變化計數(shù)器的值。當(dāng)遠(yuǎn)程處理設(shè)備220收到任何一個主機(jī)處理設(shè)備200或者210的一條軟刪除指令時,它將在常規(guī)變化日志227中產(chǎn)生一個項(xiàng)目。相應(yīng)地,當(dāng)遠(yuǎn)程處理設(shè)備220收到一條硬刪除指令時,它將在硬刪除日志229中產(chǎn)生一個項(xiàng)目。如前所述,同步引擎206或216適合于接收遠(yuǎn)程處理設(shè)備220的變化日志的內(nèi)容。這些內(nèi)容最好以組合變化日志的方式傳送到主機(jī)處理設(shè)備200或210,組合變化日志包括了常規(guī)變化日志227和硬刪除日志229的項(xiàng)目。有必要區(qū)分兩種不同類型的組合變化日志類型1和類型2。類型為1的組合變化日志包括了常規(guī)變化日志227和硬刪除日志229中的項(xiàng)目。項(xiàng)目最好按照最新的項(xiàng)目放在組合變化目志的頂端來列出。類型為2的組合變化日志包括了硬刪除229中的項(xiàng)目和一個表示常規(guī)變化日志227已滿的預(yù)定控制字符,諸如“¤”。從硬刪除日志來的數(shù)據(jù)項(xiàng)最好按照最新的項(xiàng)目放在組合變化日志的頂端來列出。如果同步引擎206或216收到類型為1的組合變化日志,則通過快同步過程處理其中的項(xiàng)目。另一方面,如果收到類型為2的組合變化日志,同步引擎206或216將通過快同步過程處理其中的項(xiàng)目,然后轉(zhuǎn)去執(zhí)行半慢同步過程。上面根據(jù)最佳實(shí)施例對本發(fā)明進(jìn)行了說明。但是,如后附專利權(quán)利要求書中所定義,除了在此公開的實(shí)施例外,其它的實(shí)施例同樣可能在本發(fā)明的范疇之內(nèi)。例如,本發(fā)明實(shí)施有兩個以上與遠(yuǎn)程數(shù)據(jù)庫同步的主機(jī)數(shù)據(jù)庫。此外,給予“主機(jī)數(shù)據(jù)庫”和“遠(yuǎn)程數(shù)據(jù)庫”最為廣義的可能解釋。本發(fā)明不必局限于主機(jī)數(shù)據(jù)庫位于靜止設(shè)備中而遠(yuǎn)程數(shù)據(jù)庫位于便攜式設(shè)備中的情形。相反的情形也在本發(fā)明的范疇之內(nèi)。主機(jī)處理設(shè)備和遠(yuǎn)程處理設(shè)備實(shí)際上可以是任何一種能夠存儲主機(jī)數(shù)據(jù)庫或遠(yuǎn)程數(shù)據(jù)庫的設(shè)備。非限制的例子是臺式計算機(jī)、膝上型計算機(jī)、手提計算機(jī)、便攜式數(shù)字助理、移動電話等。權(quán)利要求1.一種數(shù)據(jù)庫系統(tǒng),所述數(shù)據(jù)庫系統(tǒng)包括至少兩個主機(jī)數(shù)據(jù)庫(204,214),它們位于各自的主機(jī)處理設(shè)備(200,210)中;遠(yuǎn)程數(shù)據(jù)庫(224),它位于遠(yuǎn)程處理設(shè)備(220)中,其中所述主機(jī)數(shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫適合于存儲多個數(shù)據(jù)庫數(shù)據(jù)項(xiàng);以及同步引擎(206,216),它們位于每個主機(jī)處理設(shè)備中以使其主機(jī)數(shù)據(jù)庫與所述遠(yuǎn)程數(shù)據(jù)庫同步,所述數(shù)據(jù)庫系統(tǒng)的特征在于第一日志文件(227),它具有表示對所述遠(yuǎn)程數(shù)據(jù)庫(224)所做變化的項(xiàng)目,包括所述遠(yuǎn)程數(shù)據(jù)庫中數(shù)據(jù)項(xiàng)的增加和修改以及刪除,所述數(shù)據(jù)項(xiàng)的刪除是為了增加所述遠(yuǎn)程數(shù)據(jù)庫可用于存儲新數(shù)據(jù)項(xiàng)的自由存儲空間;和第二日志文件(229),它具有表示根據(jù)任何一個所述主機(jī)數(shù)據(jù)庫(204,214)中的刪除而對所述遠(yuǎn)程數(shù)據(jù)庫的相應(yīng)刪除的項(xiàng)目;其中所述同步引擎(206,216)適合于根據(jù)所述第二日志文件中的項(xiàng)目而不是所述第一日志文件中的項(xiàng)目而在其主機(jī)數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)項(xiàng)的刪除。2.根據(jù)權(quán)利要求1的數(shù)據(jù)庫系統(tǒng),其特征在于所述遠(yuǎn)程處理設(shè)備(220)是便攜式數(shù)字助理。3.根據(jù)權(quán)利要求1的數(shù)據(jù)庫系統(tǒng),其特征在于所述遠(yuǎn)程處理設(shè)備(220)是移動電話。4.根據(jù)前述任何一項(xiàng)權(quán)利要求的數(shù)據(jù)庫系統(tǒng),其特征在于所述主機(jī)處理設(shè)備(200,210)中的至少一個是臺式計算機(jī)或膝上型計算機(jī)。5.一種同步至少兩個主機(jī)數(shù)據(jù)庫(204,214)和一個遠(yuǎn)程數(shù)據(jù)庫(224)的方法,其特征在于提供第一刪除指令,用于在所述遠(yuǎn)程數(shù)據(jù)庫(224)滿時刪除其中存儲的數(shù)據(jù)項(xiàng),提供第二刪除指令,用于從所述遠(yuǎn)程數(shù)據(jù)庫中刪除已經(jīng)從任何一個所述主機(jī)數(shù)據(jù)庫(204,214)中刪除了的那樣的數(shù)據(jù)項(xiàng),維護(hù)第一日志文件(227),用于記錄與所述第一刪除指令有關(guān)的數(shù)據(jù)項(xiàng),和維護(hù)第二日志文件(229),用于記錄與所述第二刪除指令有關(guān)的數(shù)據(jù)項(xiàng)。全文摘要一種數(shù)據(jù)庫系統(tǒng)具有至少兩個位于各自的主機(jī)處理設(shè)備(200,210)中的主機(jī)數(shù)據(jù)庫(204,214)。在遠(yuǎn)程處理設(shè)備(220)中提供遠(yuǎn)程數(shù)據(jù)庫(224)。主機(jī)數(shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫存儲多個數(shù)據(jù)庫數(shù)據(jù)項(xiàng)。在每個主機(jī)處理設(shè)備提供同步引擎(206,216),用于使其主機(jī)數(shù)據(jù)庫與遠(yuǎn)程數(shù)據(jù)庫同步。第一日志文件(227)包含表示對遠(yuǎn)程數(shù)據(jù)庫(224)所做變化的項(xiàng)目,包括遠(yuǎn)程數(shù)據(jù)庫中數(shù)據(jù)項(xiàng)的增加和修改以及刪除,所述數(shù)據(jù)項(xiàng)的刪除是為了增加可用于存儲新數(shù)據(jù)項(xiàng)的自由存儲空間。第二日志文件(229)包含表示根據(jù)任何一個主機(jī)數(shù)據(jù)庫(204,214)中的刪除而對遠(yuǎn)程數(shù)據(jù)庫的相應(yīng)刪除的項(xiàng)目。同步引擎(206,216)根據(jù)第二日志文件中而不是第一日志文件中的項(xiàng)目來刪除其主機(jī)數(shù)據(jù)庫中的數(shù)據(jù)項(xiàng)。文檔編號G06F17/30GK1339134SQ00803528公開日2002年3月6日申請日期2000年2月9日優(yōu)先權(quán)日1999年2月10日發(fā)明者J·比爾克勒,P·奧爾松,L·諾瓦克申請人:艾利森電話股份有限公司