1. 程式人生 > >關係型資料庫中的事務的特性

關係型資料庫中的事務的特性

關係型資料庫遵循ACID規則

事務在英文中是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規則 事務在英文中是transaction,和現實世界中的交易很類似,它有如下四個特性: 1、A (Atomicity) 原子性 原子性很容易理解,也就是說事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個

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

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

關係型資料庫的jsonfield欄位的優劣

本人並非專業,開發經驗也不太足,有一次在弄一個user資料表時,需要增加一些欄位,又懶得去修改資料,就索性把這些屬性封裝在一個類中,序列化為json資料,存放在資料庫的一個欄位中了,後來,發現這麼做至少有以下幾點好處:       &nbs

資料庫關係型資料庫實體間的關係

【資料庫】關係型資料庫中的關係 關係分類 實際應用 關係分類 在關係型資料庫中,按照x對x的分類,可以分為三種,分別為一對一、一對多、多對多。 實際應用 我使用的是MySQL的視覺化工具Workbench,在建立新的Model EER

關係型資料庫常用的表設計

1.字典表(sys_dict) 作用:用於存放多組值不變的基礎資料,只對系統提供查詢功能. *記錄的新增、更新、刪除都是通過手動進行操作. *其中dict_code為dict_title的編碼,相同dict_title的記錄為同一組基礎資料,每組基礎資料下又有多對dict_value與d

從示例揭開非關係型資料庫Redis事務管理的面紗

  Redis也提供事務這樣的概念,但是相對於關係型資料庫而言,Redis目前對事務提供的是比較簡單的,Redis只能保證一個Client發起的事務命令可以連續的執行,而中間不會插入其他的Client命令,在一個Redis事務中,Redis會將所有的命令放到一個佇列中,當執行執行命

資料庫事務詳解!

首先說一下什麼是事務! 資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為一個要麼全部成功要麼全部失敗的單元,可

資料庫事務理解

一、定義 事務一系列操作的集合。也可以理解為集合中的一系列操作協作完成事務。 二、特性 事務的特性也成為ACID特性。即原子性(Atomicity)、一致性(Consistency)、隔離性(Is

關係型資料庫基本概念(行列)

  關係型資料庫中基本概念: 1、列:行的組成單位,一個行可以包含一個或多個列,每個列都有其型別、長度與所儲存的值,該值為欄位值。 2、行:行也就是記錄,一行代表一條完整的資訊。 舉例: 姓名 身高 體重 張三 178 60--這是一行,代表一個人的基本資訊,也

資料庫事務的概念淺析

☆事務的概念   事務指邏輯上的一組操作,組成這組操作的各個單元,要不全部成功,要不全部不成功。例如:A—>B轉帳,對應於如下兩條sql語句: update from account set money=money+100 where name='b';

【面經】面試官問我:資料庫事務的隔離級別有哪些?各自有什麼特點?然而。。。

## 寫在前面 > 上週,一名讀者出去面試,面試官問了他有關於資料庫中事務的隔離級別的問題。然而他回答的比面試官想要的還要6。。。 > > 關注 **冰河技術** 微信公眾號,檢視更多 **面經** 與 超硬核 **專題** 技術文章。 ## 事務隔離級別 其實,面試官問的這個問題相對

資料庫事務控制語句

1、提交事務(commit) 說明:把物件資料庫的修改操作,真實在底層執行,只有提交事務以後,資料才真實存在 create table emp( id number(4) name varchar2(20) ); 首先表插入資料: insert into emp values(1,'his');

淺析Postgres的並發控制(Concurrency Control)與事務特性(上)(轉)

工作原理 abort 保持 text 我認 理解 刪除 heap 普通 這篇博客將MVCC講的很透徹,以前自己懂了,很難給別人講出來,但是這篇文章給的例子就讓人很容易的復述出來,因此想記錄一下,轉載給更多的人 轉自:https://www.cnblogs.com/fl

大資料分析使用關係型資料庫的關鍵點

相當一部分大資料分析處理的原始資料來自關係型資料庫,處理結果也存放在關係型資料庫中。原因在於超過99%的軟體系統採用傳統的關係型資料庫,大家對它們很熟悉,用起來得心應手。 在我們正式的大資料團隊,數倉(資料倉庫Hive+HBase)的資料收集同樣來自Oracle或MySql,處理後的統計結果和明細,儘管儲存

資料庫事務隔離級別

資料庫是要被廣大的使用者所執行的,不同的使用者在同時執行不同的一組命令(事務),資料庫要保證這些事務之間不能互相影響。 在開始之前我們要明白幾個概念: 髒讀: 假如現在有2個並行的事務A和事務B。 此時事務A將 x的值更改成x1,但是尚未提交。但是事務B此時讀取x的值讀取到了x1,然後呢。事

JDBC:資料庫事務

計算機中的事務 JDBC中的事務(關係型資料庫中):    1.事務的開啟:start transaction,有些資料庫圖形化軟體是預設開啟了事務的,無需再手動開啟,這樣執行增,刪,改語句時,才會有執行結果,即能執行成功.(即只有在開啟事務的前提下,增刪改sql語句才能

淺析Postgres的併發控制(Concurrency Control)與事務特性(下)

上文我們討論了PostgreSQL的MVCC相關的基礎知識以及實現機制。關於PostgreSQL中的MVCC,我們只講了元組可見性的問題,還剩下兩個問題沒講。一個是"Lost Update"問題,另一個是PostgreSQL中的序列化快照隔離機制(SSI,Serializable Snapshot Isola

Spring事務的(特性,傳播行為,隔離級別,不合理現象,丟失更新,案例..)

事務 事務的特性4個: 原子性   事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。通常,與某個事務關聯的操作具有共同的目標,並且是相互依賴的。如果系統只執行這些操作的一個子集,則可能會破壞事務的總體目標。原子性消除了系統處理操作子集的可能性

資料庫的四大特性以及事務的隔離級別,七種傳播行為

資料庫的四大特性: 1.原子性 2.一致性 3.隔離性 4.永續性 其中不考慮事務的隔離性會出現下面幾種情況: (1)髒讀 在一個事務處理過程裡讀取了另一個未提交的事務中的資料。 當一個事務正在多次修改某個資料,而在這個事務中這多次的修改都還未提交,這時一個併

資料庫,什麼是事務,可以簡述,事務機制如何實現的嗎

資料庫事務是指作為單個邏輯單元執行的一系列操作,要麼完全執行,玩麼完全地不執行。事務的四個特性(ACID):原子性、一致性、隔離性和永續性。 事務實現原理(網友答案,百度不好找):事務開始之後,事務所有的操作都陸續寫到事務日誌中。寫到日誌中的操作,一般有兩種。一種是針對資料的操作,一種是