面試 資料庫三正規化是什麼?

2021-09-25 09:41:49 字數 855 閱讀 2974

1 第一正規化(1nf)

在任何乙個關聯式資料庫中,第一正規化(1nf)是對關係模式的基本要求,不滿足第一正規化(1nf)的資料庫就不是關聯式資料庫。 所謂第一正規化(1nf)是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規化(1nf)中表的每一行只包含乙個例項的資訊。簡而言之,第一正規化就是無重複的列。

2 第二正規化(2nf)

第二正規化(2nf)是在第一正規化(1nf)的基礎上建立起來的,即滿足第二正規化(2nf)必須先滿足第一正規化(1nf)。第二正規化(2nf)要求資料庫表中的每個例項或行必須可以被惟一地區分。為實現區分通常需要為表加上乙個列,以儲存各個例項的惟一標識。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。 第二正規化(2nf)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分通常需要為表加上乙個列,以儲存各個例項的惟一標識。簡而言之,第二正規化就是非主屬性非部分依賴於主關鍵字。

3 第三正規化(3nf)

滿足第三正規化(3nf)必須先滿足第二正規化(2nf)。簡而言之,第三正規化(3nf)要求乙個資料庫表中不包含已在其它表中已包含的非主關鍵字資訊。例如,存在乙個部門資訊表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等資訊。那麼在員工資訊表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的資訊再加入員工資訊表中。如果不存在部門資訊表,則根據第三正規化(3nf)也應該構建它,否則就會有大量的資料冗餘。簡而言之,第三正規化就是屬性不依賴於其它非主屬性。(我的理解是消除冗餘)

資料庫三正規化是什麼?

什麼是正規化?簡言之就是,資料庫設計對資料的儲存效能,還有開發人員對資料的操作都有莫大的關係。所以建立科學的,規範的的資料庫是需要滿足一些規範的來優化資料資料儲存方式。在關係型資料庫中這些規範就可以稱為正規化。什麼是三大正規化?第一正規化 1nf 強調的是列的原子性,即列不能夠再分成其他幾列。第二正...

資料庫三正規化是什麼

第一正規化 1nf 字段具有原子性,不可再分。所有關係型資料庫系統都滿足第一正規化 資料庫表中的字段都是單一屬性的,不可再分。例如,姓名字段,其中的姓和名必須作為一 個整體,無法區分哪部分是姓,哪部分是名,如果要區分出姓和名,必須設計成兩個獨立的 字段。第二正規化 2nf 第二正規化 2nf 是在第...

面試積累 MySQL 資料庫三正規化是什麼

第一正規化 1nf 字段具有原子性,不可再分。所有關係型資料庫系 統都滿足第一正規化資料庫表中的字段都是單一屬性的,不可再分 第二正規化 2nf 是在第一正規化 1nf 的基礎上建立起來的,即滿足第二正規化 2nf 必須先滿足第一正規化 1nf 要求資料庫表中的每 個例項或行必須可以被惟一地區分。通...