更新時間:2022-09-29 來源:黑馬程序員 瀏覽量:
事務(wù)有很嚴格的定義,它必須同時滿足4個特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability),也就是人們俗稱的ACID標準,接下來就針對這4個特性進行講解,具體如下。
原子性是指一個事務(wù)必須被視為一個不可分割的最小工作單元,只有事務(wù)中所有的數(shù)據(jù)庫操作都執(zhí)行成功,才算整個事務(wù)執(zhí)行成功,事務(wù)中如果有任何一個SQL語句執(zhí)行失敗,已經(jīng)執(zhí)行成功的SQL語句也必須撤銷,數(shù)據(jù)庫的狀態(tài)退回到執(zhí)行事務(wù)前的狀態(tài)。
一致性是指事務(wù)將數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)橄乱环N一致的狀態(tài)。例如,在表中有一個字段為姓名,具有唯一約束,即姓名不能重復,如果一個事務(wù)對姓名進行了修改,使姓名變得不唯一了,這就破壞了事務(wù)的一致性要求,如果事務(wù)中的某個動作失敗了,系統(tǒng)可以自動撤銷事務(wù),返回初始化的狀態(tài)。
隔離性還可以稱為并發(fā)控制、可串行化、鎖等,當多個用戶并發(fā)訪問數(shù)據(jù)庫時,數(shù)據(jù)庫為每一個用戶開啟的事務(wù),不能被其他事務(wù)的操作數(shù)據(jù)所干擾,多個并發(fā)事務(wù)之間要相互隔離。
事務(wù)一旦提交,其所做的修改就會永久保存到數(shù)據(jù)庫中,即使數(shù)據(jù)庫發(fā)生故障也不應該對其有任何影響。需要注意的是,事務(wù)的持久性不能做到100%的持久,只能從事務(wù)本身的角度來保證永久性,而一些外部原因?qū)е聰?shù)據(jù)庫發(fā)生故障,如硬盤損壞,那么所有提交的數(shù)據(jù)可能都會丟失。
需要注意的是,針對事務(wù)的4個特性有個簡單的印象就可以了,不必太過斟酌,事務(wù)的操作才是重點掌握的內(nèi)容。