資料庫表設計 三個正規化

2021-09-27 03:36:46 字數 691 閱讀 9028

在資料庫設計中,為了更好地實現資料庫操作的高效性和便捷性,有三個正規化的規則可以遵循,三個正規化分別是:

第一正規化:1nf是對屬性的原子性約束,要求屬性具有原子性,不可再分解;

第二正規化:2nf是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性;

第三正規化:3nf是對字段冗餘性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗餘。

設計表結構時,雖然要遵循以上的正規化來考慮,但也不能死板,完全遵循三個正規化設計出來的**不一定就是最科學的,沒有

冗餘的資料庫未必是最好的資料庫,有時為了提高執行效率,就必須降低正規化標準,適當保留冗餘資料。

這裡有個字段是否需要冗餘的問題,比如一張裝置資訊表:

主鍵裝置名稱

單價數量

總計金額1電腦

3000

26000

以上**中,「總計金額」其實是可以有另外兩個字段(「單價」、「數量」)的乘積獲得,這裡就沒有符合第三正規化的標準,是

有「總計金額」這個冗餘欄位的,增加這個冗餘字段,可以提高查詢統計的速度,這就是以空間換時間的作法。字段允許適當冗

餘,以提高查詢效能,但必須考慮資料一致。冗餘欄位應遵循:1)不是頻繁修改的字段。2)不是varchar超長字段,更不能是text

字段。3)不是唯一索引的字段。

資料庫表三個正規化

通俗地理解三個正規化 通俗地理解是夠用的理解,並不是最科學最準確的理解 第一正規化 1nf是對屬性的原子性約束,要求屬性具有原子性,不可再分解 第二正規化 2nf是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性 同一表中消除部分依賴 第三正規化 3nf是對字段冗餘性的約束,即任何字段不能由其...

資料庫設計的三個主要正規化

正規化顧名思義,即設計資料庫時需要遵循的一些規範。要遵循後邊的正規化要求,必須遵循前面所有正規化的要求。設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關聯式資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1...

資料庫的三個正規化

強調列的原子性,即列不能夠再分成其他幾列。考慮有這樣乙個表 聯絡人 姓名 性別 如果在實際場景中,乙個聯絡人有家庭 和公司 那麼這種表結構就不符合1nf,應把 列拆分成家庭 和公司 首先是1nf,另外還有兩部分內容。1.乙個表必須有乙個主鍵。2.不在主鍵裡的列必須依賴主鍵的所有內容,而不能只依賴主鍵...