一、三大範式
參考博客數據庫設計三大範式
三大範式只是一般設計數據庫的基本理念,可以建立冗餘較小、結構合理的數據庫。如果有特殊情況,當然要特殊對待,數據庫設計最重要的是看需求跟性能。所以不能一味的去追求範式建立數據庫。
需求 > 性能 > 表結構
1.1 第一範式
每一列屬性都是不可再分的屬性值,確保每一列的原子性
每列的屬性相近或相似或一樣,儘量合併屬性一樣的列,確保不產生冗餘數據
1.2 第二範式
每一列的數據只能與其中一列相關,即一行數據只做一件事。只要數據中出現數據重複,就要把表拆分開來
1.3 第三範式
數據不能存在傳遞關係,即每個屬性都跟主鍵有直接關係而不是間接關係
二、事務的四大特性
參考博客數據庫四大特性及數據庫隔離級別
2.1 原子性(Atomicity)
原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾。失敗回滾的操作事務,將不能對事物有任何影響
2.2 一致性(Consistency)
一致性是指事務必須使數據庫從一個一致性狀態變換到另一個一致性狀態,也就是說一個事務執行之前和執行之後都必須處於一致性狀態
2.3 隔離性(Isolation)
隔離性是指當多個用戶併發訪問數據庫時,比如同時訪問一張表,數據庫每一個用戶開啓的事務,不能被其他事務所做的操作干擾,多個併發事務之間,應當相互隔離
2.4 持久性(Durability)
持久性是指事務的操作,一旦提交,對於數據庫中數據的改變是永久性的,即使數據庫發生故障也不能丟失已提交事務所完成的改變