資料庫管理系統 - 邏輯單位-有限的操作序列!
acid屬性:
atomicity : 原子性
consistency:一致性
isolation:隔離線
durability:永續性
事務有哪幾種隔離級別,請從弱到強分別類舉說明?
1.default:(預設)
預設隔離級別,使用資料庫預設的事務隔離級別
2.read_uncommitted:(讀未提交)
這是事務最低的隔離級別,他允許另外乙個事務可以看到這個事務未提交的資料,這種隔離級別會產生髒讀,不可重複讀和幻讀
3.read_committed(讀已提交)
保證乙個事務修改的資料提交後才能被另外乙個事務讀取,另外乙個事務不能讀取該事務未提交的資料.這種事務隔離級別可以避免髒讀,但是可能會出現不可重複讀和幻讀
4.repeatable_read(可重複讀)
這種事務級別可以防止髒讀,不可重複讀.但是可能出現幻讀.他除了保證乙個事務不能讀取另乙個事務未提交的資料外,還保證了不可重複讀
5.serializable 序列化
這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。防止了髒讀、不可重複讀、幻讀
在事務的併發操作中,可能出現的情況是哪些?
髒讀,不可重複讀,幻讀
1.dirty reads 髒讀
乙個事務正在對資料進行更新操作,但是更新還未提交,另乙個事務這時也來操作這組資料,並且讀取了前乙個事務還未提交的資料,而前乙個事務如果操作失敗進行了回滾,後乙個事務讀取的就是錯誤的資料,這樣就造成了髒讀
2.不可重複讀
乙個事務多次讀取同乙個資料,在該事務還未結束時,另乙個事務也對該資料進行了操作,而且在第乙個事務兩次讀取之間,第二個事務對資料進行了更新,那麼第乙個事務前後兩個讀取到的資料是不同的,這樣就造成了不可重複讀
3.幻讀
第乙個資料正在查詢某一條資料,這時,另乙個事務又插入了一條符合條件的資料,第乙個事務在第二次查詢符合同一條件的資料時,發現多了一條前一次查詢時沒有的資料,彷彿幻覺一樣,這就是幻讀
大多數資料庫預設的事務隔離級別是哪個?mysql的是否一樣,如果不一樣請指出?
mysql: repeatable read
其他的sqlservice,oracle : read committed
結合spring談談你對事務傳播性的理解(文字和**都可以)?
在ssh開發中,我們一般將事務設定在service層,當呼叫service乙個方法進行資料庫的操作時候
能夠保持我們使用的操作在乙個事務中。
如果在本service層中除了呼叫了dao層方法,還呼叫其他類的service層方法,
此時必須要保證呼叫的service層的方法和我本身的方法在同一事務中,否則不能保證事務的一致性。
此時就出現了事務的傳播問題。spring大多數情況使用 propgation_required:如果存在乙個事務,
則支援當前事務,沒有事務則開啟新的事務。
spring的事務控制有哪兩個主要特性,請分別簡單說明?
傳播級別和資料隔離級別!
傳播級別定義的是事務的控制範圍,事務隔離級別定義的是事務在資料庫讀寫方面的控制範圍。
spring的事務框架設計理念的基本原則是什麼?它有哪些事務管理方式,請分別說明下?
理念:讓事務管理的關注點與資料訪問的關注點相互分離。
方式:(1)程式設計式事務(spring推薦使用transactiontemplate)
(2)宣告式事務
宣告式事務是基於aop之上的。
其本質是在執行方法前後進行攔截,在方法開始之前建立或者加入乙個事務,在執行完目標方法之後根據執**況提交或者回滾事務。
如下的**只需要在方法上面加入註解@transactional就可以進行事務操作。
以刪除**為例,我們刪除**的時候會刪除**關聯的產品,只有這兩個操作都執行成功才算成功,所以整合成乙個事務。
宣告式事務:可知程式設計式事務每次實現都要單獨實現,但業務量大功能複雜時,使用程式設計式事務無疑是痛苦的,而宣告式事務不同,宣告式事務屬於無侵入式,不會影響業務邏輯的實現。
* 如果配置了宣告式事務,在出現執行時異常時,事務會回滾,但是出現非執行時異常時,事務不回滾。
* 如果配置了程式設計式事務,則不管出現什麼異常,事務都會回滾。
redis事務是什麼?事務有哪些特性?
redis可以一次執行多個命令,但需要但兩個重要保證 批量操作在傳送 exec 命令前被放入佇列快取。收到 exec 命令後進入事務執行,事務中任意命令執行失敗,其餘的命令依然被執行。在事務執行過程,其他客戶端提交的命令請求不會插入到事務執行命令序列中。事務是哪個極端開始執行 開始事務 命令入隊 執...
CSS盒子的基本屬性(概念)
1.內容區域設定 content 寬度和高度的設定可以是具體的數值 帶單位 也可以是百分比設定。2.內邊距 padding 的設定 3.外邊距 margin 的設定 4.邊框 border 的設定 5.方向性復合屬性值的縮寫方法 具有方向性的復合屬性可以在乙個宣告中設定所有方向的定義,該屬性可以具有...
html中的meta標籤是什麼?有哪些屬性?
meta標籤介紹 meta標籤是html語言head區域的乙個輔助性標籤,常用於定義頁面的說明,關鍵字,最後修改的日期和其他的元資料。這些元資料將服務於瀏覽器,搜尋引擎和其他網路服務。meta標籤的組成 meta標籤共有兩個屬性,分別是http equiv屬性和name屬性。name屬性 meta標...