資料庫事務的特性的理解

2021-09-11 08:24:00 字數 1222 閱讀 3990

事務是使用者定義的乙個資料操作序列,是乙個完整的工作單元,要麼全部執行,要麼全部不執行。

事務具有四大特性:原子性、隔離性、一致性、永續性

事務所包含的所有操作,要麼全部執行,要麼全部回滾不執行。

事務的一致性是指事務的執行不能破壞資料庫資料的完整性和一致性,乙個事務在執行之前和執行之後,資料庫都必須處以一致性狀態。

比如:如果從a賬戶轉賬到b賬戶,不可能因為a賬戶扣了錢,而b賬戶沒有加錢

事務的隔離性是指在併發環境中,併發的事務是互相隔離的,乙個事務的執行不能被其它事務干擾。也就是說,不同的事務併發操作相同的資料時,每個事務都有各自完整的資料空間。

乙個事務內部的操作及使用的資料對其它併發事務是隔離的,併發執行的各個事務是不能互相干擾的。

併發可能存在的問題:

1.髒讀:事務a修改了資料,但未提交,事務b讀到了事務a未提交的更新結果,如果事務a提交失敗,那麼事務b讀到的就是髒資料。

2.不可重複讀:在同乙個事務中,對同乙份資料的讀取結果不一致,比如:事務b在事務a提交前後,讀取資料的結果可能不一樣。

3.幻讀:在同乙個事務中,同乙個查詢多次返回的結果不一致。比如:事務a新增了一條記錄,事務b在事務a提交前後各執行了一次查詢操作,發現後一次比前一次多了一條記錄。

事務的四個隔離級別:

read uncommitted:最低的隔離級別,什麼都不需要做,乙個事務可以讀到另乙個事務未提交的結果。所有的併發事務問題都會發生。

read committed:只有在事務提交後,其更新結果才會被其他事務看見。可以解決髒讀問題。

repeated read:在乙個事務中,對於同乙份資料的讀取結果總是相同的,無論是否有其他事務對這份資料進行操作,以及這個事務是否提交。可以解決髒讀、不可重複讀。

serialization:事務序列化執行,隔離級別最高,犧牲了系統的併發性。可以解決併發事務的所有問題。

4種事務隔離級別從上往下,級別越高,併發性越差,安全性就越來越高。

事務一旦提交,資料庫中的資料必須被永久的儲存下來。即使遇到伺服器系統崩潰或伺服器宕機等故障,只要資料庫重啟,資料庫中的資料就會恢復到事務執行完之後的狀態。

隔離性是由dbms的併發控制子系統實現的;

永續性是由dbms的恢復管理子系統實現的;

確保單個事務的一致性是編寫事務的應用程式設計師的職責;

確保原子性是資料庫本身的職責,由dbms的事務管理子系統來實現。

資料庫事務的特性

事務的 原子性 一致性 分離性 永續性 1 原子性 事務的原子性指的是,事務中包含的程式作為資料庫的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。事務的原子性要求,如果把乙個事務可看作是乙個程式,它要麼完整的被執行,要麼完全不執行。就是說事務的操縱序列或者完全...

資料庫 事務的特性

事務是指對系統進行的一組操作,為了保證系統的完整性,事務需要具有acid特性,具體如下 1.原子性 atomic 乙個事務包含多個操作,這些操作要麼全部執行,要麼全都不執行。實現事務的原子性,要支援回滾操作,在某個操作失敗後,回滾到事務執行之前的狀態。回滾實際上是乙個比較高層抽象的概念,大多數db在...

資料庫事務的特性

一 什麼是事務 事務是應用程式中一系列邏輯相關的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性 乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做。事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中乙個步驟失敗,將發生回滾操作,撤消之...