ACID理论

背景

ACID主要是事务中的概念,分别是

A(Atomicit):原子性

C(Consistency):一致性

I(Isolation):隔离性

D(Durability):持久性

A原子性

主要是在一个事务中,“要么全部完成、要么全部不完成”

经典的银行转账案例:

A:从A账户去一百

B:从存入100

AB是在一个事务里面,不能只有A|B其中一个成功,不然银行账户对不上金额

C一致性

一致性代表:事务开始前和事务结束之后,数据库的一致性没有改变,事务中的数据一致性

20240330202853

I隔离性

隔离性代表:多个并发事务同时拥有对数据进行读书和修改的能力,如果⼀个事务要访问的数
据正在被另外⼀个事务修改,只要另外⼀个事务未提交,则它所访问的数据就不受未提交事务的影响

D持久性

持久性代表:事务处理结束后,对数据的修改是永久的,即便系统故障也不会丢失

优点

1、数据一致性:ACID 确保数据在任何事务执行后保持一致和准确。

2、数据完整性:ACID 通过确保对数据库的任何更改都是永久性的,并且不会丢失,从而维护了数据的完整性。

3、并发控制:ACID 通过防止事务之间的干扰来帮助管理并发创建的多个事务。

4、恢复:ACID 确保在发生任何故障或崩溃时,系统可以将数据恢复到故障或崩溃点。

缺点

1、性能:ACID 会导致系统性能开销,因为它们需要额外的处理来保障数据的一致性和完整性。

2、可伸缩性:ACID 可能会在多个事务并发产生的大型分布式系统中导致可伸缩性问题。

3、复杂性:ACID 会增加系统的复杂性,并且需要大量的专业知识和资源。

总的来说,DBMS 中 ACID 的实现带来优势大于劣势。它们提供可靠且一致的数据处理方法管理,确保数据的完整性、准确性和可靠性。但是,在某些情况下,实现 ACID 的开销会导致性能和可伸缩性问题。因此,权衡 ACID 的优势与系统的个性化需求(性能、复杂性、可伸缩性)也是非常重要