当前位置: 首页 > 专利查询>微软公司专利>正文

用于识别和存储表格变化的系统和方法技术方案

技术编号:2921249 阅读:192 留言:0更新日期:2012-04-11 18:40
用删除标记和插入标记扫描基础表。该删除标记用于在指令执行前作为处理的一部分识别提交到基础表的最后的改变,而该插入标记用于在指令执行过程中作为处理的一部分识别提交到基础表的最后的改变。用存储在增量表中的删除过滤删除标记扫描的结果,并且用过滤的行增加删除表。用存储在增量表中的插入过滤插入扫描的结果,并且用过滤的行增加插入表。

【技术实现步骤摘要】
专利技术的背景专利技术的领域本专利技术涉及数据库管理领域,更具体的,涉及识别从基础表格中删除的行以及向基础表格中插入的行并存储这种改变。现有技术的描述在数据库管理系统(DBMS)中,数据当前的版本一般存储在一个“基础”表中。该基础表中的每一行都可以被改变。该改变可以是在基础表中删除,插入,或修改行。修改是以前版本行的删除和当前版本行的插入。当一行被改变后,该变化可以被存储在一个暂时的装置中,存储器常驻“转换”表。该转换表装置通常由DBMS自动创建和管理。该转换表装置可以包括一个“删除”表,用于存储从基础表中删除的行,和一个“插入”表,用于存储插入到基础表中的行。如果一行被修改,该行以前的版本被存储在删除表中,而该行当前的版本被存储在插入表中。该转换表使DBMS能够测试变化的效果以及为触发作用设置条件。特别地,转换表扩展表格之间指示的完整性,在特定概念下改变基础表中的数据,检查错误并且基于发现的错误采取行动,以及在改变之前和改变之后的表格状态之间查找差异并且基于该差异采取行动。传统DBMS中的转换表可以在该行被改变之前,通过完全的复制基础表的行来增加。因而,例如,如果一行被删除,该行以前的版本被复制并且该复制,接着被存储在删除表中。复制行的缺点在于该复制的产生和存储是浪费的,尤其是如果该复制的行包括二进制大的目标(BLOB)数据的大字段,例如,编码或图像。增加转换表的另一个方法是扫描一个日志文件。然而,使用该日志扫描的缺点在于BLOB数据通常太复杂而不能使用该日志扫描实现。而且,该日志扫描需要磁盘输入/输出(I/O)的使用。因此,现有技术中需要一个有效地识别和存储表格变化的系统和方法。需要这样的系统和方法,使包括大量BLOB数据的行能够不浪费的被识别和存储在一个适当的转换表中。更加需要这样的系统和方法,该系统和方法的操作不存在磁盘IO低效率的使用。专利技术概述因此,公开了一种用于识别和存储表格的变化的系统和方法。数据当前的版本被存储在基础表中。基础表中每一行以前的版本被存储在版本存储器中。增量表识别基础表变化的主要关键字并且确定该改变是否为插入或删除。转换表装置存储该基础表的每一个变化。该转换表装置可以包括一个删除表和一个插入表,该删除表用于存储从基础表中删除的行,该插入表用于存储插入到基础表中的行。当一行被提交给基础表后,恰当地为该行分配一个处理标识符(XID)和序号(SEQ)。XID是处理的唯一的标识符,在该处理中产生变化。该SEQ优选地是一个被恰当地分配给处理中产生的每一个变化的单调递增的值。版本存储器中行以前的版本可以通过基础表中行当前版本的XID和SEQ识别。作为处理的一部分转换表可以通过识别由指令改变的行来增加。该基础表连同删除标记和插入标记被扫描。删除标记用于识别在指令执行前作为处理的一部分提交到基础表的最后的改变,而插入标记用于识别在指令的执行过程中作为处理的一部分提交到基础表的最后的改变。用存储在增量表中的删除部分过滤删除标记扫描的结果,并且用过滤的行来增加删除表。用存储在增量表中的插入部分过滤插入扫描的结果,并且用过滤行来增加插入表。附图的简要说明参照附图,在阅读了下面详细的说明后该说明性的实施例将被更好地理解,其中附图说明图1表示通用计算机系统的框图,其中可以结合本专利技术的情况和/或其中的部分;图2是根据本专利技术一个代表性的数据库管理系统的框图;图3a-e是根据本专利技术一个代表性的基础表和版本存储器的框图;图4是根据本专利技术用于识别和存储变化的一个代表性方法的流程图;以及图5是根据本专利技术用于扫描表的一个代表性方法的流程图。详细说明根据本专利技术当前的优选实施例,用于实现上述目标以及提供了其他有益特征的系统和方法将在下面参照前述的附图被描述。本领域的技术人员将容易地懂得在这里关于附图的描述仅仅是用于说明目的而不是以任何方式来限定本专利技术的范围。全部的描述中,相同的附图标记代表各图中相同的成分。计算机环境图1和下面的讨论用于提供一个适当处理环境的简单概要的描述,在该环境中本专利技术和/或它的一部分可以被执行。虽然没有要求,但本专利技术采用计算机可执行指令的通用文本来描述,例如程序模块,由计算机执行的,例如客户工作站或服务器。一般地,程序模块包括执行特定的任务或执行特定的抽象数据类型的例行程序,程序,对象,成分,数据结构等等。此外,将被理解的是本专利技术和/或它的一部分可以在其他计算机系统结构中实施,包括手持设备,多处理器系统,基于微处理器的或可编程的用电设备,网络个人计算机,小型计算机,大型计算机等等。本专利技术也可以在分布式处理环境中实施,在该环境中由通过通信网络连接的远程处理设备来执行任务。在分布式处理环境中,程序模块可以设置在本地和远程存储设备中。如图1所示,一个代表性的通用计算系统包括一个传统的个人计算机120或类似部件,包括一个处理单元121,一个系统存储器122,和一个系统总线123用于将包括系统存储器的不同的系统成分连接到处理单元121。该系统总线123可以是各种类型的总线结构包括存储器总线或存储器控制器,外部总线,和使用任何总线结构变化的局域总线。该系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。一个基本的输入/输出系统126(BIOS),包含用于协助在个人计算机120的元件之间传递信息的基本程序,例如在启动过程中,被存储在ROM124中。该个人计算机可以进一步包括一个用于从硬盘读出和向硬盘写入(没有示出)的硬盘驱动器127,一个用于从移动磁盘读出或向移动磁盘129写入的磁盘驱动器128,和一个用于从移动光盘读出或向移动光盘131写入的光盘驱动器130,例如CD-ROM或其他光学介质。该硬盘驱动器127,磁盘驱动器128,和光盘驱动器130分别通过硬盘驱动器接口132,磁盘驱动器接口133,和光盘驱动器接口134连接到系统总线123。该驱动器和它们相关的计算机可读介质为个人计算机120提供计算机可读指令,数据结构,程序模块和其他数据的非易失性存储器。虽然该代表性实施例的描述在这里采用硬盘,移动磁盘129,和移动光盘131,应该理解的是计算机可兼容的能够存储数据的计算机可读介质的其他类型也可以在代表性的操作环境中使用。该介质的其他类型包括磁带,闪存卡,数字视频磁盘,柏努利盒式磁带,随机存取存储器(RAM),只读存储器(ROM),等等。许多程序模块,包括操作系统,一个或多个应用程序136,其他程序模块137和程序数据138,可以存储在硬盘,磁盘129,光盘131,ROM124或RAM125上。用户可以通过输入设备,例如键盘140和定点设备142如鼠标,向个人计算机120中输入命令和信息。其他输入设备(没有示出)可以包括麦克风,操纵杆,游戏柄,附属磁盘,扫描仪或类似设备。这些和其他输入设备通常通过与系统总线连接的串行接口146与处理单元121连接,但是也可以通过其他接口连接,例如并行端口,游戏端口,或通用串行总线(USB)。监视器147或其他类型的显示设备也通过接口与系统总线123连接,例如视频适配器148。除了监视器147之外,个人计算机典型地包括其他外围输出设备(没有示出),例如扬声器和打印机。图1中的代表性的系统还包括一个主机适配器155,一个小型计算机系统接口(SCSI)本文档来自技高网...

【技术保护点】
一种用于通过作为处理的一部分的语句识别从基础表中删除的行的方法,该方法包括:在语句执行前识别作为处理的一部分被改变的最后一行;设置关于该最后一行的删除标记;用删除标记扫描基础表;以及过滤扫描的结果。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:G克里西那莫西W肖NR艾利斯RN克莱恩SH艾加瓦尔
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1