首頁 > 常見問題 > 主體

關係型資料庫系統事務的ACID特性是什麼

青灯夜游
發布: 2023-01-13 00:30:51
原創
6499 人瀏覽過

關係型資料庫系統事務的ACID特性:1、原子性;事務裡的所有操作要麼全部做完,要麼都不做。 2、一致性;資料庫要一直處於一致的狀態。 3、獨立性;並發的事務之間不會互相影響。 4.持久性;一旦交易提交後,它所做的修改將會永久的保存在資料庫上。

關係型資料庫系統事務的ACID特性是什麼

本教學操作環境: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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!