1. 資料庫事務、事務隔離級別、悲觀鎖、樂觀鎖等概念。
2.資料庫acid特徵:
atomic(原子性):指整個資料庫事務是不可分割的工作單元。
consistency(一致性):指資料庫事務不能破壞關係資料的完整性以及業務邏輯上的一致性。
isolation(隔離性):指的是在併發環境中,當不同的事務同時操縱相同的資料時,每個事務都有各自的完整資料空間。
durability(永續性):指的是只要事務成功結束,它對資料庫所作的更新就必須永久儲存下來。
3.資料庫系統支援兩種事務模式:
自動提交模式:每個sql語句都是乙個獨立的事務,當資料庫系統執行完乙個sql語句後,會自動提交事務。
手動提交模式:必須由資料庫客戶程式顯示指定事務開始邊界和結束邊界。
4.mysql中資料庫表分為3種型別:innodb、bdb和myisam,其中myisam不支援資料庫事務。mysql中create table 語句預設為myisam型別。
5.對於同時執行的多個事務,當這些事務訪問資料庫中相同的資料時,如果沒有採取必要的隔離機制,就會導致各種併發問題,這些併發問題可歸納為以下幾類:
a.第一類丟失更新:撤銷乙個事務時,把其他事務已提交的更新資料覆蓋。
b.髒讀:乙個事務讀到另乙個事務為提交的更新資料。
c.虛讀:乙個事務讀到另乙個事務已提交的新插入的資料。
d.不可重複讀:乙個事務讀到另乙個事務已提交的更新資料。
e.第二類丟失更新:這是不可重複讀中的特例,乙個事務覆蓋另乙個事務已提交的更新資料。
6.資料庫系統提供了四種事務隔離級別供使用者選擇:
a.serializable(序列化):乙個事務在執行過程中完全看不到其他事務對資料庫所做的更新。
b.repeatable read(可重複讀):乙個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,但是不能看到其他其他事務對已有記錄的更新。
c.read commited(讀已提交資料):乙個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,而且能看到其他事務已經提交的對已有記錄的更新。
d.read uncommitted(讀未提交資料):乙個事務在執行過程中可以拷打其他事務沒有提交的新插入的記錄,而且能看到其他事務沒有提交的對已有記錄的更新。
隔離級別越高,越能保證資料的完整性和一致性,但是對併發效能的影響也越大。對於多數應用程式,可以有優先考慮把資料庫系統的隔離級別設為read commited,它能夠避免髒讀,而且具有較好的併發效能。儘管它會導致不可重複讀、虛讀和第二類丟失更新這些併發問題,在可能出現這類問題的個別場合,可以由應用程式採用悲觀鎖或樂觀鎖來控制。
7.當資料庫系統採用read commited隔離級別時,會導致不可重複讀喝第二類丟失更新的併發問題,可以在應用程式中採用悲觀鎖或樂觀鎖來避免這類問題。從應用程式的角度,鎖可以分為以下幾類:
a.悲觀鎖:指在應用程式中顯示的為資料資源加鎖。儘管能防止丟失更新和不可重複讀這類併發問題,但是它會影響併發效能,因此應該謹慎地使用。
b.樂觀鎖:樂觀鎖假定當前事務運算元據資源時,不回有其他事務同時訪問該資料資源,因此完全依靠資料庫的隔離級別來自動管理鎖的工作。應用程式採用版本控制手段來避免可能出現的併發問題。
8.悲觀鎖有兩種實現方式:
a.在應用程式中顯示指定採用資料庫系統的獨佔所來鎖定資料資源。sql語句:select ... for update,在hibernate中使用get,load時如session.get(account.class,new long(1),lockmode,upgrade)
b.在資料庫表中增加乙個表明記錄狀態的lock欄位,當它取值為「y」時,表示該記錄已經被某個事務鎖定,如果為「n」,表明該記錄處於空閒狀態,事務可以訪問它。增加鎖標記欄位就可以實現。
資料庫的一些理論知識
1.資料庫技術的根本目標是解決資料共享的問題。2.在乙個關係r中,若每個資料項都是不可再分割的,那麼r一定屬於第一正規化。3.dbms的基本單位是事務,是構成單一邏輯工作單元的操作集合。4.給長事務分配大回滾段。5.資料庫恢復的基礎是利用轉儲的冗餘資料。這些轉儲的冗餘資料報括日誌檔案 資料庫後備副本...
資料庫理論知識點 一
1.1 資料庫庫系統概述 機器世界的資料模型 按計算機系統的觀點來組織資料,主要是描述資料的結構約束,而非資料本身的內涵 資訊世界的基本概念 聯絡 概念模型的表示方法 邏輯模型 常用邏輯模型 關係模型 值 模式外模式 內模式 資料庫系統的兩級映像 bscs 分布式結構 地理上分散,邏輯上集中的資料庫...
資料庫事務相關理論知識
儲存結構 序列化排程 隔離級別及實現方式 併發控制 事務 transaction 是構成單一邏輯工作單元的操作集合。是訪問並可能更新各種資料項的乙個程式執行單元。原子性 atomicity 事務操作在資料庫中要麼全部正確反映出來,要麼完全不反映。一致性 consistency 隔離執行事務時,保持資...