資料庫表三個正規化

2021-12-29 19:54:39 字數 513 閱讀 8059

通俗地理解三個正規化(通俗地理解是夠用的理解,並不是最科學最準確的理解):

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

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

[同一表中消除部分依賴]

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

[同一表中消除傳遞依賴]

補充:第二正規化(2nf)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部 分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分通常需要為表加上乙個列,以儲存各個例項的唯一標識。簡而言之,第二正規化 就是在第一正規化的基礎上屬性完全依賴於主鍵。

不符合第三正規化的例子:

學號, 姓名, 年齡, 所在學院, 學院聯絡**,關鍵字為單一關鍵字"學號";

存在依賴傳遞: (學號) → (所在學院) → (學院地點, 學院**)

資料庫表設計 三個正規化

在資料庫設計中,為了更好地實現資料庫操作的高效性和便捷性,有三個正規化的規則可以遵循,三個正規化分別是 第一正規化 1nf是對屬性的原子性約束,要求屬性具有原子性,不可再分解 第二正規化 2nf是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性 第三正規化 3nf是對字段冗餘性的約束,即任何字...

資料庫的三個正規化

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

資料庫入門 三個正規化

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