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

第四章:撰寫多商品單投資策略

第四章:撰寫多商品單投資策略

菜逼八寫Flutter(3) - 列表、圖片Widget

菜逼八寫Flutter(3) - 列表、圖片Widget

CSS保健室|animation

CSS保健室|animation


Comments