用于数据处理的方法和系统技术方案

技术编号:2842602 阅读:190 留言:0更新日期:2012-04-11 18:40
一种方法、装置、系统和信号承载媒体,其接收指定父表、父表中的主码、子表和子表中的外码的限制命令,以及强制实施:在子表的外码中呈现父表中的主码的所有值。所述强制实施包括:接收第一插入命令,其中插入命令指定目标码、目标码的目标值和目标表;确定目标表是否匹配父表,以及在包括第一插入命令的事务中子表是否包括具有与主码的目标值相等的外码值的至少一行;如果确定为真则将目标值插入目标表;如果确定为假则返回错误。所述强制实施包括:接收指向目标表中的目标码的目标值的删除命令;决定目标表是否匹配子表、目标码是否匹配外码以及删除命令是否请求从子表中删除具有目标值的所有行;如果决定为真则返回错误;如果决定为假则从目标表中删除具有目标码的目标值的行。

【技术实现步骤摘要】

本专利技术一般涉及计算机数据库管理系统,并更具体地涉及强制实施数据库中从父表到子表的限制。
技术介绍
1948年EDVAC计算机系统的开发通常被称为是计算机纪元的开端。从那时起,计算机系统已包括了极端复杂的设备,并且计算机系统可在许多不同设置中找到。计算机系统典型地包括硬件(诸如半导体和电路板)和软件(也被称为计算机程序)的结合。基本上,计算机系统被用于存储、操作和分析数据,所述数据可以是从复杂的金融信息到简单的烘烤食谱的任何数据。那么,无疑计算机系统的整体价值或效用极大地取决于计算机存储、操作和分析数据的能力有多强。一种用于管理数据的机制被称为数据库管理系统(DBMS),其也可以被称为数据库系统。许多不同类型的数据库是公知的,但最常见的数据库通常被称为关系数据库(RDB),其在具有行和列的表中组织数据,所述行表示数据库中的独立条目或记录,所述列定义在每个条目或记录中存储了什么。列也可被称为字段。每个表在数据库内具有唯一名称,而每个列在特定表内具有唯一名称。数据库还具有索引,索引是向数据库管理系统通知给定了被索引的列值在表中的某行的位置的数据结构,其与向读者通知给定词出现在哪一页的书本索引类似。数据库典型地提供码,码是数据库用来给数据排序的在表中的一个或多个行。大多数数据库管理系统允许多于一个码,从而允许以不同方式对记录排序。所述码之一被指定为主码,并且必须对每一行保持唯一值。标识不同表中的行的码被称为外码。外码(FK)是指向另一表中的另一数据库记录的字段(列)的数据库记录中的字段(列)。通常一个表中的外码引用其它表中的主码。参照完整性是由关系数据库管理系统提供的特征,其防止用户或应用在表之间输入不一致数据。例如,假设表B具有指向表A中的列的外码。参照完整性防止向表B(子表)添加无法被链接到表A(父表)的记录。因此,表B(子表)的记录中的外码值必须已经在表A(父表)的相应列中存在。因此,在所述关系中,主码常常被称为父码,而外码被称为子码,因为孩子不能没有父母而存在。此外,参照完整性规则还可指定,只要从表A(父表)中删除记录,表B(子表)中被链接到所删除记录的任何记录也被删除,这被称为级联删除。最后,参照完整性规则可指定,只要在表A中修改了所链接列中的值,表B中被链接到该值的所有记录也将被相应修改,这被称为级联更新。因此,级联删除和更新强制实施了孩子不能没有父母而存在的关系。尽管参照完整性是有用的技术,但是它是有限制的,因为它仅在一个方向上强制实施完整性规则,即,在所述关系中主码是父码,而外码是子码。尝试通过将表A中的一个码定义为既是主码也是外码(以及类似地定义表B中的一个码)而创建双向的参照完整性会导致循环限制,循环限制导致死锁和无限循环。因此,所需要的是一种用于创建双向的参照完整性的技术。
技术实现思路
提供了一种方法、装置、系统和信号承载媒体,在一实施例中,其接收指定父表、父表中的主码、子表以及子表中的外码的限制命令,以及强制实施在所述子表的外码中呈现所述父表中的主码的所有值。在一实施例中,所述强制实施可包括接收插入命令,其中所述插入命令指定目标码、目标码的目标值以及目标表;确定所述目标表是否匹配所述父表,以及在包括所述插入命令的事务中所述子表是否包括具有与所述主码的目标值相等的外码值的至少一行;如果所述确定为真,则将所述目标值插入所述目标表;以及如果所述确定为假,则返回错误。在一实施例中,所述强制实施可包括接收指向所述目标表中的目标码的目标值的删除命令;决定所述目标表是否匹配所述子表、所述目标码是否匹配所述外码、以及所述删除命令是否请求从所述子表中删除具有所述目标值的所有行;如果所述决定为真,则返回错误;以及如果所述决定为假,则从所述目标表中删除具有所述目标码的目标值的行。附图说明下文结合附图来描述本专利技术的各种实施例图1描述用于实现本专利技术实施例的示例性系统的高级框图。图2描述根据本专利技术实施例的数据库的框图。图3描述根据本专利技术实施例的限制数据的框图。图4描述根据本专利技术实施例的用于限制命令的示例性处理的流程图。图5描述根据本专利技术实施例的用于插入命令的示例性处理的流程图。图6描述根据本专利技术实施例的用于删除命令的示例性处理的流程图。图7描述根据本专利技术实施例的用于级联删除命令的示例性处理的流程图。不过,需要注意,附图仅图示出本专利技术的示例性实施例,并因此不会被认为是限制本专利技术的范围,因为本专利技术可容许其它的等效实施例。具体实施例方式本专利技术的实施例提供了双向的参照完整性限制。现有的参照完整性限制提供的是对于子表中的每一行,外码中的值必须在父表中具有匹配的主码值,与现有的参照完整性限制相反,本专利技术的实施例强制实施下述限制,其中对于父表中的每个主码值,子表具有至少一个匹配的外码值。参考附图,其中在若干视图中相同标号指示相同的部分,图1是根据本专利技术实施例的经由网络130连接到客户机132的计算机系统100的高级框图表示。在一实施例中,计算机系统100的硬件组件可以由可从纽约Armonk的国际商业机器买到的eServer iSeries计算机系统来实现。不过本领域技术人员将了解,本专利技术实施例的机制和装置等同地适用于任何适当的计算系统。计算机系统100充当客户机132的服务器,但是术语“服务器”和“客户机”仅出于方便使用,而在其它实施例中,在一种方案中被用作服务器的电子设备可在另一种方案中被用作客户机,反之亦然。计算机系统100的主要组件包括一个或多个处理器101、主存储器102、终端接口111、存储接口112、I/O(输入/输出)设备接口113和通信/网络接口114,所有这些组件都经由存储器总线103、I/O总线104和I/O总线接口单元105相耦合用于组件间的通信。计算机系统100包含一个或多个通用的可编程中央处理单元(CPU)101A、101B、101C和101D,在此被统称为处理器101。在一实施例中,计算机系统100包含典型的较大型系统的多个处理器;不过,在另一实施例中,计算机系统100可替换地可以是单CPU系统。每个处理器101执行主存储器102中存储的指令,并可包括一级或多级机载高速缓存。主存储器102是用于存储数据和程序的随机存取的半导体存储器。在另一实施例中,主存储器102表示计算机系统100的整个虚拟存储器,并还可包括耦合于计算机系统100或经由网络130进行连接的其它计算机系统的虚拟存储器。主存储器102在概念上是单个单片实体,但是在其它实施例中,主存储器102是更复杂的装置,诸如其它存储器设备和高速缓存的分层结构。例如,主存储器102可存在于多级高速缓存中,并且这些高速缓存可以被进一步按照功能划分,使得一个高速缓存保持指令,而另一个高速缓存保持由一个或多个处理器使用的非指令数据。主存储器102可以被进一步分布,并与不同CPU或CPU组相关联,如各种被称为非统一存储器存取(NUMA)计算机体系结构中的任一种中所知的那样。主存储器102包括限制数据168、数据库170和数据库管理系统172。尽管所示出的限制数据168、数据库170和数据库管理系统172被包含在计算机系统100的存储器102内,但在其它实施例中,它们中的某些或全部可以处于不同计算机系统上,并可例如经由网络130被远程访问。计算本文档来自技高网
...

【技术保护点】
一种方法,包括:接收限制命令,其中所述限制命令指定父表、父表中的主码、子表以及子表中的外码,其中所述限制命令请求在所述子表的外码中呈现所述父表中的主码的所有值;以及强制实施:在所述子表的外码中呈现所述父表中的主码的所有值。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:MG梅格瑞恩
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1