數(shù)據(jù)庫事務(wù)的四大特性如下:
1、原子性
第一個(gè)原子性,這個(gè)是最簡(jiǎn)單的。說的是一個(gè)事物內(nèi)所有操作共同組成一個(gè)原子包,要么全部成功,要么全部失敗。這是最基本的特性,保證了因?yàn)橐恍┢渌蛩貙?dǎo)致數(shù)據(jù)庫異常,或者宕機(jī)。
2、一致性
第二一致性,這個(gè)是大家誤解最深的,很多博客都喜歡用銀行轉(zhuǎn)賬的例子來講一直性,所謂的一致性是基于原子性。
原子性只保證了一個(gè)事物內(nèi)的所有操作同一性,大家同生死,不會(huì)出現(xiàn)你死了,我還活著。但是,原子性并沒有保證大家同一時(shí)刻一起生,一起死。計(jì)算機(jī)指令是有先后順序的,這樣就決定了一個(gè)事物的提交,會(huì)經(jīng)歷一個(gè)時(shí)間過程,那么如果事物提交進(jìn)行到了一半,我讀取了數(shù)據(jù)庫,會(huì)不會(huì)讀到中間結(jié)果?
為了防止這樣的情況,數(shù)據(jù)庫事物的一致性就規(guī)定了事物提交前后,永遠(yuǎn)只可能存在事物提交前的狀態(tài)和事物提交后的狀態(tài),從一個(gè)一致性的狀態(tài)到另一個(gè)一致性狀態(tài),而不可能出現(xiàn)中間的過程態(tài)。也就是說事物的執(zhí)行結(jié)果是量子化狀態(tài),而不是線性狀態(tài)。
數(shù)據(jù)庫提交事物會(huì)有一個(gè)過程,如果提交的時(shí)候,存在一個(gè)時(shí)間差,在提交的第一秒,一個(gè)刪除過程還沒完成到了第三秒才完成,會(huì)不會(huì)第一秒訪問的人和第三秒訪問的人得到不同的結(jié)果?出現(xiàn)不一致,狀態(tài)的混沌?這就是一致性得保證的只會(huì)有前狀態(tài)和后狀態(tài),絕不會(huì)出現(xiàn)中間態(tài)。
3、隔離性
事物的隔離性,基于原子性和一致性,因?yàn)槭挛锸窃踊?,量子化的,所以,事物可以有多個(gè)原子包的形式并發(fā)執(zhí)行,但是,每個(gè)事物互不干擾。
但是,由于多個(gè)事物可能操作同一個(gè)資源,不同的事物為了保證隔離性,會(huì)有很多鎖方案,當(dāng)然這是數(shù)據(jù)庫的實(shí)現(xiàn),他們?cè)趺磳?shí)現(xiàn)的,我們不必深究。
4、持久性
持久性,當(dāng)一個(gè)事物提交之后,數(shù)據(jù)庫狀態(tài)永遠(yuǎn)的發(fā)生了改變,這個(gè)事物只要提交了,哪怕提交后宕機(jī),他也確確實(shí)實(shí)的提交了,不會(huì)出現(xiàn)因?yàn)閯倓傚礄C(jī)了而讓提交不生效,是要事物提交,他就像洗不掉的紋身,永遠(yuǎn)的固化了,除非你毀了硬盤。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com