讀未提交(read uncommitted):只處理更新丟失。如果乙個事務已經開始寫資料,則不允許其他事務同時進行寫操作,但允許其他事務讀此行資料。可通過「排他寫鎖」實現。
讀提交(read committed):處理更新丟失、髒讀。讀取資料的事務允許其他事務繼續訪問改行資料,但是未提交的寫事務將會禁止其他事務訪問改行。可通過「瞬間共享讀鎖」和「排他寫鎖」實現。
可重複讀取(repeatable read):處理更新丟失、髒讀和不可重複讀取。讀取資料的事務將會禁止寫事務,但允許讀事務,寫事務則禁止任何其他事務。可通過「共享讀鎖」和「排他寫鎖」實現。
序列化(serializable):提供嚴格的事務隔離。要求失去序列化執行,事務只能乙個接乙個地執行,不能併發執行。僅僅通過「行級鎖」是無法實現事務序列化的,必須通過其他機制保證新插入的資料不會被剛執行查詢操作的事務訪問到。
(1)原子性,乙個事務是乙個不可分割的整體,為了保證事務的總體目標,事務必須具有原子性,即當資料修改時,要麼全都執行,要麼全都不執行。即,不允許事務部分地完成,避免了只執行這些操作的一部分而帶來的錯誤。
(2)一致性,乙個事務在執行之前和執行之後,資料庫資料必須保持一致性。資料庫的一致性狀態應該滿足模式鎖指定的約束條件,那麼在完整執行該事務後,資料庫仍然處於一致性狀態。
例如:銀行轉賬,轉賬前後兩個賬戶金額之和應保持不變。
(3)隔離性,由併發事務所作的修改必須與任何其它併發事務所作的修改隔離。事務檢視資料庫時資料所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會檢視中間狀態的資料。例如:對任何一對事務t1和t2,對t1而言,t2要麼在t1開始之前已經結束,要麼在t1完成之後再開始執行。
(4)永續性,也被稱為永久性,事務完成以後,dbms(資料庫管理系統)保證它對資料庫中資料的修改是永久性的,當系統或介質發生故障時,該修改也永久保持。永續性一般通過資料庫備份與恢復來保證。
}接下來還有第二篇大佬面試題
第一周部落格記錄
這是第一周的學習記錄,由於最近的計算機設計大賽,沒有進行系統的學習,所以只是規整一下自己以往的知識點還有一些學習想法吧。第一次接觸html,是在學長的帶領下,但剛開始的時候只是覺得好看而已,後來進一步的學習,是由於閨蜜過生日,想送給她乙個意義非凡的禮物。那時起,才想起來自己曾經學過一段時間的html...
PTA一周練(第一周)記錄
因為想法比較雜亂無章,所以寫個部落格記錄一下練習中的一些想法與問題。第一周的練習記錄 7 1 正整數a b 題的目標很簡單,就是求兩個正整數a和b的和,其中a和b都在區間 1,1000 稍微有點麻煩的是,輸入並不保證是兩個正整數。輸入在一行給出a和b,其間以空格分開。問題是a和b不一定是滿足要求的正...
第一周 遇到的問題
sql 4.1 查有成績的學生資訊 這個問題就有意思了,感覺是和前面的 查詢sc表中存在成績的學生資訊 重複了。但是查了資料是有區別的,依然不是很明白。7.查詢沒有學全所有課程的同學的資訊 這個問題講資料庫的時候有一道類似的題目 查詢選修了所有課程的學生資訊 書上用的是exists語句,但是我不太理...