數據庫設計之三範式的的理解

目的:

 爲了降低數據冗餘,消除數據插入異常、更新異常、刪除異常。在設計數據庫時範式要求越嚴謹則設計出來的表則越多數據結構越靈活。

定義:

第一範式(1NF):數據表中的每一列(每個字段)必須是不可拆分的最小單元,也就是確保每一列的原子性;

第二範式(2NF):滿足1NF後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說一個表只描述一件事情;

    例如:訂單表只描述訂單相關的信息,所以所有字段都必須與訂單id相關產品表只描述產品相關的信息,所以所有字段都必須與產品id相 關;因此不能在一張表中同時出現訂單信息與產品信息;

第三範式(3NF):必須先滿足第二範式(2NF),要求:表中的每一列只與主鍵直接相關而不是間接相關,(表中的每一列只能依賴於主鍵);

    例如:訂單表中需要有客戶相關信息,在分離出客戶表之後,訂單表中只需要有一個用戶id即可,而不能有其他的客戶信息。因爲其他的客戶信息直接關聯於用戶id,而不是直接與訂單id直接相關。

如何更好的區分三範式:

第一範式和第二範式在於有沒有分出兩張表,第二範式是說一張表中包含了所有不同的實體屬性,那麼必須要分成多張表, 第三範式是要求已經分成了多張表,那麼一張表中只能有另一張表中的id(主鍵),而不能有其他的任何信息(其他的信息一律用主鍵在另一表查詢)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章