關係型資料庫系統事務的ACID特性:1、原子性;事務裡的所有操作要麼全部做完,要麼都不做。 2、一致性;資料庫要一直處於一致的狀態。 3、獨立性;並發的事務之間不會互相影響。 4.持久性;一旦交易提交後,它所做的修改將會永久的保存在資料庫上。
本教學操作環境:windows7系統、mysql5.8版、Dell G3電腦。
(推薦教學:mysql影片教學)
交易是關係型資料庫的核心,關係型資料庫之所以在過去這幾十年裡蓬勃發展,和它對事務的支持密不可分。但所謂成也蕭何,敗也蕭何,隨著資料量的爆炸性增長,特別是近幾年的大數據的蓬勃發展,關係型資料庫的事務成為了網路應用的效能瓶頸,NoSQL正是摒棄了關係型資料庫事務的某些屬性,使得對於某一類特殊應用,其效能是關係型資料庫的多倍。
下面先說說什麼是事務吧,事務在英文中是transaction,和現實世界中的交易很類似,它有如下四個特性:
1、A (Atomicity) 原子性
原子性很容易理解,也就是說事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。
例如銀行轉賬,從A帳戶轉100元至B帳戶,分為兩個步驟:1)從A帳戶取100元;2)存入100元至B帳戶。這兩步驟不是一起完成,就是一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。
2、C (Consistency) 一致性
一致性也比較容易理解,也就是說資料庫要一直處於一致的狀態,事務的運作不會改變資料庫原本的一致性約束。
例如現有完整性限制a b=10,如果一個事務改變了a,那麼必須改變b,使得事務結束後依然滿足a b=10,否則事務失敗。
3、I (Isolation) 獨立性
所謂的獨立性是指並發的事務之間不會互相影響,如果一個事務要存取的資料正在被另外一個事務修改,只要另外一個事務未提交,它所存取的資料就不受未提交事務的影響。
例如現有有個交易是從A帳戶轉100元至B帳戶,在這個交易還未完成的情況下,如果此時B查詢自己的帳戶,是看不到新增加的100元的。
4、D (Durability) 持久性
持久性是指一旦交易提交後,它所做的修改將會永久的保存在資料庫上,即使出現宕機也不會遺失。
還是舉上面那個例子,如果轉帳成功了,而此時資料庫宕機了,重啟後,還是能夠看到轉帳成功後的結果。
更多程式相關知識,請造訪:程式設計教學! !
以上是關係型資料庫系統事務的ACID特性是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!