全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

Java數(shù)據(jù)庫(kù)操作常識(shí):事務(wù)的四大特性

更新時(shí)間:2022-09-29 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  事務(wù)有很?chē)?yán)格的定義,它必須同時(shí)滿足4個(gè)特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability),也就是人們俗稱(chēng)的ACID標(biāo)準(zhǔn),接下來(lái)就針對(duì)這4個(gè)特性進(jìn)行講解,具體如下。

  1.原子性

  原子性是指一個(gè)事務(wù)必須被視為一個(gè)不可分割的最小工作單元,只有事務(wù)中所有的數(shù)據(jù)庫(kù)操作都執(zhí)行成功,才算整個(gè)事務(wù)執(zhí)行成功,事務(wù)中如果有任何一個(gè)SQL語(yǔ)句執(zhí)行失敗,已經(jīng)執(zhí)行成功的SQL語(yǔ)句也必須撤銷(xiāo),數(shù)據(jù)庫(kù)的狀態(tài)退回到執(zhí)行事務(wù)前的狀態(tài)。

  2.一致性

  一致性是指事務(wù)將數(shù)據(jù)庫(kù)從一種狀態(tài)轉(zhuǎn)變?yōu)橄乱环N一致的狀態(tài)。例如,在表中有一個(gè)字段為姓名,具有唯一約束,即姓名不能重復(fù),如果一個(gè)事務(wù)對(duì)姓名進(jìn)行了修改,使姓名變得不唯一了,這就破壞了事務(wù)的一致性要求,如果事務(wù)中的某個(gè)動(dòng)作失敗了,系統(tǒng)可以自動(dòng)撤銷(xiāo)事務(wù),返回初始化的狀態(tài)。

1664418129557_事務(wù)的4大特性.jpg

  3.隔離性

  隔離性還可以稱(chēng)為并發(fā)控制、可串行化、鎖等,當(dāng)多個(gè)用戶并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)為每一個(gè)用戶開(kāi)啟的事務(wù),不能被其他事務(wù)的操作數(shù)據(jù)所干擾,多個(gè)并發(fā)事務(wù)之間要相互隔離。

  4.持久性

  事務(wù)一旦提交,其所做的修改就會(huì)永久保存到數(shù)據(jù)庫(kù)中,即使數(shù)據(jù)庫(kù)發(fā)生故障也不應(yīng)該對(duì)其有任何影響。需要注意的是,事務(wù)的持久性不能做到100%的持久,只能從事務(wù)本身的角度來(lái)保證永久性,而一些外部原因?qū)е聰?shù)據(jù)庫(kù)發(fā)生故障,如硬盤(pán)損壞,那么所有提交的數(shù)據(jù)可能都會(huì)丟失。

  需要注意的是,針對(duì)事務(wù)的4個(gè)特性有個(gè)簡(jiǎn)單的印象就可以了,不必太過(guò)斟酌,事務(wù)的操作才是重點(diǎn)掌握的內(nèi)容。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!