1. 程式人生 > >資料庫基礎(一)

資料庫基礎(一)

T1: 資料庫三正規化

第一正規化:無重複的列(欄位)

第二正規化:在滿足第一正規化的基礎上,保證每一行可以被唯一區分;所以增加主鍵保證唯一性

第三正規化:在滿足第二正規化的基礎上,如果兩個表有依賴關係,即B依賴A,B中就不能有除了A主鍵外的A的其他屬性。

T2: 資料庫事務

事務是對系統資料查詢和更新操作組成的一個程式執行邏輯單元,這些操作要麼全做要麼全不做。

ACID特性:

1.原子性:事務包含的各種操作要麼都成功要麼都失敗;

2.一致性:事務對資料庫的操作使資料庫從一個狀態到另一個狀態;

3.隔離性:一個事務的執行不能被其他事務干擾;

4.永續性:事務commit成功後,資料庫的資料可以被永久儲存下來,儲存在硬碟上。

T3:資料庫事務的隔離級別

read-uncommited :  即可以讀到未提交的資料;如:A事務內讀到了B事務內部對資料的操作,但此時B後續還有對資料的操作,最後A事務commit後的資料不是根據B事務最後對資料庫操作的資料得到的,所以造成了贓讀。

read-commited: 只能讀到commit後的資料,但是A事務一直在讀,B事務在修改資料,A會讀出來不同的值,這個問題稱為 不可重複讀。

repeatable-read : 第一次讀取到資料時就會將資料鎖住,是悲觀鎖,其他資料進不來了。但是不能阻止insert操作,當insert後,就會讀到多了一條資料,就是幻讀。

serializable:就是事務一條一條執行,不會有同時多條事務執行。