原子性(Atomicity)
原子性是指在事务结束时,其中所包含的更新处理要么全部执行,要
么完全不执行,也就是要么占有一切要么一无所有。例如,在之前的例
子中,在事务结束时,绝对不可能出现运动 T 恤的价格下降了,而 T 恤
衫的价格却没有上涨的情况。该事务的结束状态,要么是两者都执行了
(COMMIT),要么是两者都未执行(ROLLBACK)。
从事务中途停止的角度去考虑,就能比较容易理解原子性的重要性了。
由于用户在一个事务中定义了两条 UPDATE 语句,DBMS 肯定不会只执
行其中一条,否则就会对业务处理造成影响。
一致性(Consistency)
一致性指的是事务中包含的处理要满足数据库提前设置的约束,如主
键约束或者 NOT NULL 约束等。例如,设置了 NOT NULL 约束的列是
不能更新为 NULL 的,试图插入违反主键约束的记录就会出错,无法执行。
对事务来说,这些不合法的 SQL 会被回滚。也就是说,这些 SQL 处理会
被取消,不会执行。
一致性也称为完整性
■隔离性(Isolation)
隔离性指的是保证不同事务之间互不干扰的特性。该特性保证了事务
之间不会互相嵌套。此外,在某个事务中进行的更改,在该事务结束之前,
对其他事务而言是不可见的。因此,即使某个事务向表中添加了记录,在
没有提交之前,其他事务也是看不到新添加的记录的。
■持久性(Durability)
持久性也可以称为耐久性,指的是在事务(不论是提交还是回滚)结
束后,DBMS 能够保证该时间点的数据状态会被保存的特性。即使由于系
统故障导致数据丢失,数据库也一定能通过某种手段进行恢复。
如果不能保证持久性,即使是正常提交结束的事务,一旦发生了系统
故障,也会导致数据丢失,一切都需要从头再来。
保证持久性的方法根据实现的不同而不同,其中最常见的就是将事务
的执行记录保存到硬盘等存储介质中(该执行记录称为日志)。当发生故
障时,可以通过日志恢复到故障发生前的状态。
2151

被折叠的 条评论
为什么被折叠?



