分布式数据库中基于本地检查策略的完整性检查方法
Improved Integrity Constraints Checking in Distributed Databases by Exploiting Local Checking
-
摘要: 数据的有效性、准确性和语义在现代数据库应用中是非常重要的。数据库中有意义的数据通常用完整性约束的形式来描述。完整性约束依赖于应用域的性质并且通常满足数据一致性的要求。维护数据使其满足完整性约束是必不可少的要求。因为如果数据不完整查询的结果是不可信的。数据库中拥有大量快速演化的数据,这使得每一次更新都进行完备的检查耗时太多而不可行。因此数据库管理系统需要被扩展以使其能够自动验证更新是否会破坏数据库的完整性。我们寻求的方法在这里被称为完整性约束的化简。化简是指根据初始约束产生一些完整性检验。满足这些初始约束意味着更新状态满足初始约束。化简处理的关键在于尽可能获取易于评价的完整性检验。这样, 化简技术就可以评估约束的代价。
完整性约束检查是确保数据库更新后完整性约束被满足的过程。完整性约束是用来表示一个数据库一致性状态的重要工具,这种状态表示数据库中包含的数据准确而且合法。检查数据库状态一致性通常要在数据库上执行鉴别数据库是否满足约束的完整性检验,一个简单的方法是执行更新操作后检查数据库新状态是否满足完整性约束。这种方法被称为非理性的强制检查,此方法开销昂贵且不切实际,而且可能引入排他性的处理代价。这种约束检查的非理性的强制机制在分布式数据库环境中会变得更糟,因为这种检查需要进行数据传输和计算,为此需要复杂的算法来确定最有效的方案。在不满足约束的情况下,允许一个更新在提交时执行中止操作效率也很低,因为需要在所有参与此次更新的站点上执行回滚(rollback)和恢复(recovery)操作。
在分布式数据库系统中进行完整性约束检查的主要问题是如何获取一系列完整性检验,这些验证将减少数据传输量、访问量以及参与约束检查处理的站点数目。大多现有的方法从拥有充分性属性的初始完整性约束中获取完整性检验,因为充分性检验已被证实比完全性检验执行开销更少,理由是它在网络上传输的数据更少且通常能在目标站点上被评估,例如:仅有一处站点参与检查处理的时候就实现了本地检查。现有的方法假设一次更新操作在一个站点执行,在该站点上更新操作的关系是本地的。此假设并不总是成立。如果一次更新操作在一个不同的站点被提交,这种充分性检验将不再是本地的,因为它不可避免地要从远程站点访问数据。所以,需要一种本地检查方法,该方法能执行本地检查而无视更新操作提交的站点位置。
本文提出了一种尽可能利用存储在目标站点上的本地信息在分布式数据库中进行完整性约束检查的方法。这种简化方法提供支持检验并且整合了前人提出的完全性检验和充分性检验。它使用初始的完整性约束、更新模板和其它完整性约束条件来生成支持检验。这种约束简化的方法采用置换技术和合并规则来获取检验。
论文用三个目的不同的实验来评估所提出的方法。第一个实验目的是通过网络传输数据量来分析约束检查过程。网络传输数据量被认为是影响检查机制性能的重要因素。从实验结果来看,本地检查能够选择现有工作所建议的充分性验证,而且能够根据目标站点的可用信息评估充分性验证、完全性验证和支持性验证。更为重要的是,我们证明了在多数情况下支持性验证有利于分布式数据库。支持本地约束检查的更新操作表现出了这个特点。第二个实验目的是根据约束检查的开销来对比不同策略。显然,与现有的方法相比,我们提出的策略在大多数更新操作中具有更少的开销。这归因于多数分布式数据库上一致性检查的工作都在本地站点上进行。实验三的目的是通过本地的约束检查所占百分比来分析约束检查。从其结果来看,对于所有更新操作,我们提出的策略占有最高的百分比。这意味着在大多数情况下,考虑不同的完整性验证时,本地完整性检查都可以实现并且与更新操作的发生地无关。所以约束检查处理的效率有所提高。Abstract: Most of the previous studies concerning checking the integrity constraints in distributed database derive simplified forms of the initial integrity constraints with the sufficiency property, since the sufficient test is known to be cheaper than the complete test and its initial integrity constraint as it involves less data to be transferred across the network and can always be evaluated at the target site (single site). Their studies are limited as they depend strictly on the assumption that an update operation will be executed at a site where the relation specified in the update operation is located, which is not always true. Hence, the sufficient test, which is proven to be local test by previous study, is no longer appropriate. This paper proposes an approach to checking integrity constraints in a distributed database by utilizing as much as possible the local information stored at the target site. The proposed approach derives support tests as an alternative to the existing complete and sufficient tests proposed by previous researchers with the intention to increase the number of local checking regardless the location of the submitted update operation. Several analyses have been performed to evaluate the proposed approach, and the results show that support tests can benefit the distributed database, where local constraint checking can be achieved.