1. 程式人生 > >資料庫事務特性(ACID)

資料庫事務特性(ACID)

I.事務的4大特性(ACID)
原子性(Atomicity):原子性是指事務是一個不可分割的工作單位,事務中的操作要麼全部成功,要麼全部失敗。
一致性(Consistency):事務必須使資料庫從一個一致性狀態變換到另外一個一致性狀態。
隔離性(Isolation):多個使用者併發訪問資料庫時,資料庫為每一個使用者開啟的事務,不能被其他事務的操作資料所幹擾,多個併發事務之間要相互隔離。
永續性(Durability):永續性是指一個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。
II.不考慮事務的隔離性可能引發的問題
1.髒讀: 一個事務讀取了另外一個事務未提交的資料。
2.不可重複度:不可重複讀指在一個事務內讀取表中的某一行資料,多次讀取結果不同。
3.幻讀:虛讀(幻讀)是指在一個事務內讀取到了別的事務插入的資料,導致前後讀取不一致。
III.事務的隔離性設定語句


1.Read uncommitted:一個事務可以讀取另一個未提交事務的資料,髒讀、不可重複度和幻讀均不可避免。
2.Read committed:一個事務要等另一個事務提交後才能讀取資料,可避免髒讀,不可重複度和幻讀不可避免。
3.Repeatable read:在開始讀取資料(事務開啟)時,不再允許修改操作(即不允許其他事務的update操作),可避免髒讀和不可重複度,但無法避免幻讀。
4.Serializable :最高的事務隔離級別,在該級別下,事務序列化順序執行,可以避免髒讀、不可重複讀與幻讀。但是這種事務隔離級別效率低下,比較耗資料庫效能,一般不使用。
★注:大多數資料庫預設的事務隔離級別是Read committed,比如Sql Server , Oracle。Mysql的預設隔離級別是Repeatable read。

相關推薦

資料庫事務特性ACID

I.事務的4大特性(ACID) 原子性(Atomicity):原子性是指事務是一個不可分割的工作單位,事務中的操作要麼全部成功,要麼全部失敗。 一致性(Consistency):事務必須使資料庫從一個一致性狀態變換到另外一個一致性狀態。 隔離性(Isol

資料庫事務的四大特性ACID事務的隔離級別

事務具有4大特性,一般稱為事務的ACID屬性: 原子性: 事務是一個原子操作單元,其對資料的修改,要麼全都執行,要麼全都不執行,在操作失敗後不能對資料庫中的資料有任何影響。 一致性: 在事務開始和完成時,資料必須保持一致狀態,這意味著所有相關的資料規則都必須應用於事務

資料庫事務的四大特性ACID事務的隔離級別。

如果一個數據庫聲稱支援事務的操作,那麼該資料庫必須要具備以下四個特性: ⑴ 原子性(Atomicity)   原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾      因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影

事務管理中的四大特性ACID以及隔離級別和傳播行為

(1)原子性(Atomicity) 原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾。因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。 (2)一致性(Consistency) 一致性是指

oracle事務的四個特性ACID

失敗 會話 狀態 服務 可能 ccf 保持 16px 其他 事務產生的背景 當在PL/SQL中同時操作多個SQL語句,比如通過DML語句添加、修改或刪除數據時,如何確保數據庫數據不會因為意外而倒置錯誤數據是一個非常重要的問題。 以倉庫發料系統為例,如果某一張領料單已經領

mongodb4.0事務特性解讀

mongodb4.0即將推出,最大的亮點莫過於,開始支援‘真正的’事務了。為什麼說是真正的呢?之前的行級別原子性,兩階段提交,要麼應用場景有限,要麼實現成本太高,有點‘雞肋’。 大年三十的時候,mongodb的CTO兼聯合創始人Eliot Horowitz就發文給大家介紹了m

資料庫事務管理

概述     不管你直接採用JDBC進行資料庫事務操作,還是使用基於Spring或EJB的宣告式事務功能進行事務管理,它們最終都是使用底層資料庫的事務管理功能 完成最終任務的。資料庫事務擁有許多語義概念,它們是你進行事務程式設計和事務管理的基礎,只有掌握好資料庫事務的基礎知識

mysql 事物的4大特性ACID+事物的開啟與關閉

原子性: 即整個事物是一個整體,要麼這個事物全部執行成功,要麼全部失敗一致性: 即事物執行狀態結果 與 原資料形成統一。例如轉賬,總金額是不變的隔離性: 在併發事物中,隔離開不能互相影響,但是也不能完全隔離,會降低效率永續性:如果執行成功,資料庫崩潰,如果重新啟動,資料庫已經

資料庫事務的四個基本性質ACID

資料庫事務概念 什麼是資料庫事務? 事務(transaction)是由指邏輯上對資料的的一組操作, 這組操作要麼一次全部成功,如果這組操作全部失敗,是不可分割的一個工作單位。 資料庫事務的四個基本性質(ACID) 1. 原子性(Atomicity) 事務的原子性

微服務分散式事務實戰準備資料庫和建立第一個微服務

1)資料庫準備 在資料庫中mysql 分別建立2個數據庫forum1和forum2 forum1 下建立表block forum2下建立表Theme sql程式碼如下: 1 資料庫1Forum1: CREATE DATABASE IF NOT EXISTS forum1; USE forum

