事务管理部(102)将更新部(103)涉及的更新处理和检索部(104)涉及的检索处理作为事务进行管理,在事务开始请求时分配事务ID。第一存储部存储事务涉及的更新处理的日志。在已由更新部(103)更新了数据的情况下,存储部(107)将示出已做出了数据更新的更新信息与事务ID相对应地存储。在由检索部(104)进行了检索时,复原部(108)对成为检索对象的数据的更新信息是否存在于存储部(107)进行判断,在判断为真的情况下,从第一存储部读取已更新了数据的事务,并进行数据的复原处理。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种数据库管理系统。
技术介绍
为了在多个事务间并行执行更新处理或检索处理时保证数据的一致性,存在一种对数据库进行管理的数据库管理系统。 在这种数据库管理系统中,在根据一个事务进行更新时,在该更新被提交或是中止以前,关于其他事务,向用户提示更新前的数据。为了进行该处理,在由一个事务的更新处理更新了数据时,制作记录有更新内容的日志文件。当用别的事务做出检索请求时,判断有无其他事务导致的、提交或是中止前的数据更新。在判断为已进行了数据更新的情况下,检索请求的事务使用已被别的事务更新后的数据和日志文件来复原更新前的数据。作为判断有无数据更新的方法,例如在专利文献I中,在实表数据部和变址(index)部中设置计数器。当做出更新请求时,更新实表数据部中的数据,并使计数器的值增加I。使变址部中的计数器的值增加I。当由别的事务做出检索请求时,按照检索条件检索变址部,与检索结果一起存储检索之处的计数器的值。接着检索实表数据部,将与检索结果相对应的数据的计数器与已存储的计数器的值进行比较。在两个计数器同值的情况下,进行了检索请求的事务就输出检索结果。在不是同值的情况下,再次从变址部开始重做检索。现有技术文献专利文献专利文献I :日本专利第4047557号公报
技术实现思路
专利技术所要解决的问题在上述的数据库管理系统中,必须要在变址部中设置叫做计数器的附加信息,处理成本会增大。本专利技术的目的在于,提供一种能用很少的处理成本来判断在一个事务的检索处理当中是否有别的事务进行更新处理并进行了数据更新的数据库管理系统。用于解决问题的手段本专利技术的实施方式涉及的数据库管理系统具备输入部,输入事务请求以及事务的开始请求,所述事务请求包括数据库中存储的结构化文档数据的更新请求和检索请求;更新部,按照所述更新请求,执行所述结构化文档数据中的成为更新对象的数据的更新处理;检索部,按照所述检索请求,执行所述结构化文档数据中的成为检索对象的所述数据的检索处理;事务管理部,管理多个所述事务,在所述事务的开始请求时,对一个所述事务分配一个事务ID ;第一存储部,存储第一事务中的更新处理的日志;第二存储部,在由所述更新部更新了所述数据的情况下,将示出已做出了所述数据的更新的更新信息,与所述事务ID相对应地存储;以及复原部,在与第一事务不同的第二事务中由所述检索部检索了所述数据时,在成为检索对象的所述数据的更新信息存在于所述第二存储部中的情况下,从所述日志存储部读取更新了所述数据的事务的日志,进行所述数据的复原处理。专利技术效果根据本专利技术,能够用很少的处理成本来判断在一个事务的检索处理当中是否有别的事务进行更新处理并进行了数据更新。附图说明图I是表示一个事务涉及的更新处理与别的事务涉及的检索处理之间的时间关系的图。 图2是表示第一实施方式涉及的数据库管理系统的框图。图3是表示事务管理部102的一般处理的流程图。图4是表示XML文档的一例图。图5是表示XML文档的结构的一例图。图6是示出数据库内的各个XML文档的数据的图。图7是表示数据库管理系统的更新处理的流程图。图8是表示数据库管理系统的检索和复原处理的流程图。具体实施例方式以下,参照附图,对本专利技术的实施方式进行说明。关于已经出现过的附图,在与上述同样的要素上标记同一符号并适当省略详细的说明。(第一实施方式)所述事务,是将从用户请求的对数据库的更新处理和检索处理所构成的一个或多个处理汇集起来作为一个处理单位。事务也有是更新处理的情况。事务还有只是检索处理的情况。第一实施方式涉及的数据库管理系统对数据库中存储的XML文档的数据进行更新处理和检索处理。图I是表示一个事务涉及的更新处理(事务I)与别的事务涉及的检索处理(事务2)之间的时间关系的图。事务I和事务2随机地发生。例如,由于使用事务开始时的数据库进行数据库的检索,因此,如果在一个事务(事务2)中正在执行检索处理时,数据的内容被别的事务(事务I)更新,就会产生输出时刻的检索结果与数据的内容不一致的状态。本实施方式涉及的数据库管理系统10用很少的处理成本来判断在一个事务的处理当中是否有别的事务进行了数据的更新,并进行事务所检索的数据库的复原。图2是表示第一实施方式涉及的数据库管理系统10的框图。数据库管理系统10包括输入部101、事务管理部102、更新部103、检索部104、日志管理部105、缓冲器管理部106、第二存储部107、复原部108、存储事务日志的第一存储部109、数据库110和输出部111。日志包括事务涉及的更新处理内容、检索处理内容以及事务。在数据库110中存储有例如XML文档等数据。对该数据库110进行与输入部101受理的事务相应的处理。例如,在事务是检索的情况下,检索部104从数据库110中检索被请求的数据。在事务是更新的情况下,更新部对数据库110更新被请求的数据。利用事务管理部102管理这样的事务处理。该情况下,日志管理部105将事务的日志记录在第一存储部109中。在作为事务而做出了数据的检索请求时,数据库管理系统10有可能产生下述情形通过事务进行检索的数据中被与该事务并行执行的其他事务更新。 因此,在本实施方式中,使用第二存储部107中的更新信息,对是否存在有可能被与事务并行执行的其他事务更新的数据进行判断。在判断为存在的情况下,从第一存储部109读取已对该数据进行了更新的事务的更新处理内容,并进行向更新前的数据的复原处理。输入部101从多个用户受理包括数据的更新请求和检索请求在内的事务请求以及事务的开始请求。输入部101能够并行受理来自多个用户的请求。更新部103通过缓冲器管理部106读取数据库110中存储的数据,进行更新处理。更新部103在完成了数据更新的时刻,将示出该数据已被更新的更新信息存储在第二存储部107中。检索部104通过缓冲器管理部106读取数据库110中存储的数据,进行检索处理。事务管理部102将更新部103涉及的更新处理和检索部104涉及的检索处理作为一系列的事务进行管理。图3是表示事务管理部102的一般处理的流程图。向事务管理部102输入来自输入部101的事务请求和事务开始请求(S301)。事务管理部102对一个事务分配一个事务ID(S302)。事务管理部102按照输入部101受理请求的顺序分配事务ID。事务管理部102将未提交或是未中止的事务的事务ID存储在内部(S303)。事务管理部102判断事务中包含的更新处理或检索处理是否已全部成功(S304)。在已成功的情况下,提交事务(S305)。在失败的情况下,中止事务(S306)。S卩,事务管理部102保持有正在执行当前处理的事务ID。日志管理部105将事务涉及的更新处理或检索处理的日志,在各自的处理结束的时刻,记录在第一存储部109中。在一个事务中利用检索部104进行检索处理时,复原部108使用第二存储部107的更新信息,对成为检索对象的数据是否存在已被并行执行的其他事务更新的可能性进行判断。在该判断为真的情况下,复原部108从第一存储部109读取事务的日志。使用事务的日志进行数据的复原。输出部111输出检索结果。图4是表示XML文档的一例图。在本实施方式中,将由具有文档ID的XML文档描述的货单的数据作为例子。图4(a)和图4(b)分别表示本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:宫泽隆幸,
申请(专利权)人:东芝解决方案株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。