pdf下載:密碼7281 專欄目錄首頁:【專欄必讀】(考研覆試)資料庫系統概論第五版(王珊)專欄學習筆記目錄導航及課後習題答案詳解 SQL數據更新主要有三種形式 插入數據(INSERT) 修改數據(UPDATE) 刪除數據(DELETE) 一:插入數據(INSERT) (1)插入元組 語法:格式如下 ...
事務特性 ACID:
(1)原子性(Atomicity)
一個事務由一系列操作組成,要麼全部生效,要麼全不生效,不存在部分生效的情況
(2)一致性(Consistency)
事務執行完成後,需要保證數據一致性,滿足業務規則,比如餘額不能是負的
(3)隔離性(Isolation)
多個事務對同一數據的操作是隔離開的,不會相互干擾
(4)持久性(Durability)
事務執行成功後,將永久生效,即使資料庫故障或者宕機,也不會丟失已提交的數據
另外,Redis支持事務,但是只能保證隔離性和一致性,沒有原子性,也不會回滾
事務隔離級別
以下為事務隔離級別及可能導致的問題,對應事務隔離級別以下為該事務隔離級別下事務併發可能導致的問題(例如:讀已提交可能導致不可重覆讀和幻讀問題):
事務隔離級別-讀未提交(READ UNCOMMITED):允許事務讀取到其他事務未提交的數據修改
臟讀:讀到未提交事務的數據,是最差的事務隔離級別,可以說沒有隔離。比如:事務1讀到事務2操作中但未提交的數據,事務2回滾了,事務1讀到了錯誤的數據。
事務隔離級別-讀已提交(READ COMMITED):事務只能讀取到其他事務提交後對數據的修改,即數據寫入加鎖,讀取不加鎖
不可重覆讀:同一事務多次查詢,查詢到的內容不同,即同一事務多次查詢間隔中有其他事務修改了數據
事務隔離級別-可重覆讀(REPEATABLE READ):同一事務多次讀取結果相同,在事務A讀取數據後不允許其他事務修改,直到事務A執行結束,即數據讀取加鎖,MySQL InnoDB引擎預設的事務隔離級別
幻讀:同一事務多次查詢,查詢到的數據條數不同,即同一事務多次查詢間隔有其他事務新增了數據
事務隔離級別-串列化(SERIALIZABLE):事務串列,且鎖住的不只是被操作的數據,因為需要防止幻讀,事務A讀取時,不允許事務B的曾,刪,改操作,讀加讀鎖(共用鎖),寫加寫鎖(獨占鎖)