出错时用于数据库的关系恢复的方法技术

技术编号:2892275 阅读:169 留言:0更新日期:2012-04-11 18:40
在出错的情况下在数据库中进行关系恢复的系统,包括被计算机执行的功能度且保证数据库中的数据被作为在若干恢复子系统中的数据项来建立,各数据项只属于一个子系统。如一子系统包含依赖于在另一子系统中的一个或多个数据项的一个或多个数据项,最先的子系统被标记为依赖于第二次提到的子系统。如第一子系统被标记为依赖于第二子系统而后者又被标记为依赖于第三子系统,该第一子系统就被递归地标记为依赖于该第三子系统。(*该技术在2013年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及出错时用于关系恢复的系统。在数据库系统中有许多措施可被用来防止信息的丢失。通常使用副本和记录来保证数据库有备用的拷贝。这些拷贝在系统损坏或出现硬件差错的情况下被用来恢复数据库。数据库通常具有根据存储在数据库一致性的中的即对于不同的修改以及它们的分组具有可预期的状态的数据进行恢复的功能。为了使能够从错误写数据库而导致的损坏中恢复过来,必须安全地存储备份版本。备份包含了为了能够将数据库再建立到与产生备份时占优势的状态相同的一致状态所必须的所有信息。用于恢复数据库的典型策略可概括如下如果数据库由于出现突发错误而变成不一致,恢复功能再启动,将数据库再写入到最后的备份版本。为了能够回复到最近做的状态,数据库然后被用已存储在记录上的信息来修改,即该信息存储在存储器中的先前操作的记载,这些记载被恢复功能用来恢复最后允许的事务处理,即对目标操作或数据库中的记录。目标概念在此具有在数据处理领域中通常的意义。简言之,目标就是具有如何管理其信息的相关描述的信息包。目标也如数据记录一样在它们使用领域被划分为类并被利用键来区分。目标的概念的更详细描述可以参看例如Yourdon出版社计算系列中Peter和EdwardYourclon的“OBJECT-ORENTEDANALYSIS”(面向目标的分析)。恢复数据库所需的信息和机制由修改数据库所用的方法来确定。在修改目标的情况下,产生原始目标的拷贝,加锁以便防止其它用户修改数据库,在没有得到同意,即程序或操作员使用的表示当前事务处理已结束之前,它的作用保持当采用修改的拷贝引入时并取消加锁。在数据库的错误不能被立即检测的情形中,数据库拷贝是不够用的。在银行寄存器中,操作者可例如由于出错而消除了客户记录,尽管还有相关的帐户输入,或者他可能碰巧消除了全部的支付申诉。在第一种情形中,有熟知的方法保证数据的完整性。这些方法被称为完整性条件。这样的条件可以例如是帐户输入必须与客户寄存器相结合。还可以有建立的恢复机制规定如果完整性条件被违反将出现什么情况。在上述例子中可迫使客户记录的消除以前存在着是连续的清算步骤,它导致帐户输入也和客户记录一道被消除。在第二种情形中,由于全部的支付申诉被消除,必须能够根据副本恢复被消除的记录。另一方面,不是数据库中的所有数据都被恢复,例如超过12小时的银行交易项目。即使在更新数据库的其余部分为最新状态的同时能够只发现和恢复关于支付申诉的记录,但也必须能够发现对完整性条件的全部违反情况并且采取恢复数据库的完整性所需的相应恢复措施。但是,保证不是更重要的数据由于这些措施例如银行交易而被损坏可能是困难的。在通常的数据库管理系统中,恢复部分系统的功能是通过使用完全不同的数据库来实现的。这就没有保证不同的恢复部分系统之间的一致性,在不同的数据库和部分系统中的目标之间没有满足完整性条件(例如存在依赖性)。通过US4933848我们得知一数据库管理系统,在该系统中,数据被要求应当是有引用约束。该数据库是一关系数据库,数据被存储在具有行和列的表中。装入新的行并提取和分类关于装入的信息和约束、对于新的行进行是否违反约束的检查,并改正该违反以便恢复引用完整性。GB2252853总的来说涉及在关系数据库中存储的恢复数据。本专利技术的目的就是在允许瞬时连续存取数据库的同时建立在数据库中的关系恢复系统,保证数据总是处于一致的状态并最大可能在减轻数据损坏的后果。根据本专利技术,在出错的情况下,在数据库中进行关系恢复的系统包括被计算机执行的功能度并且保证数据库中的数据被作为在若干个恢复子系统中的数据项来建立,每个数据项属于一个子系统。如果一个系统包含依赖于在另一子系统中的一个或多个数据项的一个或多个数据项,最先提到的子系统就被标记为依赖于第二次提到的子系统。如果第一子系统被标记为依赖于第二子系统而第二子系统又被标记为依赖于第三子系统,所述第一子系统就被递归地标记为依赖于所述第三子系统。没有两个子系统被标记为相互依赖。只要这些子系统之一被标记为依赖于另一子系统,一个子系统中的数据项和另一子系统中的数据项之间的完整性约束就被承认,以及在子系统上执行恢复动作以便只引起该子系统和被标记为依赖于该子系统的其它子系统中的数据项的改变。以下是本专利技术的一些优越的实施例,就象在紧接着的描述中所揭示的那样。第一实施例在对一个子系统进行备份的同时还始终如一地对被标记为依赖于这一被备份的子系统的所有子系统进行一致性备份。第二实施例在根据副本恢复子系统时还恢复被标记为依赖于这一子系统的子系统。第三实施例在子系统的恢复操作方面只执行导致所述子系统重新达到一致状态的操作。第四实施例在子系统的恢复操作方面只采取不影响被被标记为依赖于这一子系统的那些子系统不同的子系统的措施。本专利技术的系统可以是在上述引言中所指的那种类型,在该系统中,数据根据通向目标的系统语言来描述和排列,在该面向目标的语言中,概念目标指的是具有如何管理其信息的相关描述的信息包。根据以下参看附图对实施例的更详细描述这也将会更一清二楚。对于这样的系统也有以下本专利技术的一些优越的实施例,就象在紧接着的描述中所揭示的那样。一个这样的实施例是如果在关系恢复时,不一致值在两个不同的恢复子系统中的目标之间出现,就使用用满足所有有效性约束的值来代替不一致值的重新设备方法。为此,目标的属性通过简单的指定可被重新设置为与环境兼容的值,以便不从其它对象建立任何依赖性,并且不失效。在另一实施例中,如果在关系恢复时不一致值在两个不同的恢复子系统中的目标之间出现就改变目标的状态。为此,引用或一个或两个目标可以被消除。在另一个实施例中,本专利技术的系统包含检测关系。通过请求检验位于在所涉及的依赖关系另一端的所有目标,使此目标依赖于所检验的关系,在出错情况下,运行关系的控制将在此是危险的。在另一实施例中,可以对目标进行关系检测以便在出错的情况下重新设置该目标,并且告诉对于该目标具有依赖性关系的目标,这些关系依赖于已被改变的该目标。在涉及出现在其中包括一目标恢复操作的情形的另一实施例中,不是重新设置目标的属性、从该目标中消除关系,就是消除目标,随因其关系被规定为恢复动作的目标而定。根据另一实施例,在所有其它目标已被检验之间允许对被检验的目标执行数据库操作。在另一实施例中,恢复处理程序通过用表明目标位于关系恢复系统中,该目标已被反绕、其关系尚未被完全恢复以及自反绕以来该目标尚未被检验的特征位来标记所有受影响的目标,通过启动关系恢复处理程序和通过允许数据库操作来开始关系恢复。关系恢复处理程序最好是可以检查被反绕的恢复系统以便消除已有的关系问题,并由此在某些应用程序打开涉及的目标之前消除大部分这些关系问题。现在参看附图详细地描述本专利技术的实施例,其中附图说明图1示意性地说明导致本专利技术的问题之一,图2表示与图1类似的说明与第一恢复实例有关的事件的进程的图示,图3是与图2相关的流程图,图4表示与图2类似的说明与第二恢复实例有关的事件的进程的图示,图5是与图4相关的流程图。在以下的描述中,一些不同的作用物、功能和操作将被描述。在这里应当指出,除非另有所指,它是被计算机执行的软件功能性的问题,没有被表示出来。这样的计算机和其执行方式对阅读以下描述的本领域的技术人员可以是显而易见的,因此不必本文档来自技高网...

【技术保护点】
在出错的情况下在数据库中进行关系恢复的系统,其特征在于被计算机执行的功能度并且保证: 数据库中的数据被作为在若干个恢复子系统中的数据项来建立,每个数据项只属于一个子系统, 如果一子系统包含依赖于在另一子系统中的一个或多个数据项的一个或多个数据项,最先提到的子系统就被标记为依赖于第二次提到的子系统, 如果第一子系统被标记为依赖于第二子系统而第二子系统又被标记为依赖于第三子系统,所述第一子系统就被递归地标记为依赖于所述第三子系统, 没有两个子系统被标记为相互依赖, 只要这些子系统之一被标记为依赖于另一子系统,一个子系统中的数据项和另一个子系统中的数据项之间的完整性约束就被承认,以及 在子系统上执行恢复动作以便只引起该子系统和被标记为依赖于该子系统的其它子系统中的数据项的改变。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:BES拉松MS伊万HJ辛托恩
申请(专利权)人:艾利森电话股份有限公司
类型:发明
国别省市:SE[瑞典]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1