Transaction
ACID
一個transaction通常有四個特質,
原子性(Atomicity) transaction中的操作只有兩種可能:全數完成、全部不完成(occur[əˋkɝ] )
一致性(Consistency) 執行前後,資料庫的完整性不會被破壞
隔離性(Isolation) 不會因多個transaction執行而造成干擾
持久性(Durability) transaction完成後,資料的變更仍存在,不會因系統故障而遺失
How DB implements a Transaction
在DB中,通常會(1)將指令寫入log,(2)執行statement,(3)將“完成”寫入log 當log file沒有完整的TRANSACTION,則會進行ROLLBACK
BEGIN TRAN
UPDATE
...
...
if no errors
COMMIT TRAN
else
ROLLBACK TRAN