首页 / 专利库 / 人工智能 / 源语言 / 在数据库系统中强化实施参照约束

数据库系统中强化实施参照约束

阅读:357发布:2021-07-11

专利汇可以提供数据库系统中强化实施参照约束专利检索,专利查询,专利分析的服务。并且在一个 数据库 系统中强化实施参照完整性的系统和方法,能在存取方案的编译期间确定有关的参照约束。当产生存取方案时,对所有与数据库的数据变化有关的参照约束进行标识。为执行参照约束检验所需的代码在编译期间直接插入存取方案,消除了在运行期间确定有关约束的必要。约束检验可以采用在存取方案中为进行数据存取所用的相同的低级过程语句来完成。,下面是数据库系统中强化实施参照约束专利的具体信息内容。

1.产生一个对关系数据库进行存取的存取方案的方法,其特征包括以下步骤:将源语言语句编译成低级代码,包含在存取方案之中;在上述编译步骤期间,确定包含在处理源语言语句中的数据库客体之间的联系;对存取方案插入低级代码,在有关的数据库项目上进行约束检验。
2.权利要求1的方法,其特征在于存取方案包括多个存取部分,每部分对应一条源语言语句,并且与每条源语言语句有关的约束检验代码与相应的存取部分相关联。
3.权利要求1的方法,其特征在于只有当与存取部分相关联的约束检验代码返回并指明所有约束都满足时,存取部分中的操作码才被允许执行它们的功能。
4.一个关系数据库系统,其特征在于:多个包含数据的数据库客体,以及包含用来执行数据库操作的代码的存取方案,上述存取方案还包含用来执行预选定的约束检验的低级代码。
5.权利要求4的系统,其特征在于所说的存取方案包括:多个存取部分,每部分对应一个数据库存取语言源码的标识部分;其中用来执行与源码的每一标识部分有关的约束检验的代码,与相应的存取部分相关联。
6.权利要求5的系统,其特征在于每个存取部分包括:一条低级码主线索,用来执行数据库操作,以实现源码的相应部分;以及一个包含指向低级码子线索的指针的控制,用来进行与存取部分有关的约束检验。
7.权利要求6的系统,其特征在于每条子线索对应一个要被检验的约束。
8.权利要求5的系统,其特征在于数据库存取语言源码的一个标识部分包括由数据库存取语言定义的一条指令。
9.对一个关系数据库进行存取的方法:其特征包括以下步骤:执行一个包含数据库存取操作码的存取方案;以及在存取方案中,进行预选定的约束检验,强制实施数据库客体间的参照约束。
10.权利要求9的方法,其特征在于在编译存取方案时,选择约束检验。

说明书全文

发明总体上讲涉及数字计算机的数据库系统,特别是涉及一种在数据库改变时强化实施参照约束的系统和方法。

为了提高数字计算机系统中数据库的存取速度,包括数据库存取指令的源文件可以编译为存取方案。这种存取方案包括低级过程语句,以便有效地存取数据库。数据库管理程序运行期间不是解释数据库存取指令,而是执行存取方案,以改善系统性能。

为了保持数据库的参照完整性,当更新数据库时,必须满足众多的约束条件。参照完整性是指整个数据库中的一种一致性状态。参照完整性是通过对数据库的所有变化进行检验以确保这些变化满足一致性的要求而实施的。

在现行的系统中,当数据库中的一张表发生变化时,就要确定与这种变化有关的所有的约束。受这些约束影响的其它表被识别,并且执行程序去完成必要的一致性检验。确定有关的一致性检验及识别包含的表所用的时间是值得注意的,它降低了整个系统的性能。

这就希望在数据库系统中提供一种系统和方法,当数据库发生变化时,能够最大限度地减少完成一致性检验的时间。

因此,本发明的一个目的是提供一种当数据库系统更新时用于完成一致性检验的系统和方法。

本发明的另一个目的是提供的这种系统和方法,能最大限度地减少一致性检验所需的时间。

本发明还有一个目的是提供的这种系统和方法能实现数据库系统的参照完整性。

因此根据本发明的一个数据库系统中强化实现参照完整性的系统和方法,能够在存取方案的编译期间确定有关的参照约束。当取存方案产生时,与数据库的数据变化有关的全部参照约束被标识。完成参照约束检验所必需的代码在编译期间被直接插入存取方案,消除了运行时确定有关约束的必要性。基本上可以采用与已经用于实行数据库存取的存取方案中的低级过程语句相同的语言来完成约束检验。

