數據庫三範式

數據庫的設計要遵從三範式的原則。

第一範式

1、每一列屬性都是不可再分的屬性值,確保每一列的原子性。

2、兩列的屬性相近或相似或一樣,儘量合併屬性一樣的列,確保不產生冗餘數據。

個人理解就是原子性。如果說每一列的屬性都是一塊磚的話,那麼不能在一列裏面放兩塊磚,儘量的把兩個半截磚頭拼成一塊放在一列,拼不成的就不勉強了。

第二範式

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

個人理解就是專業性。一塊磚頭只做一件事,既要做承重又要做外牆裝飾,那就必須要更多的磚頭。

第三範式

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

舉個簡單的列子,一個表中有員工姓名、公司名稱和公司地址。這就是一個典型的傳遞關係:員工姓名>公司名稱>公司地址。這樣的表不符合第三範式,需要改成兩張表,第一張表(員工姓名+公司名稱),第二張表(公司名稱+公司地址)。

其他問題

三大範式只是一般設計數據庫的基本理念,並不是數據庫必須這麼設計。如果有特殊情況,當然要特殊對待,數據庫設計最重要的是看需求跟性能,需求>性能>表結構。根據要建的房子選擇磚頭,而不是根據磚頭建房子。

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