本篇為程式導師實驗計畫:Lesson 8-2 之資料庫筆記
NoSQL(Not Only SQL):
沒有 schema,存 json 進資料庫;mangodb
用 key -> value 來存
不支援 join
通常存一些結構不固定的資料(log 之類的)
Transaction
類似交易的概念,實際上就是「執行一個任務」,通常這個任務裡面包含多個對資料庫的操作行為,每個任務只有成功或失敗兩種可能,只要其中一個操作行為失敗就全部失敗,並且回到操作前的狀態。
ACID:
為了保證 Transaction 的正確性,要符合以下四個特性:
原子性 atomicity:要嘛全部失敗,要嘛全部成功
一致性
consistency:維持資料的一致性(錢的總數相同)
隔離性 isolation:多筆交易不會互相影響(不能同時改同一個值)
持久性 durability:交易成功之後,寫入的資料不會不見
Lock
在 Transaction 裡面,比如說限量搶購商品,當兩個以上的使用者同時發送請求給伺服器時,為了不超賣,所以在處理一筆交易時,都要把交易鎖起來,處理完成以後,才再次開放讓第二筆交易,以確保交易正確性。