Skip to content

Commit

Permalink
Merge pull request #175 from cwr31/patch-1
Browse files Browse the repository at this point in the history
不变量->不变式
  • Loading branch information
yingang authored Jan 4, 2022
2 parents 248412b + 4c4252e commit 2185a5a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions ch7.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ ACID原子性的定义特征是:**能够在错误时中止事务,丢弃该

很不幸,这一个词就至少有四种不同的含义。

ACID一致性的概念是,**对数据的一组特定约束必须始终成立**。即**不变量(invariants)**。例如,在会计系统中,所有账户整体上必须借贷相抵。如果一个事务开始于一个满足这些不变量的有效数据库,且在事务处理期间的任何写入操作都保持这种有效性,那么可以确定,不变量总是满足的
ACID一致性的概念是,**对数据的一组特定约束必须始终成立**。即**不变式(invariants)**。例如,在会计系统中,所有账户整体上必须借贷相抵。如果一个事务开始于一个满足这些不变式的有效数据库,且在事务处理期间的任何写入操作都保持这种有效性,那么可以确定,不变式总是满足的

但是,一致性的这种概念取决于应用程序对不变量的理解,应用程序负责正确定义它的事务,并保持一致性。这并不是数据库可以保证的事情:如果你写入违反不变量的脏数据,数据库也无法阻止你(一些特定类型的不变量可以由数据库检查,例如外键约束或唯一约束,但是一般来说,是应用程序来定义什么样的数据是有效的,什么样是无效的。—— 数据库只管存储)。
但是,一致性的这种概念取决于应用程序对不变式的理解,应用程序负责正确定义它的事务,并保持一致性。这并不是数据库可以保证的事情:如果你写入违反不变式的脏数据,数据库也无法阻止你(一些特定类型的不变式可以由数据库检查,例如外键约束或唯一约束,但是一般来说,是应用程序来定义什么样的数据是有效的,什么样是无效的。—— 数据库只管存储)。

原子性,隔离性和持久性是数据库的属性,而一致性(在ACID意义上)是应用程序的属性。应用可能依赖数据库的原子性和隔离属性来实现一致性,但这并不仅取决于数据库。因此,字母C不属于ACID[^i]

Expand Down

0 comments on commit 2185a5a

Please sign in to comment.