數據庫設計三大範式

第一範式(1NF)

所謂第一範式(1NF)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,
即實體中的某個屬性不能有多個值或者不能有重複的屬性。若是出現重複的屬性,就可能須要定義
一個新的實體,新的實體由重複的屬性構成,新實體與原實體之間爲一對多關係。在第一範式(1NF)
中表的每一行只包含一個實例的信息。 在任何一個關係數據庫中,第一範式(1NF)是對關係模式的基本要求,不知足第一範式(1NF)
的數據庫就不是關係數據庫。

理解註釋:列不可分。

 

 

 

若是需求知道那個省那個市並按其分類,那麼顯然第一個表格是不容易知足需求的,也不符合第一範式。

 

第二範式(2NF)

 

第二範式(2NF)是在第一範式(1NF)的基礎上創建起來的,即知足第二範式(2NF)必須先知足第一範式(1NF)。
第二範式(2NF)要求數據庫表中的每一個實例或行必須能夠被唯一的區分。爲實現區分一般須要爲表加上一個列,
以存儲各個實例的唯一標識。要求實體的屬性徹底依賴於主關鍵字。

每一行的數據只能與其中一列相關,即一行數據只作一件事。只要數據列中出現數據重複,就要把表拆分開來。


理解註釋:不能部分依賴。即:一張表存在組合主鍵時,其餘非主鍵字段不能部分依賴。

 

一我的同時訂幾個房間,就會出來一個訂單號多條數據,這樣子聯繫人都是重複的,就會形成數據冗餘。咱們應該把他拆開來。

 

 

 

 第三範式(3NF)

知足第三範式(3NF)必須先知足第二範式(2NF)。
簡而言之,第三範式(3NF)要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。
在第二範式的基礎上,數據表中若是不存在非關鍵字段對任一候選關鍵字段的傳遞函數依賴則符合第三範式。

數據不能存在傳遞關係,即沒個屬性都跟主鍵有直接關係而不是間接關係。

理解註釋:不能存在傳遞依賴。即:除主鍵外,其餘字段必須依賴主鍵。

 

相關文章
相關標籤/搜索