具有至少两个主机数据库和一个远程数据库的数据库系统以及同步这样的数据库的方法

文档序号:6472792阅读:175来源:国知局

专利名称::具有至少两个主机数据库和一个远程数据库的数据库系统以及同步这样的数据库的方法
技术领域
:本发明涉及如下类型的数据库系统这种系统至少有两个主机处理设备,每个处理设备带有各自的主机数据库,这种系统还包括一个带有远程数据库的远程处理设备,远程数据库的内容与主机数据库同步,所以对任何一个数据库的修改都可以传递给其它数据库。现有技术对于上面的术语,主机处理设备可以例如为台式个人计算机,它把日历或者地址簿作为它的主机数据库。相应地,远程处理设备可以是手提的通信机,例如便携式数字助理(PDA)或者移动电话,它把相应的日历或地址簿作为它的远程数据库。主机和远程数据库是用来包含相同的信息,即相同的日历和地址簿项目,并为用户提供很大的灵活性当用户在办公室时,他可以使用台式计算机的日历来记录会议、期限、生日等。当用户移动时,例如访问顾客和商业伙伴等时,用户将携带他的便携式数字助理或移动电话,并使用其中远程数据库中的日历。为了保持数据库之间的一致性,对台式计算机上的主机数据库的修改或对便携式数字助理上的远程数据库的修改都将传给另外的数据库。使两个数据库包含相同信息的过程称为同步。美国专利US-5729735公开了一种计算机数据库系统,该系统包括主计算机上的主数据库和多个位于便携式计算机上的远程数据库。开始时,从主数据库中拷贝数据产生远程数据库。对由此产生的每一个远程数据库,系统还产生一个备份文件,并存储在主计算机中,当备份文件产生或最后被同步时,备份文件可以反应每个远程数据库的内容。系统不时地同步主数据库和其中一个远程数据库的数据。为此,系统比较主数据库、远程数据库和备份文件中的相应数据,以确定哪一个数据库(远程数据库还是主数据库)有较新版本的数据。系统则用具有较新数据的数据库中的数据更新具有次新数据的数据库。完成数据库同步后,系统会把远程数据库中的所有数据拷贝到备份文件中。因此,美国专利US-5729735的数据库系统能够同步主数据库和远程数据库。但是,因为同步是通过将主数据库和远程数据库中的所有内容和备份文件(本身就是远程数据库的完全拷贝)中的所有内容进行比较来执行的,该过程是耗费时间的,而且需要大量的资源。美国专利US-5790974公开了一种个人日历系统,该系统包括便携式日历系统和辅助办公室日历系统。可以用诸如红外线链路或无线电寻呼接口的双向无线传输来同步日历项目。对其中一个日历所做的修改通过无线接口立即传到另外的日历。系统的优点在于同步是立即完成的,但它也有缺点,就是两个日历之间需要建立操作连接(即便携式日历系统在红外线链路或无线电寻呼接口所覆盖的范围内)。虽然单一主机数据库和单一远程数据库之间的同步是一个简单的工作,然而有两个以上的数据库时工作就变得更加困难。为了避免对一个数据库所做的修改错误地传递给另外的数据库,所以要特别小心。远程数据库存储容量有限(例如,由于便携式数字助理的存储空间有限,等等)就是这种情况。对于这样一个容量有限的远程数据库,为了给新的数据项留出空间,有时就需要牺牲(即删除)其中存储的旧的数据库数据项。但这种删除只是为了释放远程数据库中的存储空间,所以不必传递给其它数据库。本发明的目的是提供一种至少包括两个主机数据库和一个远程数据库的数据库系统,该系统能够比先有技术的解决方案更有效地实现同步。本发明一个特别的目的是防止仅仅为了释放远程数据库中的存储空间所做的删除传递给主机数据库。对于一种数据库系统,上述目标可以达到,该数据库系统至少有两个主机数据库和一个远程数据库,通过提供第一日志文件和第二日志文件,用每个主机数据库的同步引擎来同步主机数据库和远程数据库,第一日志文件具有表示对远程数据库做出改变的项目,包括远程数据库中数据项的增加和修改,以及为了增加远程数据库的用于存储新数据项的自由存储空间而对远程数据库的数据项的删除,第二日志文件具有表示根据任何一个主机数据库中的删除而对远程数据库的相应删除的项目,其中,同步引擎适合于按照第二日志文件中的项目而不是第一日志文件中的项目来执行其主机数据库中数据项的删除。通过下面的最佳实施例、附图和后附的权利要求书的详细公开,本发明的其它目的、优点和特征将显现。详细公开图1示出根据本发明最佳实施例的一种数据库系统。第一主机处理设备100是台式个人计算机并具有第一主机数据库,下面将参照图2对其进行详细说明。个人计算机100的主机数据库可以例如为日历,地址簿等。远程处理设备120是便携式数字助理,它包含远程数据库(见图2)。远程数据库包含日历130的拷贝或者版本,正本存储在个人计算机100中。用户可以通过诸如短程无线电链路(如蓝牙)或红外线链路的无线链路102将便携式数字助理120连接到个人计算机100上。此外,图1以膝上型计算机的形式给出了第二主机处理设备110。膝上型计算机110包括了第二主机数据库(见图2),它也包括了日历130的拷贝或者版本。用户可以通过诸如串行电缆等有线连接112将便携式数字助理120连接到膝上计算机110。但是,个人计算机100、膝上计算机110、便携式数字助理120之间的互连也可以采用图1中没有列出的方式。总结图1,用户可以通过个人计算机100、膝上计算机110和便携式数字助理120使用他的日历130。这样,提供了最大的灵活性,并且用户根据当时的位置和工作地点,通过三台计算机100、110、120中的任何一台访问他的日历130。用户也可以在计算机100、110、120中的任何一台上往他的日历130中添加新项目。类似地,用户也可以从计算机100、110、120中的任何一台上修改日历130中的项目。此外,从计算机100、110、120中的任何一台可以删除日历130中的项目。只要对日历130中产生了这些变化,它们开始都发生本地,即发生在用户正用来访问日历130的特定一台计算机100、110或120上。这些变化必须随后被传递到另两台计算机上,以便保持日历130所有三个版本的一致性。正如本文档前面部分所述,这个过程称为同步。现在转到图2,个人计算机100在图2中举例为第一主机处理设备200。此外,在图2中,膝上型计算机110举例为第二主机处理设备210,便携式数字助理120举例为远程处理设备220。第一主机处理设备200包括了第一主机数据库204,它在上面已被提及并包括图1所示日历130的第一版本。控制器208连接到第一主机数据库204并负责第一主机处理设备200的所有操作。此外,向主机处理设备200提供了同步引擎206,后者连接到第一主机数据库204和控制器208。同步引擎206的任务是根据同步协议202与远程处理设备220(和其中存储的远程数据库224)进行同步。最后,第一主机处理设备200包括UID分辨表(resolutiontable)209,其中UID表示唯一标识符。下面将详细说明,UID是分配给每个数据库数据项的唯一号码。第二主机处理设备210包括了第二主机数据库214,它连接到控制器218和同步引擎216。同步引擎216适合于根据同步协议212执行第二主机处理设备210的第二主机数据库214与远程处理设备220的远程数据库224之间的同步。对应于第一主机处理设备200的表209,第二主机处理设备210也有一个UID分辨表219。远程处理设备220包括连接到上述远程数据库224的控制器228。控制器228适合于根据同步协议202、212分别和第一主机处理设备200的同步引擎206、第二主机处理设备210的同步引擎216进行通信。远程处理设备220还包括了常规变化日志227和硬删除日志229,这将在下面更详细说明。第一主机数据库204、第二主机数据库214、远程数据库224都将包含各自版本的图1所示日历130。同步引擎206和216能够与远程处理设备220的远程数据库224进行所谓的慢同步。慢同步是一个过程,在这个过程中,同步引擎206或216读取远程数据库224中所有的数据库数据项,并把它们与主机数据库中204或214的数据库数据项进行匹配。同步引擎也读取主机数据库中存储的所有数据项,并将它们与远程数据库中存储的数据项进行匹配。未能匹配的数据项将被添加到远程数据库或主机数据库中。同时,生成UID分辨表209或219。UID分辨表分别反应了主机数据库204或214与远程数据库224中数据项的关系。如果已知主机数据库204或214中特定数据项的UID,则UID分辨表209或219会提供远程数据库224中对应的数据项。慢同步最好在日历130开始产生时进行,或者将日历130装载到例如第一主机处理设备200的第一主机数据库204时进行。同步引擎206和216还能执行所谓的半慢同步,其中,从远程数据库224中读取所有的数据项并将其与主机数据库204或214中的数据项相匹配。未能匹配的数据项将分别加到远程数据库224或主机数据库204或214中。同步引擎206、216最好实施为软件程序调度程序,分别存储在与控制器208、218相关的各自的存储器中,可以用同样的软件实现。现在来看远程处理设备220,常规变化日志227的目的是记录对远程数据库224所做的变化。常规变化日志227可以是固定容量的;当添加新的变化时,根据FIFO方法(先进先出),将旧的变化推出变化日志227。常规变化日志227的每个项目包括以下属性事件(添加、删除或修改)、受影响的数据库数据项的UID和变化计数器的值。变化计数器是这样一种计数器它随着对远程数据库224所做的每次变化(添加、删除或修改)而增加。变化计数器存储在常规变化日志227中,在完成一次同步过程后,它还要保存到相应的同步引擎206、216中。同步引擎206或216可以检索常规变化日志227。通过使用变化计数器,同步引擎206或216可以把它的同步过程限制在最近的变化,即上一次完成的同步过程之后产生的变化。如果常规修改日志227包括了上一次同步过程之后的所有变化,则远程数据库224和主机数据库204或214中只有这样的数据项需要比较,并在远程处理设备220和同步引擎206或216之间传递。这明显加快同步过程并称之为快同步。因此,按照本发明,由于提供了常规变化日志227,主机数据库204、214和远程数据库224之间的同步可以更为有效地完成。但是,两个不同的可能情况会产生潜在的问题,在这两种情况中,同步引擎206、216之一从远程数据库224中删除数据情况1为了给远程数据库224留出空间以存储新数据项,同步引擎206或216从远程数据库224中删除数据项。换句话说,远程数据库224中没有足够的可用存储空间来存储新数据项,因此同步引擎206或216通过删除远程数据库224中的旧数据项来释放所需数量的存储空间。例如为了给日历130保留一个滑动窗口而进行上述过程。情况2当用户从主机数据库204或214中删除数据项时,同步引擎206或216会删除远程数据库224中相应的数据项。下面举一示例来说明,其中远程数据库224与两个主机数据库204和214同步并发生了上述的潜在问题。1.第一处理设备200的第一同步引擎206与远程处理设备220开始同步过程。2.为了给远程数据库224的新数据项留出空间,同步引擎206删除远程数据库224中的一个数据项。3.因为删除了远程数据库224中的一个数据项,远程处理设备220在常规变化日志227中为删除的数据项产生一个删除项目。4.同步引擎206完成同步过程。5.第二处理设备210的第二同步引擎216与远程处理设备220开始同步过程。6.同步引擎216检查远程处理设备220中的常规变化日志227,发现有一条数据项被删除。7.因此,同步引擎216从第二主机数据库214中删除该数据项。8.同步引擎216完成它的同步过程。在步骤7中,因为第一主机处理设备200的同步引擎206仅仅是为了给要存储在远程数据库224中的数据项留出空间而删除数据项,因此不应该从第二主机数据库214中删除该数据项。因此,当远程处理设备220与超过一个的主机处理设备200和210同步时,有可能意外删除任何一个主机数据库204或214的数据项。可以通过以下方法解决上述问题·引入两种类型的删除软删除和硬删除。·引入两条指令,一条用于软删除,一条用于硬删除。·引入硬删除日志229,用于记录已经被硬删除的数据项。·当同步引擎206或216请求远程处理设备220的变化日志时,常规变化日志227和硬删除日志229以合适的方式组成组合变化日志。为了给要存储在远程数据库224中新数据项留出空间,同步引擎使用软删除删除其中的数据项。同步引擎使用硬删除从远程数据库224中删除已经从主机数据库204或214中删除了的这样的数据项。硬删除将作为硬删除传递到和远程处理设备同步的其它主机处理设备(即,如果第一主机处理设备200开始了硬删除,则硬删除传递给第二主机处理设备220,反之亦然)。在远程数据库224内执行硬删除和软删除时,同步引擎206或216使用两条不同的指令。除了常规变化日志227外,远程处理设备220还保存独立的硬删除日志229,用于记录已从远程数据库中硬删除的数据项。硬删除日志229的容量可以是固定的或者动态的。最新的项目最好放在日志的顶端。如果日志溢出,将删除日志中最旧的项目。硬删除日志229中的每个项目的属性最好和常规变化日志227中的项目属性相同事件(始终是硬删除)、被硬删除数据库数据项的UID和变化计数器的值。当远程处理设备220收到任何一个主机处理设备200或者210的一条软删除指令时,它将在常规变化日志227中产生一个项目。相应地,当远程处理设备220收到一条硬删除指令时,它将在硬删除日志229中产生一个项目。如前所述,同步引擎206或216适合于接收远程处理设备220的变化日志的内容。这些内容最好以组合变化日志的方式传送到主机处理设备200或210,组合变化日志包括了常规变化日志227和硬删除日志229的项目。有必要区分两种不同类型的组合变化日志类型1和类型2。类型为1的组合变化日志包括了常规变化日志227和硬删除日志229中的项目。项目最好按照最新的项目放在组合变化目志的顶端来列出。类型为2的组合变化日志包括了硬删除229中的项目和一个表示常规变化日志227已满的预定控制字符,诸如“¤”。从硬删除日志来的数据项最好按照最新的项目放在组合变化日志的顶端来列出。如果同步引擎206或216收到类型为1的组合变化日志,则通过快同步过程处理其中的项目。另一方面,如果收到类型为2的组合变化日志,同步引擎206或216将通过快同步过程处理其中的项目,然后转去执行半慢同步过程。上面根据最佳实施例对本发明进行了说明。但是,如后附专利权利要求书中所定义,除了在此公开的实施例外,其它的实施例同样可能在本发明的范畴之内。例如,本发明实施有两个以上与远程数据库同步的主机数据库。此外,给予“主机数据库”和“远程数据库”最为广义的可能解释。本发明不必局限于主机数据库位于静止设备中而远程数据库位于便携式设备中的情形。相反的情形也在本发明的范畴之内。主机处理设备和远程处理设备实际上可以是任何一种能够存储主机数据库或远程数据库的设备。非限制的例子是台式计算机、膝上型计算机、手提计算机、便携式数字助理、移动电话等。权利要求1.一种数据库系统,所述数据库系统包括至少两个主机数据库(204,214),它们位于各自的主机处理设备(200,210)中;远程数据库(224),它位于远程处理设备(220)中,其中所述主机数据库和远程数据库适合于存储多个数据库数据项;以及同步引擎(206,216),它们位于每个主机处理设备中以使其主机数据库与所述远程数据库同步,所述数据库系统的特征在于第一日志文件(227),它具有表示对所述远程数据库(224)所做变化的项目,包括所述远程数据库中数据项的增加和修改以及删除,所述数据项的删除是为了增加所述远程数据库可用于存储新数据项的自由存储空间;和第二日志文件(229),它具有表示根据任何一个所述主机数据库(204,214)中的删除而对所述远程数据库的相应删除的项目;其中所述同步引擎(206,216)适合于根据所述第二日志文件中的项目而不是所述第一日志文件中的项目而在其主机数据库中进行数据项的删除。2.根据权利要求1的数据库系统,其特征在于所述远程处理设备(220)是便携式数字助理。3.根据权利要求1的数据库系统,其特征在于所述远程处理设备(220)是移动电话。4.根据前述任何一项权利要求的数据库系统,其特征在于所述主机处理设备(200,210)中的至少一个是台式计算机或膝上型计算机。5.一种同步至少两个主机数据库(204,214)和一个远程数据库(224)的方法,其特征在于提供第一删除指令,用于在所述远程数据库(224)满时删除其中存储的数据项,提供第二删除指令,用于从所述远程数据库中删除已经从任何一个所述主机数据库(204,214)中删除了的那样的数据项,维护第一日志文件(227),用于记录与所述第一删除指令有关的数据项,和维护第二日志文件(229),用于记录与所述第二删除指令有关的数据项。全文摘要一种数据库系统具有至少两个位于各自的主机处理设备(200,210)中的主机数据库(204,214)。在远程处理设备(220)中提供远程数据库(224)。主机数据库和远程数据库存储多个数据库数据项。在每个主机处理设备提供同步引擎(206,216),用于使其主机数据库与远程数据库同步。第一日志文件(227)包含表示对远程数据库(224)所做变化的项目,包括远程数据库中数据项的增加和修改以及删除,所述数据项的删除是为了增加可用于存储新数据项的自由存储空间。第二日志文件(229)包含表示根据任何一个主机数据库(204,214)中的删除而对远程数据库的相应删除的项目。同步引擎(206,216)根据第二日志文件中而不是第一日志文件中的项目来删除其主机数据库中的数据项。文档编号G06F17/30GK1339134SQ00803528公开日2002年3月6日申请日期2000年2月9日优先权日1999年2月10日发明者J·比尔克勒,P·奥尔松,L·诺瓦克申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1