資料庫三個正規化的原理

2021-08-18 01:54:48 字數 484 閱讀 7053

1nf, 字段不可再分。這個關聯式資料庫強制了,想建立復合的字段也建立不起來。關聯式資料庫出現之前才有這個問題。

2nf,主鍵依賴,就是一張表裡面的字段,必須是跟主鍵相關的,不能把無關的資料放進來。主鍵依賴,實質就是,這個資訊如果是物件的屬性,就放進來,否則就不放。

3nf,就是不能重複儲存相同的資訊。這個情況,其實是在乙個物件裡引用了另外乙個物件,這個時候,存乙個引用就夠了,而不是重複的儲存這個物件的多個副本。

2nf和3nf的本質是,物件的屬性依賴物件。

資料庫的主鍵,作用是什麼?它用來唯一的標識這個物件,同時,用來給其他物件引用 引用 引用(重要的事情說三次)

所以,實戰中,所有資料庫都是用int型別做主鍵(int,或者bigint),而且,主鍵一律是自增,這是不成文的規則,凡是不遵守這個規則的,都是錯的(雖然理論上可以)

這樣,資料庫寫資料的時候,幾乎是永遠不寫入同乙個物件的重複資訊的,需要重複的時候,只寫這個物件的id

資料庫的三個正規化

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

資料庫入門 三個正規化

我覺得他說的最對 我也來解釋一波,參考 資料庫系統概念 書上一開始講得什麼 組合屬性 多值屬性 都是在講 e r模型和表的區別,就是說e r模型允許存在上述子結構,而表不能,跟第一正規化的解釋沒有直接關係。第一正規化實際的解釋為 關係模式中所有的屬性的域都是原子域。舉幾個反例 存在以上屬性的關係模式...

資料庫表三個正規化

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