在数据库环境通过背景同步的数据完整性的制作方法

文档序号:6596098阅读:185来源:国知局
专利名称:在数据库环境通过背景同步的数据完整性的制作方法
技术领域
本发明涉及在数据库环境中保持数据的完整性,特别是在数据库环境中通过背景同步保持数据的完整性。
背景技术
在当今不断扩展的计算环境中,许多企业员工使用便携式、移动计算装置如个人笔记本电脑、平板电脑、个人数码助理、智能电话和其它类似装置来执行工作。这些远程系统通常运行采取“始终可用”或“偶然连接”的架构的移动商务应用程序。在这种方式下, 远程系统在本地存储数据,使自己的数据应用程序在网络是否可用时都可以继续使用。尽管有本地数据存储,为商务应用程序使用的数据的最终来源不是远程系统,而是公司服务器上的综合数据库。每隔一段时间,在流动员工中被利用和更新的数据需要通过有线或无线网络连接与综合数据库的中央数据存储同步,以确保数据的完整性。虽然数据同步显然是必要的,以保持移动计算环境中的数据一致,但是从移动装置移动数据到综合服务器并从综合服务器移动数据到移动装置的同步操作会需要大量的计算机和网络资源,往往需要很长时间才能完成。这些操作包括追踪移动装置和服务器上的数据变化、传输正确的变化、确保数据的唯一键值被保留并确定和解决冲突的发生。通常情况下,数据同步进程的必要控制要求在同步进程发生时远程系统中的数据访问受到限制,以最多只允许数据的唯读访问。然而,当同步操作进行其间缺少对远程数据库的同时事务访问的支持会降低性能和效率。因此,在远程数据库环境中通过在数据修改操作的背景运行的同步以确保数据完整性的方法是有需要的。本发明解决这样的需要。

发明内容
本发明涉及数据库环境中保持数据完整性的系统、方法和计算机程序产品。在一个实施例中,本发明在远程数据系统开始一个进程以同步来自远程数据库系统的远程数据与综合数据库的综合数据,并在同步进程发生时利用远程数据的每一行元数据以允许事务访问。本发明的更多特征、优点、以及各实施方式的结构和运作将连同参照附图在以下详细描述。需注意本文描述的具体实施方式
只示意作说明用途,而本发明并不局限于此。本发明所教导内容使相关领域技术人员显而易见地联想到更多的实施方式。