本发明新颖的有效特征在所附的权利要求书中提出。然而本发明自身,及其最佳应用方式、进一步的目的和优点,将通过参照以下结合附图实施例所做的详细描述,获得最好的理解,其中:图1是说明一个数据库系统的高层框图;

图2是一个存取部分的框图;

图3是说明存取方案的编译过程的流程图;

图4至图11说明为了完成约束检验而将低级代码语句插入存取部分的情况;以及图12是一张流程图,说明在自参照表中进行删除,以级联删除规则强化实施参照约束时,插入存取方案的低级代码的功能。

定义一些在以下描述中使用的重要词汇和概念,对理解本发明是有帮助的。

主关键词是表中的一组列,必须包含独有的非空值,一张表不能多于一个主关键词。外来关键词是表中的一组列,它的值需要与一张表的主关键词的值匹配。参照约束是一种必要的条件,指明的外来关键词的非空值只有当它们也作为指明的表的主关键词的值出现时,才是有效的。如果它的任何部分是空的话,外关键词的值是空的。由参照约束限定的关系是单张表或两张不同的表的行之间由一个主关键词和一个外来关键词的值确定的一组连接。

双亲表是在联系中包含主关键词的表。一张表可以是任何数目的联系中的双亲表。从属表是在联系中包含外来关键词的表一张表可以是任何数目的联系的从属表。一张表既可以是双亲表,又可以是从属表。

从属行是从属表中的行,该表的外来关键词的值与双亲表的主关键词的值相匹配。外来关键词的值这样便代表了自从属行至双亲行的一个参照。双亲行是双亲表的行,该行至少有一行从属行。

删除规则与每个参照约束相关。删除规则能限制(防止)删除双亲行,或指定删除从属行的作用。其作用可以是删除从属行(级联删除),或将从属行中的外来关键词置空值。

更新规则也与每个参照约束相关。使用更新规则的一个途径是限制更新双亲行中的主关键词。另一个途径是指定更新从属行的作用,以致于使例如级联更新成为可能。

每次改变数据库,必须满足全部有关的参照约束。如果任何一项不满足,就不允许改变数据库。对外来关键词强化实施以下规则,能保证数据库的参照完整性。

插入规则:当在一张从属表中插入一行时,被插入行中每个非空外来关键词的值必须与相关的双亲表中主关键词的某一值相匹配。如果任何参照约束被插入操作所破坏,那么就会出现错误,并且没有行被插入。

删除规则:当从一张双亲表中删除一行时,进行检验以确定在从属表中是否还有从属行。从属行是具有外来关键词的行,其值与将要删除的行的主关键词匹配。如果发现任何从属行,便由删除规则规定所采取的行动,该删除规则是对从属表中的外来关键词规定的。

可以对一个外来关键词规定三种删除规则。如果规则是RESTRICT(限制),如果发现任何从属行,就会出现错误,并且没有行被删除。如果删除规则是CASCADE(级联),删除从属表中的任何从属行,对从属表中被删除行的任何其它参照约束也必须得到满足,否则就会出现错误,并且没有行被删除。如果删除规则是SET  NULL(置空值),如果在从属表中发现任何从属行,那么外来关键词的所有可置空值的部分都置空值。

更新规则:当在一张双亲表中更新一行时,进行检验以确定在从属表中是否还有从属行。从属行是具有外来关键词的行,其值与将要更新的行的主关键词匹配。如果发现任何从属行,便由更新规则规定所采取的行动,该更新规则是对从属表中的外来关键词指定的。

可以对一个外来关键词规定三种更新规则。如果规则是RESTRICT(限制),如果发现任何从属行,就会出现错误,并且没有行被更新。如果更新规则是CASCADE(级联),对从属表的任何从属行中的外来关键词进行更新,使其成为对应的主关键词部分。对从属表中被更新行的任何其它参照约束也必须得到满足,否则就会出现错误,并且没有行被更新。如果更新规则是SET  NULL(置空值),如果在从属表中发现任何从属行,那么外来关键词的所有可置空值的部分都置空值。

更新外来关键词规则:当在一张从属表中更新一个外来关键词时,如果外来关键词不是空值,它的新值必须与相关的双亲表中主关键词的某一值相匹配。如果任何参照约束被更新操作所破坏,那么就会出现错误,并且没有行被更新。