8.spring:事務管理:Spring的資料庫程式設計、程式設計式事務管理

Spring的資料庫程式設計  Spring框架提供了JDBC模板模式------>JdbcTemplate 簡化了開發,在開發中並不經常是使用 實際開發更多使用的是Hibernate和MyBatis 1).Spring JDBCp配置 如果使用Spring JDBC操作資料庫,要有

SQL Server 2008/2012 完整資料庫備份+差異備份+事務日誌備份 資料庫完整還原

還原方案 資料庫級(資料庫完整還原) 還原和恢復整個資料庫。資料庫在還原和恢復操作期間會處於離線狀態。SQL SERVER不允許使用者備份或還原單個表。還原方案是指從一個或多個備份中還原資料、繼而恢復資料庫的過程。 不同恢復模式所支援的各種還原方案 簡單恢復

MySQL資料庫事務例項模擬銀行轉賬

在資料庫系列文章中[MySQL資料庫事務基本操作](http://blog.csdn.net/fengpojian/article/details/73571983) 介紹了MySQL資料庫基本的事務操作。這篇文章將介紹一個例項來更好的理解學習MySQL資料庫事

事務的基本要素ACID

資料庫事務(Transanction)正確執行的四個基本要素: 1、原子性(Atomicity):事務開始後所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間環節。事務執行過程中出錯,會回滾(Rollback)到事務開始前的狀態,所有的操作就像沒有發生一樣。也就是說事務是一個不可分割的

MySQL資料庫詳解MySQL的事務隔離剖析

提到事務,你肯定不陌生,和資料庫打交道的時候,我們總是會用到事務。最經典的例子就是轉賬,你要給朋友小王轉 100 塊錢,而此時你的銀行卡只有 100 塊錢。 轉賬過程具體到程式裡會有一系列的操作,比如查詢餘額、做加減法、更新餘額等,這些操作必須保證是一體的,不然等程式查完之後,還沒做減法之前,你這 100 塊

特性property

clas 設定 之前 封裝 方法 使用 peer print 存放位置 6.4 特性(property) 1 什麽是特性property property是一種特殊的屬性,訪問它時會執行一段功能(函數)然後返回值 import math class Circle:

bash基礎特性1

defaults history 緩沖區 記錄 歷史 所有的環境變量可以通過 ehco $# 查看 #為環境變量 bash的基礎特性:(1)命令歷史 history 環境變量: HISTSIZE:命令歷史記錄的條數 HISTFILE;~/.bash_history HIST

java8新增特性---Lambda表達式

使用 watermark 成員變量 arr mar .net [] size mark Lambda表達式也成為閉包,是java語言層次上的改變,Lambda同意把函數作為一個方法的參數(函數作為參數傳遞進方法中),或者把代碼看成數據。函數

數據庫的事務隔離

級別 缺少 總結 包括 順序執行 同一行 oracl 做了 server   一、簡述:    在數據庫操作中,為了效保證並發讀取數據的正確性,提出的事務隔離級別。數據庫事務的隔離級別4個,由低到高依次為:       Read uncommitted(未授權讀取、讀未提交

ECMAScript6 | 特性部分

front script dup 結束 全部 默認值 -- 兼容 ada 新特性概覽 參考文章:http://www.cnblogs.com/Wayou/p/es6_new_features.html 這位前輩寫的很好,建議深入學習 —————————————————