事務的概念是什麼,有哪些基本屬性?

2022-07-16 08:21:12 字數 2113 閱讀 3475

資料庫管理系統 - 邏輯單位-有限的操作序列!

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標...