参照图1,数据库10是由数据库管理程序12存取的。为了对数据库10进行存取,由应用程序(未示出)调用数据库管理程序12。除了通过数据库管理程序12,不允许对数据库10进行存取。

当应用程序调用数据库管理程序12时,它还接下来调用存取方案14去完成所要求的数据库存取。存取方案14包括低级的经过解释的码,该码是从一种较高级的数据库存取语言如SQL或类似语言经编译得到的。存取方案14包括多个存取部分16、18、20、22、24、26和28。存取部分16~28中的每一个基本上都对应SQL中的一种源级语句,或对应一种类似的高级数据库存取语言。

存取方案14作为包括在数据库10中的一个客体而存在。数据库10中还包括许多其它的数据库客体30、32、34、36、38、40和42。各种类型的数据库客体30~42可以与本发明最相关的数据表一起存在。

对应于SQL语句的每一存取部分16~28对数据库10中的一张或多张表30~42进行存取。取决于编译进每个存取部分的语句的性质,这些表中的数据可以被读出或改变,或者表中的行可以被插入或删除。如图1所示,存取部分可以访问不止一张表,并且许多不同的存取部分可以访问一张单个的表。表可以被许多不同的存取方案中的存取部分访问。例如,存取部分16、18、22和24都访问表32。存取部分26仅访问表36,而存取部分28访问表36、38和40。

图2表示一个典型的存取部分的结构。主线索50是低级代码的线索或,用以完成SQL由存取部分代表的语句的功能,主线索50包括指向表客体52(TAOB)和插入/更新/删除客体54(IUDO)的指针。表客体是一个控制块,包括为在数据库中存取一张表所必须的全部信息。IUDO是一个控制块,包括对一张表进行插入、更新或删除所需要的全部信息和过程。并不是所有的主线索50都包括指向客体52和54的指针。只有那些执行操作需要的指针才被包括进去。

TAOB52包括为在数据库中对一张表定位所需的所有标识符。此外,出现在最初的SQL语句中的谓词被包括进TAOB52之中。这些谓词由表存取操作码使用,用来选择满足存取操作码规定的标准的表的行,并且这些谓词在SQL语句的WHERE子句中被找到。这些谓词典型地包括关系运算符,例如大于或小于,以及产生一个“真”或“伪”的结果。

IUDO54包括指向任何数据值56的指针,这些数据值对执行由主线索50所规定的操作来说是必需的。这些数据值包括例如出现在最初的SQL语句中的数值常量及字符常量。IUDO54还包括指向子线索58(S1)、60(S2)和62(S3)的指针。与主线索50相类似,子线索58、60和62也是低级代码的块。子线索可以包括用来对各种不同的数值和字符表达式进行求值和处理的代码。为了保持数据库参照完整性,还包括那些能完成所有必要的、为主线索50所代表的语句所需的约束检验的子线索。子线索58、60和62在完成执行主线索50的操作之前被执行,只有当由必需的子线返回的值达到被主线索50中的操作码所期望的适当值时,主线索50中的操作码才全部执行,指出操作不会破坏所需的参照完整性。

如同主线索50可以具有相关的TAOB52和IUDO54一样,子线索58、60和62也包括指向表客体、或许还包括向插入入/更新/删除客体的指针。例如,图2中子线索58包括指向TAOB64的指针,而子线索60包括指向TAOB66的指针。子线索58和60都不包括指向IUDO的指针。在本例中,子线索62既包括指向TAOB68的指针,又包括指向IUDO70的指针。

如前所述,子线索包括在IUDO54之下,它们对于完成所有约束检验来说是必要的,这些约束检验对于执行主线索50时强制实施数据库关联完整性是需要的。在编译存取方案时确定所有必要的约束检验,并且适合的子线索由编译程序插入。该进程示于图3中。

用于编译SQL的源文件语句,或其它类似的高级数据库存取语言语句的最佳方法,开始于编译程序读出一条SQL语句80。如果编译程序已经到达源文件的结尾82,则编译过程完成。如果没有到达源文件的结尾82,则在84产生那条语句的主线索。

一些语句,如SELECT(选择)语句,不需要进行任何约束检验。进行检验是为了看一看在86是否需要任何约束,如果不需要,则控制返回步骤80,并且读出下一语句。如果当前正在编译的语句确实需要在86进行约束检验,那么在88标识约束。约束标识包括一个联系中的双亲表和从属表的标识,如果操作是删除操作或更新操作时,还包括确定对一个外来关键词来说使用哪一条删除规则或更新规则。当所有约束在88被标识,便在90产生适合的约束子线索,并且与刚产生的主线索的IUDO相连。然后,控制返回步骤80,准备读出下一条源语句。

