原子性
:原子性對應的英文是
atomicity
,即表示事務中所有操作是不可再分割的原子單位。事務中所有操作要麼全
部執行成功,要麼全部執行失敗;
一致性:一致性對應的英文是
consistency
,事務執行後,資料庫狀態與其它業務規則保持一致。例如轉賬業務,無
論事務執行成功與否,參與轉賬的兩個賬號餘額之和應該是不變的;
隔離性:隔離性對應的英文是
isolation
,是指在併發操作中,不同事務之間應該隔離開來,使每個併發中的事務不
會相互干擾;
永續性:永續性對應的英文是
durability
,指的是一旦事務提交成功,事務中所有的資料操作都必須被持久化到資料
庫中,即使提交事務後,資料庫馬上崩潰,在資料庫重啟時,也必須能保證通過某種機制恢復資料 1.
事務的特性 *
原子性
‐‐ 強調的是事務的不可分割的特性 *
一致性
‐‐ 強調的是事務執行前後資料需要保證一致 *
隔離性
‐‐ 強調的是多個事務同時操作一條記錄,事務之間不能互相干擾 *
永續性
‐‐ 強調的是事務一旦結束了,資料將永久的儲存到資料庫中 2.
這些特性都是資料庫提供的
不考慮事務的隔離性會引發的問題:
1.髒讀:乙個事務讀取到了另乙個事務未提交的資料! 2.
不可重複讀:乙個事務讀取到了另乙個事務提交的資料,導致了多次查詢的結果不一致。強調的是
update
,修改記錄
的資料。 3.
虛度(幻讀):乙個事務讀取到了另乙個事務提交的資料,導致了多次查詢的結果不一致。強調是
insert
,向表中添
加一條資料。
設定事務的隔離級別(解決讀的問題) :
1.事務的隔離級別(設定資料庫的隔離級別,根據級別的不同,解決上述的讀的問題)
* read uncommitted ‐‐
什麼都解決不了
* read committed ‐‐
避免髒讀,但是不可重複讀和虛讀有可能產生
* repeatable read ‐‐
避免髒讀和不可重複讀,虛度有可能產生的
* serializable ‐‐
避免各種讀
2.4種隔離級別有安全性和效率 *
安全 serializable > repeatable read > read committed > read uncommitted *
效率 serializable < repeatable read < read committed < read uncommitted 3.
資料庫都有自己預設的隔離級別
* mysql
的資料庫,預設的隔離級別是
repeatable read
,避免髒讀和不可重複讀
事務的特性
事務具有四個特徵 原子性 atomicity 一致性 consistency 隔離性 isolation 和持續性 durability 這四個特性簡稱為 acid 特性。1 原子性 事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做 2 一致性 事 務執行的結果必須是使資料庫從乙個...
事務的特性
事務 transaction 是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是乙個不可分割的工作單位。通過事務,sql server能將邏輯相關的一組操作繫結在一起,以便伺服器保持資料的完整性。事務通常是以begin transaction開始,以commit或roll...
事務的特性
如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須支援以下四個特性 原子性 atomicity 一次事務中如果要進行多個資料操作,最終的結果要麼所有資料操作都成功,要麼所有資料操作都失敗 例如a轉賬給b100元,最終的結果要求a減少100元,b增加100元,不能出現a減少了但b沒有增加 一致性 co...