如何理解三個正規化:
第一正規化: 1nf即屬性的原子約束性,屬性具有原子性,怎麼理解了?我們知道原子是不能再分的,即屬性不能往下分了。比如說人作為乙個實體,姓名作為人的乙個屬性,如果系統需要把人的姓和名分開記錄。那麼就必須把姓作為人的乙個屬性,名作為人的乙個屬性。
第二正規化:2nf就是記錄唯一性約束,要求記錄有唯一標示,其實就是資料庫表中的記錄不能重複,至少得設乙個標示字段作為主鍵
第三正規化:3nf就是資料不能冗餘,即欄位不能是其他任何字段派生出來。其實就是資料不重複儲存。
一正規化和二正規化是必須做到的,沒什麼可說的。
三正規化得看具體情況了,資料冗餘又分高階冗餘和低階冗餘。高階冗餘一般是字段可以別的字段衍生過來,比如金額,可以是單價和數量相乘得出來的,但是我們知道如果在查詢過程中再進行計算效率就會很低,所以系統就可以用空間來換取時間,加乙個金額字段,這樣查詢速度就提高了,這樣的冗餘是應該的,也是合理的。
低階冗餘一般是指在乙個表中儲存的資料,在別的表也有儲存,比如姓名,在人員表中有人員姓名,在訂單同樣儲存了人員姓名,那就是低階冗餘了。低階冗餘也不是洪水猛獸,在某些特殊的地方這個也是可以有的。
理解資料庫之設計正規化
1.第一正規化 指原子性,不可分割 資料庫第一正規化是指資料庫中的每一列都是不可分割的原子值。例如設計位址欄位時,如有需求需要經常訪問位址中的城市,街道等資訊時,就要把該字段繼續分割。2.第二正規化 指非主屬性必須完全依賴於主屬性 資料庫第二正規化是指所有非主屬性列都應該完全依賴於主屬性,而不是只依...
理解資料庫設計正規化 轉
前言 為什麼要寫這篇文章呢,從去年年底開始,就和很多做技術的朋友交流過,從資料庫設計到資料庫架構各個方面的內容。有一些朋友執著於orm,執著於所謂的資料庫設計,卻忘記了一切技術是要為業務服務這個基石。當然這文章裡也有一些自己的理解,想向大家表達。正規化是什麼 正規化是符合某一種級別的關係模式的集合。...
資料庫表設計 三個正規化
在資料庫設計中,為了更好地實現資料庫操作的高效性和便捷性,有三個正規化的規則可以遵循,三個正規化分別是 第一正規化 1nf是對屬性的原子性約束,要求屬性具有原子性,不可再分解 第二正規化 2nf是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性 第三正規化 3nf是對字段冗餘性的約束,即任何字...