本领域的技术人员知道,对所有可能的联系进行检验以确定需要产生哪一些约束子线索,这延长了编译过程的时间并增加了其复杂性。还将懂得,由于这一过程是在编译期间完成的,并且适合的子线索直接与用于执行主线索的代码相联,所以没有必要在执行时对已经产生的存取方案进行这种检验。这就加快了存取方案的总的执行时间,因此提高了数据库系统的性能,由于存取方案一般编译一次,而执行许多次,因此,增加编译时间所带来的影响比起减少执行时间所带来的影响要小得多。

由于完成所有约束检验的代码直接放在存取方案之中,所以数据库中表之间的联系发生变化时,存取方案就不再有效了。因此,当这种变化发生时,就有必要使存取方案作废,并且在方案再次执行之前,至少重新编译受影响的存取部分。并不是所有的联系变化都需要作废存取方案,并重新进行编译。发明名称为“数据库系统的存取方案无效”、共同未决申请的申请号为No.的专利申请(该申请已引入于此)描述了决定何时必须作废存取方案的最佳技术。

图4至图10说明进行几个重要的约束检验的子线索的使用,以及进行这些约束检验的代码例子。在每一图中,主线索由MT:标识,子线索由S1和S2表示。在每一图中,子线索表示用来对每一主线索只进行一次唯一的约束检验。然而,在许多情况下,对一条SQL语句而言,必须进行多次约束检验,并且将包括相应于这些约束的多条子线索。将多个指向他们的指针简单地放在IUDO中,就能把多条子线索包括进去。

在图4至图10的主线索和子线索代码例子中采用了以下低级操作码:DEL:这一操作码包括指向一个IUDO的一个指针。如果由IUDO指向的任何约束子线索返回“真”值,则删除失败,当删除包括主关键词的行与从属外来关键词的删除规则不符合时,发生这种情况,并且数据库不发生变化。如果返回“伪”,则如期望那样进行删除操作。

DL2:除了用来对级联删除进行计数的字段增大、而不是如DEL操作码那样使对直接删除进行计数的字段增大之外。该操作码的其它功能与DEL操作码相同。

EXS:该操作码决定当执行前一个操作码,如TA操作码时,是否存在匹配。如果前一个TA操作码发现有匹配的记录,则将“真”值放在布尔栈中,否则将“伪”放在栈中。

EXP:这是一个退出线索操作码,它结束一个谓词(约束检验)子线索执行。当退出子线时,该操作码将布尔栈中的一个值退栈,并返回该值。

EXT:该操作码简单地退出线索或子线索,将控制返回至调用这条线索或子线索的位置

ISS:该操作码用来将一行插入一张表中。它包括一个指向IUDO的指针,并且只有当它的约束子线索返回值为“真”时,才完成执行。返回值为“伪”表示插入操作废止。当企图插入的行所包括的外来关键词与主关键词不匹配时,发生这种情况。

TA:该操作码是一个表存取操作码,包括一个指向TAOB的指针。该操作码选择与TAOB相联的表中所有符合TAOB中的谓词所规定的标准的行。

UPD:该操作码是一个更新操作码,包括一个指向IUDO的指针。当主关键词更新以及外来关键词更新时,用于更新的IUDO包括指向约束子线索的指针。只有当用于主关键词更新的所有约束子线索的返回值为“伪”时,UPD操作码才完成执行。返回值为“真”表示更新操作被废止。当企图更新的主关键词具有与之匹配的外来关键词值时,发生这种情况。对每次主关键词的更新,进行一次检验,以确定主关键词的值是否真的改变了。如果它没有改变,不执行用于更新主关键词的约束子线索。只有当用于外来关键词更新的所有约束子线索的返回值为“真”时,UPD操作码才完成执行。返回值为“伪”表示更新操作被废止。当企图将外来关键词更新为一个与主关键词不匹配的新值时,发生这种情况。

UP2:除了将一个特定的字段增大,以便对更新的从属行记数之外,该操作码的功能与UPD操作码相同。

