NoSQL, Transaction, ACID and Lock


Posted by Christy on 2021-09-17

本篇為程式導師實驗計畫:Lesson 8-2 之資料庫筆記

NoSQL(Not Only SQL):

  1. 沒有 schema,存 json 進資料庫;mangodb

  2. 用 key -> value 來存

  3. 不支援 join

  4. 通常存一些結構不固定的資料(log 之類的)

Transaction

類似交易的概念,實際上就是「執行一個任務」,通常這個任務裡面包含多個對資料庫的操作行為,每個任務只有成功或失敗兩種可能,只要其中一個操作行為失敗就全部失敗,並且回到操作前的狀態。

ACID:

為了保證 Transaction 的正確性,要符合以下四個特性:

原子性 atomicity:要嘛全部失敗,要嘛全部成功
一致性

consistency:維持資料的一致性(錢的總數相同)

隔離性 isolation:多筆交易不會互相影響(不能同時改同一個值)

持久性 durability:交易成功之後,寫入的資料不會不見

Lock

在 Transaction 裡面,比如說限量搶購商品,當兩個以上的使用者同時發送請求給伺服器時,為了不超賣,所以在處理一筆交易時,都要把交易鎖起來,處理完成以後,才再次開放讓第二筆交易,以確保交易正確性。










Related Posts

methods 和 computed 比較

methods 和 computed 比較

ES6 的 export 與 import

ES6 的 export 與 import

發生在 GitHub conflict 的衝突——無法發 PR 合併分支

發生在 GitHub conflict 的衝突——無法發 PR 合併分支


Comments