數據庫設計三范式


    所謂數據庫設計范式(NF),就是在設計關系型數據庫時所遵循的規范要求,以設計出結構簡潔,清晰合理的數據庫,同時,在操作數據庫時不會發生異常

在實際開發過程中我們只需要滿足的三個范式:

1.第一范式

第一范式是最基本的范式,要求數據庫表中的字段都是單一屬性,且不可再分。

例如下表中的學生信息,每項屬性必須是單一的,分到不可分為止。

 

2.第二范式

第二范式,數據庫表中不存在非關鍵字段對任一候選關鍵字段的部分函數依賴。

具體操作就是確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關。也就是說一個表中只保存一種數據。

例如上表中,卡和學生是不同的類,就需要把卡和學生的信息分開。

 

卡信息表:


學生信息表:


通過這樣設計,在很大程度上減小了數據庫的冗余。


建立外鍵的約束關系:

 

3.第三范式

第三范式:確保每列都和主鍵列直接相關,而不是間接相關。也就是在滿足2NF的基礎上,任何非主屬性不得傳遞依賴於主屬性。例如表中的UserID

 


    數據庫范式的主要目的是為了減少數據冗余,數據冗余產生的本質就是在一個表中存在字段與字段之間的一對多,或者多對多關系。解決這個幾對幾的關系問題,就能輕易實現滿足第三范式的數據庫設計。這並意味着不符合范式要求的設計一定是錯誤的,在數據庫表中存在1:1或1:N關系這種較特殊的情況下,合並導致的不符合范式要求反而是合理的。

    在我們設計數據庫的時候,一定要時刻考慮范式的要求。

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com