面試之「資料庫三大正規化」

2021-10-20 13:05:32 字數 1322 閱讀 5282

為了能夠更好地理解資料庫的三大正規化,對資料庫中基本概念進行講解。 資料庫的設計正規化是資料庫設計

所需要滿足的規範,滿足這些規範的資料庫是簡潔的、明晰的。同時不會發生插入(insert)、刪除(delete)

和更新(update)異常操作。

物件(object):具有相同性質、遵循相同規則的一類事物的抽象。

物件是實體集資料化的結果,例如:老師,學生,課程等

例項(instance):物件中的每乙個具體的事物。例如:學生小紅,小芳等

屬性(attribute):實體的某一方面特徵的抽象表示。例如:學生的性別,年齡,班級等

主碼(primary key):能夠唯一標識乙個實體。

1.第一正規化(1nf):列不可再分

(1)每一列屬性都是不可再分的屬性值,即確保每一列的原子性

(2)兩列的屬性相似或相近的,盡量合併,避免產生冗餘資料

如以下表存在可再分項(高階職稱),所以不滿足第一正規化
將高階職稱橫向展開即可以得到滿足第一正規化的表結構。

2.第二正規化(2nf):所有非主屬性都完全依賴於主鍵

關係模式必須滿足第一正規化。第二正規化(2nf)要求資料庫表中的每個例項或行必須可以被惟一地區分。為實現區分通常需要為表加上乙個列,

以儲存各個例項的惟一標識,這個惟一屬性列被稱為**主鍵**。

3.第三正規化(3nf):所有非主屬性對任何候選關鍵字都不存在傳遞依賴

關係模型滿足第二正規化,每個屬性都跟主鍵有直接關係而不是間接關係,例如:a-->b-->c  屬性之間含有這樣的關係,是不符合第三正規化的。
例如:student表(學號,姓名,年齡,性別,所在院校,院校位址,院校**)

這樣乙個表結構,就存在上述關係。

學號–> 所在院校 --> (院校位址,院校**)

像這樣的表結構,應該拆開來,如下:

(學號,姓名,年齡,性別,所在院校)–(所在院校,院校位址,院校**)

資料庫設計三大正規化資料庫設計三大正規化

為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...

資料庫三大正規化

1 第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現...

資料庫三大正規化

第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...