資料庫的事務控制和併發控制

2021-06-15 21:26:40 字數 1357 閱讀 6966

資料庫的事務控制和併發控制

1.事務控制

事務是併發控制的基本單位,也是恢復的基本單位。在sql中支援事務的概念。所謂事務,是使用者定義的乙個操作序列(集合),這些操作要麼都做,要麼乙個都 不做,是乙個不可分割的整體。乙個事務通常以begin transaction開始,以commit或rollback結束。

sql提供了事務提交和事務撤消兩種命令:

(1)事務提交:事務提交的命令為:

commit [work]

事務提交標誌著對資料庫的某種應用操作成功地完成,所有對資料庫的操作都必須作為事務提交給系統時才有效。事務一經提交就不能撤消。

(2)事務撤消:事務撤消的命令是:

rollback [work]

事務撤消標誌著相應事務對資料庫操作失敗,因而要撤消對資料庫的改變,即要「回滾」到相應事務開始時的狀態。

當系統非正常結束時(如掉電、系統宕機),將自動執行rollback命令

sql還提供了自動提交事務的機制,其命令為:

set auto commit on

其對應的人工工作方式命令為:

set auto commit off

一旦規定了自動提交事務方式,則系統將每條sql命令視為乙個事務,並在命令成功執行完成時自動地完成事務提交。

2.併發控制

資料庫作為共享資源,允許多個使用者程式並行地訪問資料。當多個使用者並行地運算元據庫時,需要通過併發控制對它們加以協調、控制,以保證併發操作的正確執行,並保證資料庫的一致性。

在sql中,併發控制採用封鎖技術實現,當乙個事務欲對某個資料物件操作時,可申請對該物件加鎖,取得對資料物件的一定控制,以限制其他事務對該物件的操作。其語句格式為:

|share |

lock table 表名(或表名集合)in |exclusve |mode [nowait]

|share update|

其中,表名(或表名集合)中指出封鎖物件,若為多個表名,則各個表名間以「,」相隔;任選項nowait表示多個使用者要求封鎖相同的關係時,後來提出的要求會被立即退回去,否則會等待該資源釋放。

share表示共享封鎖方式;exclusive表示獨佔封鎖方式;share updae表示共享更新封鎖方式。其中共享封鎖方式允許其他事務讀同一資料,但防止其他事務對已封鎖的表進行更新,該鎖主要防止在表的兩次查詢之間對該錶 的改動;共享更新封鎖share update是乙個行封鎖機制,它可改善表級封鎖的並行性,它能允許併發事務讀和修改乙個表中的不同的行;獨佔封鎖方式exclusive禁止其他事務獲 得乙個共享鎖且禁止其他事務執行任何資料操作語句,即一旦某個執行事務對某個資料物件施加了排它鎖,則其他任何事務都不能再對該資料物件施加任何方式的 鎖,只有處於等待狀態。如果不想無限等待,則選擇nowait。  

資料庫 事務 併發控制技術

事務指的是連續的對資料庫操作的集合,對於乙個事務中的所有的資料庫操作,要麼全部成功,要麼全部失敗。允許多個使用者同時使用的資料可系統為多使用者資料庫系統。多使用者資料庫系統的特點是 在同一時刻,併發執行的事務數量可以達到成千上萬個。多事務執行方式有三種 1 事務的序列執行 每個時刻只有乙個事務執行,...

資料庫事務的併發控制學習講解

資料庫是共享資源,通常有許多個事務同時在執行。當多個事務併發地訪問資料庫時就會產生同時讀取和 或修改同一資料的情況。若對併發操作不加控制就可能會訪問和儲存不正確的資料,破壞資料庫的一致性。所以資料庫管理系統必須提供併發控制機制。併發操作帶來的資料不一致性包括三類 丟失修改 不可重複讀和讀 髒 夕資料...

資料庫併發控制

資料庫併發控制 1 在資料庫中為什麼要併發控制?答 資料庫是共享資源,通常有許多個事務同時在執行。當多個事務併發地訪問資料庫時就會產生同時讀取和 或修改同一資料的情況。若對併發操作不加控制就可能會訪問和儲存不正確的資料,破壞資料庫的一致性。所以資料庫管理系統必須提供併發控制機制。2 併發操作可能會產...