您好,登錄后才能下訂單哦!
小編給大家分享一下關系型數據庫系統事務的ACID特性有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
關系型數據庫系統事務的ACID特性:1、原子性;事務里的所有操作要么全部做完,要么都不做。2、一致性;數據庫要一直處于一致的狀態。3、獨立性;并發的事務之間不會互相影響。4、持久性;一旦事務提交后,它所做的修改將會永久的保存在數據庫上。
事務是關系型數據庫的核心,關系型數據庫之所以在過去這幾十年里蓬勃發展,和它對事務的支持密不可分。但所謂成也蕭何,敗也蕭何,隨著數據量的爆炸式增長,特別是近幾年的大數據的蓬勃發展,關系型數據庫的事務成為了互聯網應用的性能瓶頸,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特性有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。