數據庫筆記
1. 視圖
- 理解: 一個虛擬的表,將一些經常會用到的數據項,單獨抽出來創建一個視圖,以後直接將視圖當作表來查詢即可。
2. 事務
事務(Transaction)是由一系列對系統中數據進行訪問與更新的操作所組成的一個程序執行邏輯單元。
事務具有4個基本特徵,分別是:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Duration),簡稱ACID。
ACID這4個特徵中,最難理解的是隔離性。在標準SQL規範中,定義了4個事務隔離級別,不同的隔離級別對事務的處理不同。4個隔離級別分別是:讀未提及(READ_UNCOMMITTED)、讀已提交(READ_COMMITTED)、可重複讀(REPEATABLE_READ)、順序讀(SERIALIZABLE)。
數據庫在不同的隔離性級別下併發訪問可能會出現以下幾種問題:髒讀(Dirty Read)、不可重複讀(Unrepeatable Read)、幻讀(Phantom Read)。
事務隔離級別 | 髒讀 | 不可重複讀 | 幻讀 |
---|---|---|---|
讀未提及(READ_UNCOMMITTED) | 允許 | 允許 | 允許 |
讀已提交(READ_COMMITTED) | 禁止 | 允許 | 允許 |
可重複讀(REPEATABLE_READ) | 禁止 | 禁止 | 允許 |
順序讀(SERIALIZABLE) | 禁止 | 禁止 | 禁止 |
4種事務隔離級別從上往下,級別越高,併發性越差,安全性就越來越高。
一般數據默認級別是讀以提交或可重複讀。