ACID理论
ACID理论
背景
ACID主要是事务中的概念,分别是
A(Atomicit):原子性
C(Consistency):一致性
I(Isolation):隔离性
D(Durability):持久性
A原子性
主要是在一个事务中,“要么全部完成、要么全部不完成”
经典的银行转账案例:
A:从A账户去一百
B:从存入100
AB是在一个事务里面,不能只有A|B其中一个成功,不然银行账户对不上金额
C一致性
一致性代表:事务开始前和事务结束之后,数据库的一致性没有改变,事务中的数据一致性
I隔离性
隔离性代表:多个并发事务同时拥有对数据进行读书和修改的能力,如果⼀个事务要访问的数
据正在被另外⼀个事务修改,只要另外⼀个事务未提交,则它所访问的数据就不受未提交事务的影响
D持久性
持久性代表:事务处理结束后,对数据的修改是永久的,即便系统故障也不会丢失
优点
1、数据一致性:ACID 确保数据在任何事务执行后保持一致和准确。
2、数据完整性:ACID 通过确保对数据库的任何更改都是永久性的,并且不会丢失,从而维护了数据的完整性。
3、并发控制:ACID 通过防止事务之间的干扰来帮助管理并发创建的多个事务。
4、恢复:ACID 确保在发生任何故障或崩溃时,系统可以将数据恢复到故障或崩溃点。
缺点
1、性能:ACID 会导致系统性能开销,因为它们需要额外的处理来保障数据的一致性和完整性。
2、可伸缩性:ACID 可能会在多个事务并发产生的大型分布式系统中导致可伸缩性问题。
3、复杂性:ACID 会增加系统的复杂性,并且需要大量的专业知识和资源。
总的来说,DBMS 中 ACID 的实现带来优势大于劣势。它们提供可靠且一致的数据处理方法管理,确保数据的完整性、准确性和可靠性。但是,在某些情况下,实现 ACID 的开销会导致性能和可伸缩性问题。因此,权衡 ACID 的优势与系统的个性化需求(性能、复杂性、可伸缩性)也是非常重要