纳入本说明并构成本文一部分的附图,描绘了本发明的实施方式。附图及其描述进一步说明了本发明的原理,并容许相关领域技术人员制作及使用本发明。图1展示了本发明一个实施例中实现背景同步的计算环境例子的框图。图2说明了本发明一个实施例中在数据库环境下确保数据完整性的同步进程的整体流程的框图。图3说明了本发明一个实施例中保持同步进程的元数据的整体流程的框图。图4说明了本发明一个实施例中确定元数据的上传状态值部分的整体流程的框图。图5说明了本发明一个实施例中解释上载状态值影响同步进程的整体流程的框图。图6说明了一个实施本发明的有用计算机的例子。当结合附图和以下的详细描述,本发明的特点和优势将更加明显。在附图中,参考编号通常指相同、功能相似和/或结构相似的组件。一般来说,参考编号最左方的数字指出该参考编号最初出现的附图的号码。
具体实施例方式在移动环境中,特别是手持式计算机系统,本地数据库应用的利用必须支持本地数据库与网络服务器上的综合数据库的数据同步的需要。一个已知的数据库应用在名称为数据库系统和从便携式装置访问数据库的方法并专利权已转让给受让人的美国专利 634U88中描述了,其在多个装置之间更具便携性,该多个装置包括具有有限计算能力的装置。随着计算能力、存储装置、和移动系统的其它系统组件已在近年来有所改善以支持多线程处理,相应地,在当今快速节奏和移动办公环境中,有必要增加一个不仅可以保持数据的完整性,而且还可以作为背景运作以允许大量连续的事务访问并改善效率和性能的同步工序。图1展示了本发明一个实施例中实现背景同步的移动计算环境102的框图。其中包括中央系统104和一个或多个远程系统106如便携式、手持移动计算装置,例如笔记本电脑装置、个人数码助理、手机和相类似的。中央系统104和远程系统106之间通过通信网络 108的任何已知手段(例如互联网,但不限于互联网)来通信。中央系统104包括同步系统110和综合数据库系统112。综合数据库系统112 作为数据库管理器和数据库来运作,其中数据库可以进一步包括索引和表数据,而数据库管理器可以是任何数据库管理系统(DBMS)的形式,并可以包括但不限于拥有处理器和内存以执行和储存指令的装置。在一个不是为了限制本发明例子,综合数据库系统112可包括软件、固件和硬件或它们的组合,数据库管理器可以是如SYBASE Adaptive Sever Enterprise 的DBMS。该软件可以包含一个或多个应用程序和操作系统。硬件可以包括但不限于处理器、内存和用户界面显示屏。自选的输入装置如键盘、鼠标、手写笔或任何其它指示装置也可以使用。数据库管理器可以存储和操作在数据库中的数据。数据库管理器可直接被系统用户作为软件包的组件来使用,或可用于提供各种服务到独立的软件包。每个远程系统106优选地包含远程数据库系统114。远程数据库系统114可进一步包含在综合数据库系统的数据库中的数据子集,该数据子集包括数据库索引和表数据。远程系统106可以包括但不限于拥有处理器和内存以执行和储存指令的装置。在一个不是为了限制本发明的例子,远程数据库系统114可被提供作为SYBASE SQL Anywhere UltraLite ,并可以包括软件、固件和硬件或它们的组合。该软件可以包含一个或多个应用程序和操作系统。硬件可以包括但不限于处理器、内存和用户界面的显示屏。自选的输
5入装置如键盘、手写笔或任何其它指示装置也可以使用。在综合数据库系统112的数据库和在远程数据库系统114的该数据库的子集可以是根据本领域中已知的不同逻辑数据模型或存储的数据的视图来管理和操作的数据集合。 在目前的数据库市场,逻辑数据模型的例子包括采用行业标准SQL查询语言的关系模型。 数据库表对本领域的技术人员来说是已知的,数据库表可以进一步包括几个记录,每个记录由几个列组成。作为一个例子,在关系架构系统中操作数据包括对存在于数据库中的表、共享列和索引的操作。例如,在远程数据库系统114,行映图存储结构可以维持从行标识符到行状态(行状态在下文进一步说明)和行处理的映射。该行标识符可以被添加到列目录的末尾以作为提供列和行标识符的有序目录的索引键的一部份。行处理可以包含存储结构中的行数据的坐标。从概念上讲,行映图是线性阵列并被行标识符索引。通过分配该阵列的数据段到存储页并用内部寻址节把数据段连接一起到树的方法来存储数组,其在树的深度相当于该行映图的大小。与已知的B-树结构相似,树的叶子包含实际的数组。根和内部节点用来确定拥有最少输入/输出成本的阵列。同步系统110运行以确保综合数据库系统的112的数据库与在远程数据库系统 114中该数据库的子集之间数据完整性。在一个不是为了限制的本发明例子中,同步系统 110可提供作为SYBASE SQL Anywhere MobiLink ,也可以包括软件、固件和硬件或它们的组合。通过通信数据的变更,远程系统106和中央系统104之间可实现高效数据同步。在一个优选的实施例,移动计算环境102的背景同步进程在及时知道甚么数据变更应上传到中央系统104和什么数据变更应该被忽略时通过创建远程数据库系统114的数据“快照”来实现。该快照以多类型位值的形式使用元数据,包括上载值以作为每数据行的行状态。此元数据必须负责追踪仅仅超过一个简单单一位的行情况以表示插入或删除行, 因为在背景正被同步的行也可能在前景被改变。因此,即使一背景同步被处理以确保下一背景同步进程的任何修改被捕获,本发明的元数据也可以追踪和识别数据库操作过程中被修改的行。现在参考图2,本发明一个实施例中在数据库环境下确保数据完整性的同步进程的整体流程的框图被展示了。正如将要描述的,在同步过程中会有一些不同的信息交换,从而限制了协议的“聊天”。当通信可能会比较慢和具有较高的延迟时,这可能是有利的,例如当使用电话线路或公共无线网络连接,本领域的技术人员非常理解。通常,当用户选择执行数据同步(框块200),远程系统106和中央系统104之间通过通信网络108建立了连接,同步进程开始发生了。要同步的数据在上载流中从远程系统 106传送到中央系统104(框块20 。在一个优选的实施例,上载流的建设依赖于使用行状态元数据以确定哪些行传送到中央系统104和这些行的情况。通过使用行状态元数据,同步功能可发生而无需使用在本领域中共知的且更复杂和费时的典型日志事务追踪和联合。当接收到上载流,中央系统104把上载流应用到综合数据库系统112(框块204), 并在综合数据库系统112(框块206)执行上载流的变更。随着执行数据变更以完成同步进程的上传阶段,中央系统通过发送回复到远程系统106以表明在中央系统106 (框块210) 的上载流已经完成执行以启动下载阶段。中央系统104然后建立并传送下载流到远程系统 106(框块210)。远程系统106调整已成功上载的行(框块212)的行元数据状态并应用于接收到下载流(框块214)。基于来自下载流的数据,进行必要的调整到行状态以执行来自远程数据库系统114(框块216)的数据并完成同步过程。现在参考图3,根据本发明的一个实施例,图3展示了维持元数据来实现图2中同步进程的整体步骤。当远程系统106的用户实行数据库操作(框块300)如删除、更新或添加操作,该进程启动了。根据操作的发生,行状态的元数据用来反映任何变化。如下面的列表所示,在一个优选的实施例,元数据包括四个一起提供行状态的值插入类型(正常,插入,后影像);删除类型(无,删除,移除);执行状态(插入执行,插入没有执行,或许);及上载状态(没有计算,包括,除外)。为了让每个值的三个情况得到允许,8位(每个值2位)可以用来提供元数据。作为例子,在一个行初步插入的数据库操作,插入类型值=插入、删除类型值= 无、执行状态值=插入没有执行以及上载状态值=没有计算。在行的更新,新版本的行被标记为删除类型值=无、执行状态值=插入没有执行以及上载状态值=没有计算。对于行更新的插入类型值,如果行的旧版本拥有删除类型值不等于删除和插入类型值是后影像或删除类型值不等于移除并且执行状态值等于或许或者插入执行,后影像值的情况会被使用。 当行变更“可能“已上载,但因为还没有收到确认而产生不确定性时,“或许”这个词会被使用。否则,插入类型值=插入。无论新行的插入类型值是后影像或插入,已更新的行的旧版本会被更改为删除类型=删除。在行删除上,通常删除类型值=删除。然而,在一个实施例中,停止同步设置可能被用来允许某些数据不进行同步进程。该功能的目的是减少每个远程系统106持有来自综合数据库114的行子集。也就是说,在综合数据库114看来,删除并没有真正从中删除了, 所以他们不应该被上传。删除类型的移除值用于反映这一点。在实行数据库操作后,进程可以通过执行数据库操作(框块30 来继续。数据库的操作执行取决于是否存在受影响的行的在先同步。对于删除,如果该行从来没有被同步, 那么它会被删除。如果该行已被同步,那么它不会被删除,因为删除操作需要首先同步到综合数据库。当更新行的事务被执行,受该事务影响的所有行状态会被修改,以反映该执行。 当更新被同步了,行的新老版本都需要允许冲突检测和解决。然后,旧行从数据库中删除, 而新行就变成一个普通的行。行的新增使该行被标记为已执行。对于每个数据库操作(插入、更新和删除),在同步(框块306)其间,当对同步进程的检测是肯定的(框块304),额外的标记通过更新行状态元数据的上载状态值情况来进行。如果没有同步进程正在进行(框块304是否定的),远程数据库系统忽略行状态的上载状态值部分,并继续数据库事务(框块300)的标准处理。如上面的目录所示,在一个优选的实施例,上载状态值情况包括没有计算,包括和除外,其中没有计算值是用来表示行没有发生执行同步的上载开始了,包括值是用来表示行应该是同步的一部分,而除外值是用来表示行不是同步的一部分。这些行状态元数据的上载状态值使得上载开始的一刻同步操作与数据库的执行状态的快照一起作业。有了这个快照,数据库中的变改不会影响上载的数据,并且上载数据的完整性得到保证因为远程系统106会继续处理数据库事务。
图4的框块流程图展示了确定行状态元数据的上传状态值部分的进程。上载状态值的初步检测发生以确定实际上其是否需要设置(框块400)。一般来说,当同步其间行的执行发生,行状态的上载状态值会被设置为包括或除外,而同步完成时,行状态的上载状态值会被改回没有计算。因此,如果上载状态值已设置为包括或除外,则没有需要对上载状态值做变更,因为已设置的上载状态值表明自从上载开始后这不是第一次在该行执行。此外,如果行状态的执行状态值情况是或许,那么该行已经被上传但尚未被确定为成功完成,并且没有需要对该行的上载状态值部分做变更。在这种情况下,维持上载状态值(框块40 并完成该进程。如果上载状态值确实需要设置(框块400是肯定的),即执行状态值情况不等于或许以及上载状态值情况等于没有计算,则做出测定以判定如果该行在还没执行的状态时 (框块404)如何处理该行。如果确定系统将上载该行(框块404是肯定的),那么上载值设置为包括(框块406)。否则,上载值设置为除外(框块408)。在一个优选的实施例中,对于拥有行状态为插入类型=正常、执行状态=插入执行以及删除类型=没有或删除的行,不需要对其进行上载并把其上载状态情况设置为除外。如果删除类型值情况等于删除和插入类型值情况等于正常,或者删除类型值情况等于移除和插入类型值情况不等于正常,该行需要被上载而上载状态值情况设置为包括。图5说明了本发明一个实施例中解释上载状态值影响同步进程的整体流程的框图。在本发明的一个实施例,在上载其间确定每一行如何上载的进程利用以下方法识别四个状态指标中之其一表明该行没有得到上载的零状态;表明该行会被上载并作为插入的插入状态;表明该行会被上载并作为删除的删除状态;或表明该行会被上载并作为遗失插入的遗失插入状态。遗失插入与插入非常相似,但其帮助解释附有移除设置的行作为删除类型以作为停止同步设置的结果。在一般情况下,同步系统110不会下载刚刚上载的行。 也就是说,如果综合数据库系统112确定遗失插入行应该被下载到远程系统106,同步系统 110通常会优化下载以省略下载该行,因为同步系统110知道远程数据库系统106已包含该行。然而,通过使用遗失插入状态,该行会被同步系统110识别为正在从远程数据库中删除。这禁用了正常的优化,并允许该行被下载到远程系统106。在假设正被考虑的行不在'正常'状态的情况下,进程开始实施,因为在一个优选的实施例,行上的迭代映射会跳过'正常'行,即拥有插入类型=正常、删除类型=无、 执行状态值=插入执行以及上载状态值=没有计算的行。对于不在'正常'状态的行,进程判断行状态是否等同于'移除'状态(框块500)。‘删除'状态通常指插入类型=正常、删除类型=移除、执行状态值=插入执行以及上载状态值=没有计算。当行在'移除' 状态时,不需要考虑其的上载(框块502)并且其会标示为零状态。如果行不在'正常'状态或'移除'状态,进程会继续进行并确定行状态值是否 =或许(框块504)。如果是这样,该行在正在进行的同步进程中已经被上载,并不需要考虑再次上载。因此,会显示零状态(框块50 。该检查确保上载发生为两阶段的进程,例如, 第一阶段上载插入和更新,第二阶段上载删除,而每个阶段使用映射迭代来实施。当行执行状态值不是或许,进程会继续进行并检测行的上载状态值。如果上载状态值=除外(框块506),那么不需要上载该行并标示其状态为零(框块502)。如果上载状态值=包括(框块508),那么标示其状态为删除(框块510),因为上载开始后的插入执行不会被上载,因此上载状态值不会是插入。为了说明行已经被修改但还没有执行(即上载状态值=没有计算),进程会继续进行并确定该行是否还没执行(框块51 和插入(框块514)。如果是这样,那么该行被跳过,因为还没执行的插入不上载,并且状态显示为零(框块50幻。如果不是,该行是还没执行的删除,并且插入类型会被检查(框块516)。如果插入类型是正常,该行不需要包括在同步里而其状态会标示为零(框块50幻。对于除了正常之外的插入类型,其状态会标示为插入(框块518)。如果这些情况没有找到,那么该行是在上载之前已执行的行。删除类型值情况是用来确定状态标识(框块520)。对于删除类型=无,进程会返回插入标识(框块518)。对于删除类型=移除,该进程会返回遗失插入标识(框块52 。而对于删除类型=删除,该进程会返回删除标识(框块510)。在这种方式下,同步进程发生并保证即每行的元数据正确反映准确的行状态。正如所述,加入上载值情况允许当同步正在进行时对远程数据库的同时访问,而不需要只允许只读模式的访问或提高试图修改远程数据库所产生的错误。因此,对远程数据库的有效和无缝利用产生了,尤其有利于移动数据库环境。示范计算机系统实施例在本发明的一个实施例中,这里所述的实施例中的系统和组件是使公知的计算器来实施,如图6所示的例子计算器602。例如,中央系统104或远程系统106可以用计算机 602来实现。计算机602可以是任何商业可用的和众所周知的并有能力执行这里所述的功能的计算机,如 IBM、Apple、Sun、HP、Dell、Compaq、Digital、Cray 等可用的计算器。计算机602包括一个或多个处理器(也称为中央处理单元,或CPU),如处理器 606。该处理器606连接到通信总线604。计算机602还包括主内存608,如随机存取存储器(RAM)。主内存608已储存控制逻辑625A(电脑软件)和数据在其中。计算机602还包括一个或多个辅助存储装置610。辅助存储装置610包括如硬盘驱动器612和/或可移除的存储装置或驱动器614以及其它类型的存储装置如存储卡和记忆棒。可移除的存储驱动器614代表了软盘驱动器、磁带驱动器、光盘驱动器、光存储装置、 磁带备份等。可移除的存储驱动器614与可移除的存储单元616互动。可移除的存储单元616 包括电脑可用或可读的存储媒介624,存储媒介6M中存储有计算机软件628B (控制逻辑) 和/或数据。可移除的存储单元616代表软盘、磁带、光盘、DVD、光存储盘或任何其它计算机数据存储装置。可移除的存储驱动器614以公知的方式读取来自和/或写入到可移除的存储单元616。计算机602还包括输入/输出/显示装置622,如显示器、键盘、指示装置等。计算机602还包括通讯或网络接口 618。网络接口 618使计算机602可以和远程装置进行通信。例如,网络接口 618允许计算机602通过通信网络或媒介624B(代表计算机可用或可读媒介的形式)如局域网、广域网、互联网等进行通信。网络接口 618可通过有线或无线连接与远程站点通信。通过通信媒介624B,计算机602可以传送或接收控制逻辑628C。更具体地说,计算机602可以通过通信媒介624B来接收和传送与控制逻辑630调制的载波(电磁信号)。这里所述的任何包括存储有控制逻辑(软件)的计算器可用或可读的介质的仪器或产品都统称为计算机程序产品或程序存储装置。这包括但不限于计算器602、主内存 608、辅助存储装置610、可移除的存储单元616和与控制逻辑630调制的载波。这种计算机程序产品包含当一个或多个数据处理装置被执行时可引致数据处理装置如这里所述般运作的控制逻辑,并代表了本发明实施例。除了本文所述的,本发明可以用其它软件、硬件和/或操作系统来实现。任何适合用于执行本文所述的功能的软件、硬件和操作系统都可以使用。虽然本发明以移动计算环境来描述,本发明的背景同步可以应用到移动计算环境或可从本文所述的功能得益,但这只是作为说明性的,而不是限制本发明的使用环境。
权利要求
1.一种确保在数据库环境中数据完整性的方法,该方法包括在远程数据系统开始一个进程以同步来自远程数据库系统的远程数据与综合数据库的综合数据;和在同步进程发生时利用远程数据的每一行元数据以允许事务访问。
2.如权利要求1所述的方法还包括维持所述远程数据的每一行元数据在远程数据库系统。
3.如权利要求2所述的方法,其中所述元数据包括最少一上载情况值以表示同步其间行处理的情况。
4.如权利要求3所述的方法,其中第一上载情况值表示在同步开始之后没有事务执行发生。
5.如权利要求4所述的方法,其中第二上载情况值表示行需要同步。
6.如权利要求5所述的方法,其中第三上载情况值表示行不需要同步。
7.如权利要求3所述的方法还包括在同步其间当行执行发生时最少设置所述的上载情况值,并当同步完成时最少清除上载情况值。
8.如权利要求1所述的方法,其中利用元数据还包括利用远程数据的每一行的上载情况值来表示每一行是否包括在或排除在同步进程。
9.一种确保在数据库环境中数据完整性的系统,该系统包括 通信网络;连接到所述通信网路并包括综合数据库的第一系统;和最少一连接到所述通信网路并包括综合数据库的第二系统,所述第二系统开始一个进程以同步来自远程数据库系统的远程数据与综合数据库的综合数据并当同步进程发生时利用远程数据的每一行元数据以允许事务访问到最少一第二系统的远程数据。
10.如权利要求9所述的系统,其中所述第一系统还包括连接到综合数据库的同步系统。
11.如权利要求9所述的系统,其中所述最少一第二系统通过使用远程数据的每行上载情况值来利用元数据以表示每一行是包括在或不包括在同步进程之内。
12.如权利要求9所述的系统,其中所述最少一第二系统当数据库事务发生在远程数据库时识别甚么时候同步进程被启动,并在行执行发生时确定最少一上载值情况以表示同步其间行处理的情况。
13.如权利要求12所述的系统,其中第一上载情况值表示在同步开始之后没有事务执行发生,其中第二上载情况值表示行需要同步,其中第三上载情况值表示行不需要同步。
14.如权利要求9所述的系统,其中所述最少一第二系统包括移动计算装置。
15.一种包括记录有计算器程序逻辑的计算器可用媒介以使处理器能够确定数据库环境中数据完整性的计算器程序产品,所述计算器程序逻辑包括使处理器能够开始一个进程以同步来自远程数据库系统的远程数据与综合数据库的综合数据的手段;和使处理器能够在同步进程发生时利用远程数据的每一行元数据以允许事务访问的手段。
16.如权利要求15所述的计算器程序产品,其中所述计算器程序逻辑还包括使处理器能够维持远程数据的每一行元数据在远程数据库系统的手段。
17.如权利要求16所述的计算器程序产品,其中所述维持手段包括 使处理器能够包括最少一上载情况值以表示同步其间行处理的情况的手段。
18.如权利要求17所述的计算器程序产品还包括使处理器能够在同步其间当行执行发生时最少设置所述的上载情况值并当同步完成时最少清除上载情况值的手段。
19.如权利要求17所述的计算器程序产品还包括使处理器能够表示在同步开始之后没有事务执行发生时的第一上载情况值、行需要同步的第二上载情况值、行不需要同步的第三上载情况值的手段。
20.如权利要求15所述的计算器程序产品还包括使处理器能够利用远程数据的每一行元数据的上载情况值来表示每一行是否包括在或排除在同步进程的手段。
全文摘要
本发明描述了数据库环境中维持数据完整性的系统、方法和计算器程序产品。在运作中,在远程数据系统开始一个进程以同步来自远程数据库系统的远程数据与综合数据库的综合数据。在同步进程发生时远程数据的每一行元数据被利用以允许事务访问到远程数据。
文档编号G06F17/00GK102272751SQ200980153521
公开日2011年12月7日 申请日期2009年12月3日 优先权日2008年12月17日
发明者麦克·索德 申请人:移动解决方案公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1