複製鏈接
請複製以下鏈接發送給好友

數據庫一致性

鎖定
數據庫一致性(Database Consistency)是指事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。保證數據庫一致性是指當事務完成時,必須使所有數據都具有一致的狀態。在關係型數據庫中,所有的規則必須應用到事務的修改上,以便維護所有數據的完整性。
中文名
數據庫一致性
外文名
Database consistency
目    的
維護所有數據的完整性
特    點
讀一致性

目錄

數據庫一致性簡介

保證數據庫的一致性是數據庫管理系統的一項功能.比如有兩個表(員工\職位),員工表中有員工代碼、姓名、職位代碼等屬性,職位表中有職位代碼、職位名稱、職位等級等屬性。你在其中員工表中進行了插入操作,你插入了一個新員工的信息,而這個新員工的職位是公司新創建的一個職位。如果沒有一致性的保證,就會出現有這麼一個員工,但是不知道他到底擔當什麼職責!這個只是它的一個小小方面。

數據庫一致性主要特點

讀一致性也是數據庫一致性的一個重要方面,在實際中,我們會遇到這種情況:我們對一個表中的某些數據進行了更新操作,,但是還沒有進行提交,這時另外一個用户讀取表中數據.這個時候就出現了讀一致性的問題:到底是讀什麼時候的數據呢?是更新前的還是更新後的?在DBMS中設有臨時表,它用來保存修改前的值,在沒有進行提交前讀取數據,會讀取臨時表中的數據,這樣一來就保證了數據是一致的.(當前用户看到的是更新前的值)
但是還有一種情況:用户user1對錶進行了更新操作,用户user2在user1還沒有進行提交前讀表中數據,而且是大批量的讀取(打個比方:耗時3分鐘)而在這3分鐘內user1進行了提交操作,那又會產生什麼影響呢?這個時候怎麼保證讀寫一致性呢?這個時候DBMS就要保證有足夠大的臨時表來存放修改前的數值,,以保證user2讀取的數據是修改前的一致數據.然後下次再讀取時候就是更新後的數據了.