當前位置:科普知識站>IT科技>

資料庫事務的四大特性

IT科技 閱讀(1.53W)

資料庫事務的四大特性如下:

資料庫事務的四大特性

1、原子性

第一個原子性,這個是最簡單的。說的是一個事物內所有操作共同組成一個原子包,要麼全部成功,要麼全部失敗。這是最基本的特性,保證了因為一些其他因素導致資料庫異常,或者宕機。

2、一致性

第二一致性,這個是大家誤解最深的,很多部落格都喜歡用銀行轉賬的例子來講一直性,所謂的一致性是基於原子性。

原子性只保證了一個事物內的所有操作同一性,大家同生死,不會出現你死了,我還活著。但是,原子性並沒有保證大家同一時刻一起生,一起死。計算機指令是有先後順序的,這樣就決定了一個事物的提交,會經歷一個時間過程,那麼如果事物提交進行到了一半,我讀取了資料庫,會不會讀到中間結果?

為了防止這樣的情況,資料庫事物的一致性就規定了事物提交前後,永遠只可能存在事物提交前的狀態和事物提交後的狀態,從一個一致性的狀態到另一個一致性狀態,而不可能出現中間的過程態。也就是說事物的執行結果是量子化狀態,而不是線性狀態。

資料庫提交事物會有一個過程,如果提交的時候,存在一個時間差,在提交的第一秒,一個刪除過程還沒完成到了第三秒才完成,會不會第一秒訪問的人和第三秒訪問的人得到不同的結果?出現不一致,狀態的混沌?這就是一致性得保證的只會有前狀態和後狀態,絕不會出現中間態。

3、隔離

事物的隔離性,基於原子性和一致性,因為事物是原子化,量子化的,所以,事物可以有多個原子包的形式併發執行,但是,每個事物互不干擾。

但是,由於多個事物可能操作同一個資源,不同的事物為了保證隔離性,會有很多鎖方案,當然這是資料庫的實現,他們怎麼實現的,我們不必深究。

4、永續性

永續性,當一個事物提交之後,資料庫狀態永遠的發生了改變,這個事物只要提交了,哪怕提交後宕機,他也確確實實的提交了,不會出現因為剛剛宕機了而讓提交不生效,是要事物提交,他就像洗不掉的紋身,永遠的固化了,除非你毀了硬碟。