數據庫中一些基本概念的深刻理解

1.怎樣理解事務的一致性spa

  一致性就是一個這樣的東西,一致性對於不一樣的應用領域有着不一樣的定義,由於它就是按照業務規則來講明這個是一致的,那個是不一致的,這個角度上講,一致性就是一個系統的狀態,一個合理的狀態。而合理則表如今這個狀態是否符合業務規則。例如:轉帳業務中合理的狀態就是,轉出和轉入賬戶必須出入相等,若是不等那就意味着不合理,也就是不一致,有時候咱們很容易就能把它定爲「守恆一致性」,也就是說整體來講什麼也很少,什麼也很多就是一致性。而這個規則可以使用於其餘的業務嗎?咱們不能說不能,可是從狹義的角度來說是不能的,在存款業務中,賬戶是多了錢,那如何去守恆呢?或許你會說,那個東西能夠和客戶手中的錢兩來平衡阿,對,你說的對,或許咱們從更爲廣義的角度上講這個一致性就是「守恆一致性」(未證明)。可是咱們沒有必要作那麼宏觀的定義(畢竟對咱們開發合理系統沒有太大的幫助)。
因而,咱們抽象的定義,一致性,就是在任什麼時候候系統中的數據是符合業務規則的。那麼從一開始,業務初始化的時候保持一致性是很容易的,在業務進行下去,一個個事務完整進行(或不進行)後,一致性發生轉移,但始終符合一致性,因此保持系統一致性的關鍵還在於事務的一致性問題,也就是說,該事務是否會形成系統不一致性狀態的出現,是事務的一個屬性。
從這個角度咱們發現,事務所具有的原子性與一致性是一個互補的狀態,一致性保證了這個事務所包含的一系列的操做完成後系統仍然在一個一致的狀態(但它不能保證事務內部不會有不一致的出現),因此原子性就須要來保證這些操做必需要所有執行或所有不執行。從這個角度上講,一致性彷佛應該放在原子性以前,固然我不是在挑戰權威,這是一個小插曲。(摘自CSDN論壇)A:原子性 C:一致性 I:隔離性 D:持久性
事務

相關文章
相關標籤/搜索