資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。(保持資料的原子性)
滿足1nf後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說乙個表只描述一件事情;
首先是 2nf,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 a 依賴於非主鍵列 b,非主鍵列 b 依賴於主鍵的情況。即沒個屬性都跟主鍵有直接關係而不是間接關係。
例如:商品表和商品分類表,乙個分類對應多個商品,
建表原則:在『多』的一方新增乙個外來鍵,指向『一』的一方的主鍵。
例如:單管理資料庫當中「產品」表和「訂單」表之間的關係。單個訂單中可以包含多個產品。另一方面,乙個產品可能出現在多個訂單中。
建表原則:: 建立一張中間表,將多對多的關係,拆分成一對多的關係,中間表至少要有兩個外來鍵,分別指向原來的那兩張表
例如:班級和班長,乙個班級對應乙個班長。
建表原則:
-將一對一的情況,當作是一對多情況處理,在任意一張表新增乙個外來鍵,並且這個外來鍵要唯一,指向另外一張表
-直接將兩張表合併成一張表
-將兩張表的主鍵建立起連線,讓兩張表裡面主鍵相等
資料庫表設計三大正規化原則
a 所有字段值都是不可分解的原子值 b 也就是說在乙個資料庫表中,乙個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中 c 資料表中的每一列資料都和主鍵直接相關,而不能間接相關 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化。如果資料庫表中的所有字段值都是不可分解的原子值...
我的理解之資料庫建表三正規化
在實際開發中通常滿足第三正規化即可 下圖是我對三正規化的簡單理解 第一正規化 1nf 要求關係模式 r的所有屬性都是不可分的基本資料項 指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。例如 比如某些資料庫系統中需要用到 位址 這個...
資料庫三正規化和反三正規化
要說資料庫什麼最抽象,我覺得就是這個三正規化,不是很好理解,但是表在設計的時候又必須要知道這麼乙個規則。首先使用最簡潔的話說說這三正規化 第一正規化 1nf the first normal form 每一列不能再分割。第二正規化 2nf the second normal form 滿足1nf條件...