事務(wù)就是將數(shù)據(jù)庫(kù)從一種一致?tīng)顟B(tài)轉(zhuǎn)換為另一種一致?tīng)顟B(tài)。事務(wù)可由一條非常簡(jiǎn)單的SQL語(yǔ)句組成, 也可以由一組復(fù)雜的SQL語(yǔ)句組成。事務(wù)是訪問(wèn)并更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元。 在事務(wù)中的操作, 要么都做修改, 要么都不做, 這就是事務(wù)的目的, 也是事務(wù)模型區(qū)別與文件系統(tǒng)的重要特征之一
事務(wù)具有四大特性:
1、原子型:指的是整個(gè)數(shù)據(jù)庫(kù)事務(wù)是不可分割的一個(gè)工作單位。只有使事務(wù)中所有的數(shù)據(jù)庫(kù)操作都執(zhí)行成功,才算整個(gè)事務(wù) 成功。如果事務(wù)中一個(gè)mysql語(yǔ)句執(zhí)行不成功,則會(huì)撤回所有的mysql語(yǔ)句,數(shù)據(jù)庫(kù)狀態(tài)應(yīng)該退回事務(wù)執(zhí)行之前。
2、一致性:將數(shù)據(jù)庫(kù)從一種狀態(tài)轉(zhuǎn)換另一種一致的狀態(tài)。在事務(wù)開(kāi)始之前和事務(wù)結(jié)束之后,數(shù)據(jù)庫(kù)的完整性約束沒(méi)有被破壞。
3、隔離性:事務(wù)的隔離性要求每個(gè)讀寫(xiě)事務(wù)的對(duì)象對(duì)其他事務(wù)的操作對(duì)象能相互分離,即該事務(wù)提交前對(duì)其他事務(wù)都不可見(jiàn),通常這使用鎖住一個(gè)實(shí)體對(duì)象的子集,以此來(lái)提高事務(wù)之間并發(fā)度。
4、持久性:事務(wù)一旦提交,其結(jié)果就是永久性的。即使發(fā)生宕機(jī)等故障,數(shù)據(jù)庫(kù)也能將數(shù)據(jù)恢復(fù)。需要注意的是,只能從事務(wù)本身的角度來(lái)保證結(jié)果的永久性。