参照图4,它示出了用来对一张从属表进行插入的完成主关键词检验的代码。为了确保在双亲表中包含新的关键词,当产生一个新的非空外来关键词值时,就要进行这一检验。ISS操作码指向I IUDO 0,IUDO 0接下来再指向子线索S1。在子线索S1中,TA操作码用来搜索双亲表(由TAOB1指向)中的一行,该行的主关键词值与新增加的外来关键词匹配。ExS将一个“真”值或一个“伪”值放入布尔栈中,并且该值从栈中退出,由EXP操作码返回。

如果“伪”返回给ISS操作码,那么在双亲表中便没有发现一个相匹配的主关键词,并且插入操作是不允许的。

参照图5,它示出了当从属表中外来关键词的删除规则是RESTRICT(限制)时,进行删除操作的低级代码。TAOBO包括出现在源删除语句中的全部谓词,并且IUDO 0包括一个指向子线索S1的指针。TAOB1包括为在从属表中搜索其外来关键词与正在被删除的双亲表行的主关键词匹配的行所必须的那些谓词。在主线索中,TA操作码选择将要被删除的双亲表中的行,并且如果返回“伪”,DEL操作码就删除所选择的行。在子线索S1中,TA操作码指向TAOB1,搜索具有与被选择行的主关键词匹配的外关键词的行,对每个被主线索的TA操作码选中的双亲表中的行,执行子线索S1,如果找到这种匹配的行,则由EXP操作码将“真”返回,并废止删除操作。

参照图6,它示出了执行删除操作的代码,其中从属表的外来关键词具有删除规则SET  NULL(置空值)。除了子线索S1包括具有一个指向IUDO1的指针的一个UP2操作码外,本实例与图5相似。IUDO1列出从属表中外来关键词的可置空值部分,并在被调用时,将空值赋予这些部分。当TA操作码对从属表扫描时,在每一与正被删去的双亲行的主关键词匹配的行上执行UP2操作码。EXT操作码并不返回一个布尔值,所以主线索中的DEL操作码总是能够执行。

图7表示当从属表中的外来关键词的删除规则是CASCADE(级联)时用于进行删除操作的代码。除了子线索51具有DL2操作码而不是UP2操作码,使级联删除能够完成,以及IUDO1具有一个指向子线索S2的指针,使附加层级联删除能够完成之外,图7的代码与图6的代码相类似。除了TAOB2和IUDO2参照与TAOB1和IUDO1不同的表之外,子线索S2和子线索S1是相同的。如果删除链级联有第三张表,那么IUDO2将包括一个指向另一个子线索的指针,去对那张表进行删除。子线索S1和S2中的DL2操作码将从属表中所有被在各自的子线索中的TA操作码发现的行删除。

参照图8、图9和图10,它们示出了用于在更新操作时强制实行约束的子线索的代码。在每一情况中都进行检验,以确定是否主关键词的值真正变化了。如果没有变,不执行约束子线索。

当从属表的更新规则为RESTRICT(限制)时,运用图8的代码。在主线索中,TA操作码从双亲表中选择行,并且如果返回时是“伪”,UPD操作码就更新所选择的行。在子线索S1中,TA操作码确定在从属表中是否存在这样的行,它们的外来关键词与双亲行的主关键词匹配。如果匹配,则指出不应执行更新操作,EXS和EXP操作码将“真”值返回UPD操作码。如果找不到这样的匹配行,则返回“伪”,并且允许完成更新操作。

图9表示当从属表中的外来关键词的更新规则是SET  NULL(置空值)时,所采用的约束检验子线索。在子线索S1中,IUDO1列出从属表中外来关键词的可置空值部分,并且UP2操作码将空值赋予从属表中被TA操作码选中的每行的这些部分。如同置空值删除的情况,子线索S1将不会使主线索中的UPD操作码失败。

图10表示用于执行更新操作的代码,其中从属表中外来关键词的更新规则是CASCADE(级联)。IUDO1列出对应于双亲主关键词的被更新部分的从属表中外来关键词部分。UP2操作码使对由子线索S1中的TA操作码选中的从属表中的每一行的外来关键词部分设置成相应的主关键词部分的值。如果级联在第一从属表之外延续,则IUDO1如同在级联删除中的情况一样,包括一个指向另一子线索的指针。

