管理数据集合的更改的制作方法与工艺

文档序号:11807561阅读:209来源:国知局
管理数据集合的更改的制作方法与工艺
管理数据集合的更改对相关申请的交叉引用本申请要求2011年1月14日提交的序列号为61/433,082的美国专利申请的优先权,其通过引用合并在此。

背景技术:
本发明涉及管理数据的集合的更改。诸如数据库系统的计算系统,提供了管理数据的集合的更改的各种机制。在某些情况下,用户提出并实施对存储在数据库中的数据的更改。一般地,数据库包括定义所存储的数据可以如何被改变的规则。

技术实现要素:
一方面,一般地,一种用于管理对记录的集合的更改的方法,包括:在数据存储系统中存储第一记录组,所述第一记录组表示记录的集合的第一版本。该方法进一步包括:验证对记录的集合的提议更改,所述提议更改由通过用户界面接收的输入指定。所述验证包括:基于与提议更改相关联的验证标准查询数据存储系统并且响应于所述查询接收第一结果,处理表示更改还未应用到记录的集合的第二记录组以生成第二结果,基于第二结果更新第一结果以生成第三结果,并且处理第三结果以根据所述验证规则确定所述提议更改是否是有效的。另一方面,一般地,一种计算机可读存储介质存储用于管理对记录的集合的更改的计算机程序。所述计算机程序包括指令,用于使计算机执行:在数据存储系统中存储第一记录组,所述第一记录组表示记录的集合的第一版本;以及验证对记录的集合的提议更改,所述提议更改由通过用户界面接收的输入指定。所述验证包括:基于与提议更改相关联的验证标准查询数据存储系统并且响应于所述查询接收第一结果,处理表示更改还未应用到记录的集合的第二记录组以生成第二结果,基于第二结果更新第一结果以生成第三结果,并且处理第三结果以确定根据所述验证规则所述提议更改是否是有效的。另一方面,一般地,一种用于管理对记录的集合的更改的计算系统,包括:存储第一记录组的数据存储系统,所述第一记录组表示记录的集合的第一版本;以及至少一个处理器,经配置来验证对记录的集合的提议更改,所述提议更改由通过用户界面接收的输入指定。所述验证包括:基于与提议更改相关联的验证标准查询数据存储系统并且响应于所述查询接收第一结果,处理表示更改还未应用到记录的集合的第二记录组以生成第二结果,基于第二结果更新第一结果以生成第三结果,并且处理第三结果以确定根据所述验证规则所述提议更改是否是有效的。另一方面,一般地,一种用于管理对记录的集合的更改的计算系统,包括:用于存储第一记录组的装置,所述第一记录组表示记录的集合的第一版本;以及用于验证对记录的集合的提议更改的装置,所述提议更改由通过用户界面接收的输入指定。所述验证包括:基于与提议更改相关联的验证标准查询数据存储系统并且响应于所述查询接收第一结果,处理表示更改还未应用到记录的集合的第二记录组以生成第二结果,基于第二结果更新第一结果以生成第三结果,并且处理第三结果以确定根据所述验证规则所述提议更改是否是有效的。各方面可以包括以下特征中的一个或多个。第一记录组包括将一个或者多个源值映射到各自的目标值的元数据映射。如果一个或者多个源值之一被映射到两个不同的目标值,那么提议更改是无效的。处理所述第三结果包括识别应用所提议更改是否会引起一个或者多个重复的记录的生成。识别应用所提议更改是否会引起一个或者多个重复的记录的生成包括识别一个或者多个重复的行。通过使用作为验证标准的一个或者多个源值来识别所述一个或者多个重复的行。第二记录组包括表示已被输入到用户界面的、对第一记录组的提议更改的一个或者多个更改组。所述输入包括应用与先前保存的更改组相关联的更改到第一记录组的指令。验证对所述记录的集合的提议更改包括对比在用户界面中由输入指定的其它的提议更改,验证所述提议更改。用户界面包括选择性地显示记录组的一个或者多个子集的一个或者多个过滤器。如果提议更改不是有效的,则生成通知。该通知识别违反验证标准的提议更改的部分。各方面可以包括一个或多个以下的优点。例如,本文描述的技术可以用来保持各种数据库和文件的完整性和准确性。本文描述的技术也可以让管理员有效地维护一个或多个记录系统。从以下的说明以及从权利要求中,本发明的其它特征和优点将变得显而易见。附图说明图1是用于执行基于图形的计算的系统的框图。图2是管理对记录集合的更改的示例性过程的流程图。图3是示例性的计算环境的屏幕截图。图4A和图4B是示例性的计算环境的屏幕截图。具体实施方式图1示出了示例性的计算环境100,其中可以使用用于管理数据的集合(例如,被构建为记录的数据)的更改的技术。系统100包括数据存储系统112,所述数据存储系统112可以包括一个或多个数据源,诸如存储设备或者到在线数据流的连接,其中每个可以以各种格式中的任何格式(例如,数据库表、电子表格文件、纯文本文件或大型机所使用的本机格式)存储数据。处理环境106包括处理引擎108和验证引擎110。在合适的操作系统(诸如UNIX操作系统)的控制下,处理环境106可以被托管在一个或者多个通用计算机上。例如,处理环境106可以包括多节点并行的计算环境,所述多节点并行的计算环境包括使用多个中央处理单元(CPU)的计算机系统的配置,其可以为或者本地的(例如,诸如SMP计算机的多处理器系统)或者本地分布的(例如,耦合为群集或MPP的多个处理器)、或者远程的、或者远程分布的(例如,经由局域网(LAN)和/或广域网(WAN)耦合的多个处理器)或者其任何组合。提供数据存储系统112的存储设备可以是处理环境106的本地的存储设备,例如,被存储在连接到运行处理环境106的计算机的存储介质(例如,硬盘驱动器)中,或者可以远离处理环境106,例如,被托管在通过远程连接与运行处理环境106的计算机通信的远程系统(例如,大型机)上。处理环境106(和/或它的相关联的组件,诸如处理引擎108)可以从包括不同形式的数据库系统的多种类型的系统接收数据。该数据可以被组织成具有各自字段(也被称为“属性”或“列”)的值的记录,其包括可能的空值。当第一次从数据源读取数据时,处理环境106通常以关于数据源中的记录的一些初始的格式信息开始。在某些情况下,最初数据源的记录结构可能不是已知的,并且可以在对数据源的分析后被确定。关于记录的初始信息可以包括表示特定值(distinctvalue)的位数、记录内的字段的顺序以及由位表示的值的类型(例如,字符串、符号/无符号型整数)计算环境100还包括配置为将来自用户101的命令向处理环境106通信的用户界面102。在一些示例中,如在下面进一步详细描述的,用户101可以使用用户界面102输入提议的记录更改104。例如,用户101可以通过输入提议的记录更改104来试图改变存储在数据存储系统112中的记录组116中的一个或多个记录,所述提议的记录更改104包括添加和/或删除记录组116中的表的行或列,或者表的一个或者多个字段中的值的更改。用户界面102还可以通过使用诸如计算机显示器、扬声器等的各种输出设备从处理环境106向用户101通信信息。例如,用户界面102可以包括图形显示器,所述图形显示器能够以图形方式表示存储在数据存储系统112中的信息(例如,通过显示表示数据库表的列和行的网格)。处理引擎108和验证引擎110使用提议的记录更改104和从数据存储系统112检索的信息来验证和/或实施对数据存储系统112中存储的记录组116的更改。从数据存储系统112检索的信息可以包括与一个或多个未决的记录更改114(例如,尚未付诸实施的记录组116的更改,但可能已经被验证和/或保存)相关的信息。在一些示例中,未决的记录更改被称为“更改组”。一般地,处理引擎108接收并处理记录数据,所述记录数据包括表示用于改变一组或多组记录的指令的数据。处理引擎108可以使用来自提议的记录更改104、未决的记录更改114以及记录组116的数据以生成或者执行用于更改存储在数据存储系统112中的记录组116的指令。在一些示例中,在执行改变记录的集合的指令之前(例如,通过处理引擎108),验证引擎110验证用于更改记录的集合的指令。尽管处理环境106包含处理引擎108和验证引擎110,但处理环境106可以将其任务在任意数量的单独的任务引擎之间划分。例如,单一的任务引擎可以执行处理引擎108和验证引擎110二者的功能。同样,由处理引擎108和验证引擎110所执行的任务可以在多个子任务引擎之间划分。处理环境106可以访问在数据存储系统112中存储的数据。用户界面102也可以直接或间接地访问数据存储系统112,在所述用户界面102开发者能够提出并实施对数据存储系统112中存储的数据的更改。在一些示例中,用户界面102与用于开发应用的开发环境相关联,所述应用诸如包括由顶点之间的定向链接(表示工作元素流程)连接的顶点(表示组件或数据集)的数据流图。例如,在美国公开号为2007/0011668,题为“管理基于图形的应用的参数”中更详细地描述这样的环境,其通过引用并入本文。在美国专利第5566072号“执行表示为图形的计算”中描述用于执行这样的基于图形的计算的系统,其通过引用并入本文。根据这个系统做出的数据流图形提供了使信息进出由图形组件表示的单独过程(process)、在过程之间移动信息以及定义过程的运行顺序的方法。该系统包括选择过程间通信方法的算法(例如,根据图形的链接的通信路径可以使用TCP/IP或UNIX域套接字,或者使用共享内存来在过程之间传递数据)。图2示出了用于管理记录集合的更改的示例过程200的流程图。过程200可以由计算环境100中的一个或多个模块(例如,处理引擎108)执行。第一记录组被存储(202)在数据存储系统中,第一记录组表示记录的集合的第一版本。在一些示例中,记录的集合表示要被精确地保持和更新以在处理数据中使用的信息的集合,诸如元数据映射。一般地,元数据映射可以指定在两个不同的系统之间的值的转变(translation)。例如,如果第一系统使用值M(男)和F(女)来定义“性别”字段,第二系统使用值0(男)和1(女)来定义性别字段,可以使用元数据映射来将值从第一(“源”)系统向第二(“目标”)系统转变(例如,M→0,F→1)。可以在单个字段之间或者字段组之间做映射(例如,从第一系统到第二系统映射多个列)。例如,考虑存储包含用于表示人的性别的第一列和表示这个人生活的状态的第二列的记录的第一系统。在这个示例中,性别代码可以取决于状态,其中第一性别代码映射用于一个状态,第二性别代码映射用于另一个状态。具有状态MA的记录可以将值1映射到男性,但是具有状态NY的记录可以将值3映射到男性。在这个示例中,组合MA/0映射到男性,组合MA/1映射到女性,并且组合NY/3映射到男性。在一些示例中,元数据映射提供了从一个(并且只有一个)源值向目标值的转变。在这些示例中,元数据映射不能提供M→0和F→0的转变,这是因为这样的转变可能引起错误。这种转变方式将本质上破坏“M”和“F”之间的区别,这是因为两个不同的源值将被映射到相同的目标值。因此,在许多情况下,每个目标值可能只能与一个源值相关联。在其他实施方式中,如果目标系统保持两个不同的源值(例如,M和F)之间的区别不是必要的,那么多个源值可以被映射到相同的目标值。验证(204)对由输入指定的记录集合的提议更改。在一些示例中,验证(204)所提议更改包括验证过程205,所述验证过程205包括程序(procedure)206、208、210和212。即,在验证(204)提议更改中,基于与提议更改相关联的验证标准来查询数据存储系统,并且响应于查询(206)接收第一结果。例如,在接收关于提议的记录更改104的信息后,处理引擎108查询数据存储系统112。在一些示例中,查询数据存储系统112使得数据存储系统112返回第一结果,所述第一结果识别与提议更改104影响的行和/或列相关的行和/或列。查询所基于的验证标准表示特定行的源或目标列的一组值。例如,源列验证标准可用于验证实施提议更改104不会导致记录组116中重复的行,而目标列的值可以用来验证源和目标值之间的映射是可逆的(例如,以确认各组目标值是唯一的)。处理引擎108可以存储供以后用来验证提议的记录更改104的第一结果(例如,在本地内存)。处理表示还未应用到记录的集合的更改的第二记录组(“更改组”)以生成第二结果(208)。例如,处理引擎108可以处理存储在数据存储系统112中的未决的记录更改114,以便生成表示可能与提议的记录更改104冲突的第二结果。例如,如果提议的记录更改104包含修改行X的值的指令,处理引擎可以从未决的记录更改114中提取与行X相关的任何指令。从未决的记录更改114提取的信息被存储(例如,在本地存储器)为第二结果。在一些实施方式中,处理引擎108可以将第一结果传递到验证引擎110以验证提议的记录更改104而不考虑未决的记录更改114。同样,处理引擎108可以将第二结果传递给验证引擎110,以便验证未决的记录更改114而不考虑提议的记录更改104。在一些示例中,可以使用图4A、4B中示出的环境和技术中的一个或者多个生成更改组(在下面更详细地描述)。基于第二结果更新第一结果以生成第三结果(210)。例如,在以上讨论的方式生成第一和第二结果之后,处理引擎108可以用来自第二结果的信息更新第一结果以生成第三结果。在一些示例中,第三结果包括第一和第二结果中识别的行和/或列。可以根据验证标准处理第三结果以确定提议更改是否是有效的(212)。例如,处理引擎108可以将第三结果和提议的记录更改104传递到验证引擎110。验证引擎110然后可以比较提议的记录更改104(例如,使用提议的记录更改104中识别的验证标准)以确定提议的记录更改(104)是否是有效的(214)。确定对记录集的提议更改是否有效可以包括对重复源值的检查、核实每组源值映射到唯一的目标值组,并且核实任何范围(例如,日期范围)不重叠。如果提议更改被确定是无效的(NO),那么拒绝提议更改(218)。也可以生成一个或多个用户通知(220)。在一些示例中,通知可以识别提议更改为何无效的一个或多个原因。例如,如果因为提议更改包括修改已在未决的记录更改114中被删除的行的指令所以验证引擎110拒绝提议更改,那么可以在用户界面102生成识别提议的记录更改104和未决的记录更改114之间的冲突的通知。如果提议更改被确定是有效的(YES),那么提议更改可应用于记录的集合。例如,如果验证引擎110根据验证标准确定提议更改104是有效的,那么处理引擎106(或其他合适的实体)可以根据提议更改104中所提供的指令修改记录组116。例如,如果提议的记录更改104包含修改记录组116中的行的指令,并且验证引擎110根据验证标准确定提议的记录更改104是有效的,那么处理引擎108可以修改在提议的记录更改104中识别的记录组116中的行。在一些示例中,验证过程基于验证标准查询来自外部表的行,其可以是一组源值或者一组目标值。然后可以针对关于当前更改组的所保存的行查询数据存储系统(例如,元数据存储库),所述当前更改组表示外部行的更新或者删除。在一些示例中,对数据存储系统的这种查询可以不使用验证标准,这是因为覆写(override)的本质可能意味着结果行不再符合验证标准。基于被保存的覆写,不再匹配验证标准的外部行可以从数据存储系统中被移除。然后可以查询数据存储系统中符合验证标准的行。与已在验证组中的外部行的唯一标识符匹配的结果行中的一些或者全部可以替换相应的外部行。匹配验证标准的其它行然后可以被添加到组中。最后,基于最新的更改是否匹配验证标准,来自用户界面的任何未保存的更改可以从验证组中替换或移除具有相同的唯一标识符的现有行。匹配验证标准并且表示新的行(例如,插入外部表)的未保存的行可以被添加到验证组。然后可以使用最终的行组来应用验证。图3是可以显示在例如用户界面102上的环境300的示例性屏幕截图。用户(例如,用户101)可以使用环境300来查看并与一个或多个记录交互。环境300提供了文件浏览器312,其使用一个或多个组织系统显示文件的布置。在这个示例中,文件被组织为层次结构(例如,父“映射”包含子节点“映射”),其又包含若干亚子节点文件。用户可以导航文件浏览器来选择并显示一个或多个文件,诸如选择的文件303。文件已被选择之后,一个或多个过滤器314可以被应用到与所选择的文件303相关联的数据。过滤器314的应用可以改变在环境300中将要显示的数据的类型或量。例如,过滤器314可以被应用到选定的文件303以抑制目标值尚未被输入的行的显示。在这个示例中,所选择的文件303是元数据映射。正如上面所讨论的,一般地,元数据映射可以是两个不同的系统之间的值的转变。在图3中,元数据映射包括五行302,所述五行302包括第一行304。元数据映射还包括两列306,所述两列306包括第一列308和第二列310。参见第一行304,第一列308表示一条元数据的源值(P001)。第二列310表示同一条元数据的目标值(Y)。因此,在这个示例中,第一列308和第二列310定义了选定的文件303的第一行304的元数据映射,将源值P001映射到目标值“Y”。图4A和4B是展示一种技术的示例性环境400A、400B,其中与无效的提议更改相关联的行会在观看环境中被自动地提供,使得用户可以看到规则违反的可视化表示。图4A是类似于上述的环境300(图3)的环境400A的示例性屏幕截图。环境400A显示与选定的文件相关联的元数据,并包括第一行404。在此示例中,过滤器402使环境400A只显示源值具有值“P002”的行,其包括第一行404。第一行404的第一列包括源值406P002,所述源值406P002被映射到第一行404的第二列中的目标值408“N”。因此,第一行404表示源值406P002的元数据映射。图4B示出了环境400B,在所述环境400B中用户(或其他实体)添加了表示无效的更改的第二行410。如上所述,即使存在通常会抑制通知所表示的类型的行的过滤器,无效的更改也可以导致通知用户规则违反(例如,验证规则的违反)的通知被生成。例如,如在图4A中,过滤器402保持有效,其通常可以将显示的行限制为其中的源值具有P002的值的行。然而,在这个示例中,第二行410已被添加(例如,作为提议更改104),其提议将源值412“P003”映射到目标值414“X”。在分析提议更改时,相对于第一结果(例如与记录组116相关联的第一结果)和第二结果(例如,与未决的记录更改114相关联的第二结果)中的任一个或者两者,提议更改被无效。在这个示例中,因为验证标准指定单个源值不能被映射到一个以上的目标值,所以从源值412P003到目标值X414的提议的映射是无效的,这是因为它与源值412P003到目标值407“Y”的预先存在的映射相冲突,由冲突行409表示。使用各种技术可以激活验证过程。例如,用户可以激活“验证更改”控制,所述“验证更改”控制指示验证引擎110(图1)验证对记录的集合的提议更改。在更改被输入到用户界面(例如,环境400A、400B)之后,也可以激活验证过程。在一些示例中,验证过程可以实时地发生,并且在用户将更改输入(例如,打字)到用户界面时可以验证对记录的集合的更改。因此,验证过程可以针对存储的(例如,外部存储的)记录的集合、存储的未决的记录更改组(例如,更改组)以及出现在用户界面但是还未被保存为更改组或者还未被应用到记录的集合的更改来验证提议更改(例如,用户界面中的第一更改可以相对于未被实施或者保存为更改组的用户界面中的其它更改来被验证)。尽管应用了将抑制具有与P002不同的源值的行的过滤器402,但提议更改被无效后,可以在环境400B中呈现冲突行409。在这种情况下,与表示无效的提议更改的违反行(行410)相邻地呈现冲突行409。此外,可以生成一个或者多个通知414、416来将用户的注意力吸引到无效的提议更改。为了纠正无效的提议更改,用户可以删除提议更改或者可以修改提议更改和/或任何冲突值,以满足被违反的验证规则。环境400B还包括可以由用户激活的保存控制418以及保存并提交控制420。在一些示例中,保存控制418的激活将保存用户输入的任何提议更改,但是将不会将提议更改应用到记录组(例如,与记录组相关联的数据将不会响应于激活保存控制418而被改变)。替代地,对保存控制418的激活可以引起文件(例如,更改组)的生成,所述文件包含还未被应用到记录组的保存的提议更改(例如,图1中示出的未决的记录更改114)。保存并提交控制420可以被用户激活以保存提议更改并且将它们应用到记录组。因此,如果提议更改被确定为是有效的(例如,通过图2所描述的过程200),记录组将根据提议更改被改变。在一些示例中,用户可以访问更改组以进一步编辑更改组或者实施更改组表示的更改。对记录的集合实施更改组可以是类似于过程200(图2)的验证过程。当实施更改组(例如,将更改组中的提议更改应用到记录的集合),更改组可以表示提议更改104,并且未决的记录更改114可以是与被验证的更改组不同的一个或者多个更改组。上述管理对记录集合的更改的技术可以通过使用在计算机上执行的软件来实施。例如,软件形成一个或者多个计算机程序中的过程,所述计算机程序在一个或者多个编程的或者可编程的计算机系统(其可以是各种架构,诸如分布的、客户端/服务器或者网格)上执行,所述每个计算机系统至少包括一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口和至少一个输出设备或端口。该软件可以形成更大的程序的一个或多个模块,所述程序例如提供关于数据流图的设计和结构的其他服务。图形的节点和元素可被实施为存储在计算机可读介质或符合存储在数据存储库中的数据模型的其他有组织的数据的数据结构。该软件可以被提供在由通用或者专用目的可编程计算机可读的存储介质上,诸如CD-ROM,或者通过网络的通信介质被传递(被编码为传播信号)到其被执行的计算机。所有的功能可以在专用目的计算机上被执行,或者使用诸如协处理器的专用目的硬件。软件可以以分布的方式被实施,在所述分布方式中软件所指定的计算的不同部分由不同的计算机执行。每个这种计算机程序优选地被存储在或者被下载到通用或者专用目的可编程的计算机可读的存储介质或者设备(例如,固态存储器或者介质、或者磁性或光学介质),以当存储介质或者设备由计算机读取时配置和操作计算机来执行本文表述的过程。本发明的系统也可以被考虑为实施为计算机可读存储介质,配置有计算机程序,其中如此配置的存储介质使得计算机系统以特定的、预定义的方式执行本文所述的功能。已经描述了本发明的一些实施例。然而,将会被理解的是,可以作出各种修改而不脱离本发明的精神和范围。例如,上面描述的步骤中的一些可以是独立的步骤,并因此可以以与所描述的顺序不同的顺序被执行。应当理解的是,前面的描述是意图说明而非限制本发明的范围,本发明的范围由所附的权利要求书的范围限定。例如,上面描述的多个功能步骤可以以不同的顺序进行,而基本上不影响整体的处理。其它的实施例在下面的权利要求的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1