關係型資料庫的正規化

2021-06-27 02:20:21 字數 1150 閱讀 4347

關係型資料庫有六個正規化,越靠後的正規化對資料庫的「要求」越高。

我改寫了描述,讓其更通俗易懂,但是不太嚴謹,以下文字中:列對應屬性、行對應實體、表對應關係。不再一一區分。對於我們使用的關係型資料庫,滿足第三正規化即可。

第一正規化(1nf)無重複的列

即每一行中,不能有兩列的含義完全相同,也不能有某一列的值不確定。

定義:因果關係模式r的每個關係r的屬性都是不可分的資料項,那麼就稱r是第一正規化的模式。簡單的說,每乙個屬性都是原子項,不可分割。 1nf是關係模式應具備的最起碼的條件,如果資料庫設計不能滿足第一正規化,就不稱為關係型資料庫。關聯式資料庫設計研究的關係規範化是在1nf之上進行的。

第二正規化(2nf)屬性完全依賴於主鍵 [消除部分子函式依賴]

滿足第一正規化,且——可以用主鍵(一列或多列)區分每一行。

定義:如果關係模式r是1nf,且每個非主屬性完全函式依賴於候選鍵,那麼就稱r是第二正規化。簡單的說,第二正規化要滿足以下的條件:首先要滿足第一正規化,其次每個非主屬性要完全函式依賴與候選鍵,或者是主鍵。也就是說,每個非主屬性是由整個主鍵函式決定的,而不能由主鍵的一部分來決定。

第三正規化(3nf)屬性不依賴於其它非主屬性 [消除傳遞依賴]

滿足第二正規化,且——如果某列不是主鍵或主鍵之一,那麼該列僅能出現在乙個表中。

如果關係模式r是2nf,且關係模式r(u,f)中的所有非主屬性對任何候選關鍵字都不存在傳遞依賴,則稱關係r是屬於第三正規化。簡單的說,第三正規化要滿足以下的條件:首先要滿足第二正規化,其次非主屬性之間不存在函式依賴。由於滿足了第二正規化,表示每個非主屬性都函式依賴於主鍵。如果非主屬性之間存在了函式依賴,就會存在傳遞依賴,這樣就不滿足第三正規化。

巴德斯科正規化(bcnf)

滿足第三正規化,且——主鍵必須最精簡化。

bc正規化是第三正規化的增強版,不過也有人說是直接從1nf發展過來的,即每個屬性,包括主屬性或非主屬性,都完全依賴於候選鍵,並且不存在傳遞依賴情況。

第四正規化(4nf)

滿足第三正規化,且——對於全鍵表,刪除某一列後,其他列不能重複。

第五正規化(5nf)

滿足第四正規化,且——完全消除行冗餘,這樣會把表拆分得過小(一般會拆分成兩列),導致資料庫支離破碎。

前四種正規化的關係

關係型資料庫正規化

設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 和第五正...

關係型資料庫的正規化

設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關係型資料庫有六種正規化,第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 第五正規...

關係型資料庫設計正規化

理解三大正規化 學後知變通 什麼是正規化 資料庫設計對資料的儲存效能和開發人員對資料的操作都有關係。所以建立科學的 規範的資料庫需要滿足一些規範。在關係型資料庫中這些規範就可以稱為正規化。三大正規化概念 第一正規化 當關係模式r的所有屬性都不能分解為更基本的資料單位時,稱r是滿足第一正規化的,簡記為...