参照图11,它示出了在对外关键词的值进行更新用来完成主关键词检验的代码。为了确保在双亲表中包括该新关键词,当一个新的非空外来关键词值产生时,便进行这一检验。UPD操作码指向IUDO0,它再指向子线索S1。子线索S1中,TA操作码用来搜索双亲表(由TAOB1指向)中的一行,该行的主关键词值与新增加的外来关键词匹配。EXS将一个“真”值或一个“伪”值放入布尔栈中,并且该值从栈中退出,由EXP操作码返回。

如果“伪”返回UPD操作码,那么在双亲表中便没有发现一个相匹配的主关键词,并且更新操作是不允许的。

由于许多表在联系中既是双亲表又是从属表,所以对所有有关的约束,必须包括约束检验子线索。如果任何约束子线索发生故障,那么由主线索定义的操作也将发生故障。

所有上述约束都能用子线索以直截了当的方式完成。执行期间处理起来较为困难的约束是在带有级联删除规则的删除语句中的自参照约束。这种特殊情况最好采用不同方式来处理,如下面所介绍的那样。

在级联删除规则和自参照约束条件下,从一张表中删除的每一行都可能在同一张表中有许多从属行,而这些从属行在那张表中又可能有许多从属行。这种多重从属关系可以从无法预知的深度继续递归下去,只取决于表中包含的数据。执行约束检验的一个递归过程需要一个最大容量难以确定的调用栈。因此,下面介绍采用选代技术来进行这一特殊情况的约束检验的最佳方法。

参照图12,它示出了在带有级联删除规则的删除语句中,对一个自参照约束进行约束检验的方法的流程图。

首先,在步骤100选择将要删除的一行或几行。这可以是目前由光标选择的一行,也可以是基于某些比较标准选择的一行或多行。在后一种情况下,可采用所熟悉的TA操作码来选择表中要删去的行。

在步骤100被选择的一行或几行的每一行的主关键词写入一张临时表102,然后,在104,用DEL操作码将所选择的一行或几行从原表中删除。在106,包括一个新近被删除的主关键词值的一行从临时表读出。然后,在步骤108进行检验,看看临时表是否空了。如果是的话,则过程结束。否则,控制转向步骤110。

在步骤110中,用TA操作码读出原表中具有与刚从临时表中选出的主关键词匹配的从属关键词的行。步骤112指明是否找到了更多的匹配行。如果还没有到达表的结尾处,则在114将新近选出行的主关键词加进临时表中,并在116从表中删除该行。这一过程一直继续下去,直到由TA操作码将所有的匹配行找到为止。

由步骤110~116定义的循环适用于一个单独的自参照约束。即:检验一个外来关键词,看看它是否与从临时表中刚读出的主关键词匹配。一张表中存在两个或两个以上不同的自参照约束也是可能的。如果存在更多的自参照约束,则在原表完成一次扫描以后,将控制从步骤112转向步骤118。除了步骤118中的TA操作码引用的表项目的谓词不同于步骤110中的TA操作码引用的表项目的谓词之外,步骤118、120、122和124对应于步骤110~116,使得原表再次被扫描。这意味着由步骤118~124构成的循环,对不同的参照约束进行检验。

假定原表中只有两个不同的参照约束存在,那么一旦步骤120的检测指出表已经被全部扫描过了以后,控制就返回步骤106,从临时表中读出一个新的主关键词。有了新近从临时表中读出的主关键词,整个过程宣告完成。这一循环继续着,当行被删除时,新的主关键词加进临时表中,并且每次控制返回步骤106时从临时表中去掉,直至临时表变空。由于自参照约束只限于单张表,所以最终临时表或原表本身将变空。

如果对于原表来说只有单个自参照约束存在,那么判定步骤112将直接把控制返回步骤106,而步骤118~124构成的循环将不复存在。如果有三个或三个以上的不同的自参照约束存在,那么控制将经过判定步骤120到达下一个参照循环的开始,并且最终的循环将控制返回步骤106。由于约束的数目和本体在存取方案的编译期间是知道的,所以编译程序仅仅将所要求的循环的准确数目写进存取部分。

以上描述的系统和方法提供了将用于约束检验的子线索直接编译进存取方案。由于有关约束的存在和识别并不需要在运行期间确定,所以提高了运行期间的效率。用来进行约束检验的代码可以以和存取部分的先前结构一致的方式;附在各种存取部分的主线索上。

虽然以上结合最佳实施例对本发明进行了具体展示和描述,但本领域的技术人员应该懂得,在不偏离本发明的精神和范围的情况下,可以在形式上和细节上对本发明作各种修改

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