開心生活站

位置:首頁 > IT科技 > 

數據庫事務的四大特性

IT科技1.5W

數據庫事務的四大特性如下:

數據庫事務的四大特性

1、原子性

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

2、一致性

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

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

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

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

3、隔離

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

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

4、持久性

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