29

我对data consistencyand有点困惑data integrity。来自Oracle 数据库概念

data integrity
--------------
Business rules that dictate the standards for acceptable data. These rules
are applied to a database by using integrity constraints and triggers to
prevent invalid data entry.

来自维基百科

Consistency
-----------
Consistency states that only valid data will be written to the database.

data consistency那么和 和有什么区别data integrity呢?

提前致谢。

4

5 回答 5

34

它们不仅不同,而且是正交的。

不一致
将员工 Joe Shmoe 的部门报告为销售但未在销售部门的员工中列出 Joe Shmoe 的数据库将不一致。
它是数据库的逻辑属性,与实际数据无关

诚信
报告 jOe SaleS 是 Shmoe 部门成员的数据库将缺乏诚信。
jOe Sales 不是有效的员工姓名,Shmoe 不是有效的部门。
这在逻辑上不是无效的,但相对于管理数据内容的规则而言是无效的

于 2011-02-03T05:50:01.187 回答
9

非常粗略,我的 2c:

完整性 = 强类型,没有由数据模型和约束、外键、唯一约束等确定的非法值。

一致性 = 能够在给定的时间点仅读取已提交的数据,而不是中间步骤。

于 2011-02-03T05:26:06.693 回答
7

数据可能完全一致,也可能完全错误。数据完整性更多的是关于数据的质量,并且远远超出了数据库管理系统。DBMS 提供有助于数据完整性的数据一致性工具;它们是更大问题的一部分。完整性约束和触发器有助于确保 DBMS 不会降低(或者,如果您是悲观主义者,则进一步降低)到达数据的完整性。

解析 Oracle 语言的方法是完整性约束和触发器是一种实现定义数据完整性的业务规则子集的方法。

于 2011-02-03T05:25:20.587 回答
2

这里

数据一致性

隔离执行事务可以保持数据的一致性。存储在数据库中的数据值必须满足一定的一致性约束。例如,账户余额不应低于 100 美元。DDL 命令提供了指定此类约束的工具。每次更新数据库时,数据库系统都会检查这些约束。通常,它可以是与数据库有关的任意谓词。为了检查数据库的一致性,大多数程序员都依赖于约束,而这些通常测试成本很高。

数据的完整性

数据的完整性是指“一个地方的完整数据”。数据是表格的形式,每个表格都有一些属性。在这些情况下,我们希望确保出现在给定属性集的一个关系中的值也应该出现在另一个关系中的特定属性集(参照完整性)。数据库修改可能会导致违反完整性。当违反完整性约束时,正常程序会拒绝实际导致违反的动作。

在此处输入图像描述

您可以阅读ACID 的第一章

于 2011-02-03T06:00:47.290 回答
1
  1. 一致性:同一列中没有日期、数字和字母,但只有其中一个。这是通过定义列类型来实现的,例如。列 id 编号 (5) 表示其中不会有日期或字母,并且数字大于 99999
  2. 完整性:如果您有emplooyes 表和departments 表和department_id 列(在witch 员工正在工作中具有department_id 的含义),则不会有任何员工在departments 表中不存在的部门工作。这是由参照完整性约束形成的。
于 2017-02-23T21:49:13.757 回答