数据库管理系统的ACID特性

数据库管理系统(DBMS)的事务都遵循着四种标准规格的约定。将这四种特性的首字母结合起来就统称为ACID特性。这些约定是所有DBMS都必须遵守的规则。


  • 原子性

原子性是指在事务结束时,其中所包含的更新要么全部执行,要么完全不执行的特性。

就像原子一样,不可分割。(这里只是狭义上的,因为理论上原子也是可以分割的)


  • 一致性

一致性指的是事务中包含的处理,要满足数据库提前设置的约束。如:主键约束或者NOT NULL 约束等。

一致性也称为完整性。


  • 隔离性

隔离性指的是保证不同事务之间互不干扰的特性,该特性保证了事务之间不会相互嵌套。此外,在某个事务中进行的更改,在该事物结束之前,对其他事务而言是不可见的。因此,即使某个事务向表中添加了记录,在没有提交之前,其他事务是看不到新添加的记录的。

对于隔离性而言,也是具有几种隔离特征的,对此,我会在下一篇详细介绍。


  • 持久性

持久性也可以称为耐久性,指的是事务(不论是提交还是回滚)一旦结束,DBMS会保证该时点的数据状态得以保存的特性,即使由于系统故障导致数据丢失,数据库也一定能通过某种手段进行恢复。

如果不能保证持久性,即使正常提交结束的事务,一旦发生了系统故障,就会导致数据丢失,一切都需要重头再来的后果。

保证持久性的方法根据实现方式不同而不同,其中最常见的就是日志管理,将事务的执行记录保存到硬盘等存储介质中,当发生故障时,可以通过日志记录的历史数据,恢复到故障发生前的状态。

转载自Nixgnaw:www.wangxin520.site

上一篇:[转载] - QWidget、QMainWindow、QDialog和QFrame的区别


下一篇:升级10.11.6后CocoaPods的坑,之前10.11.4已经安装好的,居然没了Failed to locate Homebrew!