第二 三正規化與BC正規化的區別

2021-09-24 11:52:46 字數 1133 閱讀 9837

在正式開始之前,先來明確以下幾個概念:

1、碼:能唯一確定一條記錄的乙個/多個屬性。碼包括主碼和候選碼。任意乙個候選碼也能作為主鍵。其中主碼/候選碼的任意乙個真子集都不能確定一條記錄。

2、主屬性:構成主碼候選碼的屬性都叫主屬性!千萬不要誤認為候選碼的屬性不是主屬性!

3、非主屬性:除了主屬性以外的屬性都為非主屬性。

4、傳遞依賴:如果存在a → b → c的決定關係,則c傳遞函式依賴於a。

第二正規化的目的是去除非主屬性的部分依賴,用大白話來說就是非主屬性只能由來確定。比如說,在乙個表中有a、b、c、d四列,(a,b)作為主碼且沒有其他候選碼。如果存在a決定b的話(以後寫為a → b),那麼b這個非主屬性就不是由(a,b)主碼來確定的了。總的來說,第二正規化的目的就是讓表只描述一種資訊(學生資訊、考試科目資訊等)。

第三正規化的目的是去除非主屬性的傳遞依賴。比如說,在乙個表中有a、b、c三列,a作為主碼且沒有其他候選碼,a →b,b →c,則c傳遞依賴於a,且a為碼,則不滿足第三正規化。

總的來說第

二、三正規化規範的主要目標是非主屬性。也就是說,第

二、三正規化消除的是非主屬性對碼的部分依賴和傳遞依賴。那麼有沒有消除主屬性對碼的傳遞和函式依賴的正規化呢?那就是bc正規化。

假設存在以下關係模式 (倉庫名,管理員,物品名,數量)

已知函式依賴集:倉庫名 → 管理員,管理員 → 倉庫名,(倉庫名,物品名)→ 數量

碼:(管理員,物品名),(倉庫名,物品名)

主屬性:倉庫名、管理員、物品名

非主屬性:數量

在(管理員,物品名)這個碼中,存在管理員→倉庫名這個部分函式依賴。所以倉庫名這個主屬性((倉庫名,物品名)的碼的主屬性)部分依賴於(管理員,物品名)這個碼,因此不屬於bc正規化。

資料庫的正規化,第一 二 三 四 五正規化 BC正規化

關聯式資料庫知道了,再來理解正規化。正規化是關聯式資料庫關係模式規範化的標準,從規範化的寬鬆到嚴格,分為不同的正規化,通常使用的有第一正規化。第二正規化 第三正規化及bc正規化。正規化是建立在函式依賴基礎上的。如果乙個表中某乙個欄位y的值是由另外乙個欄位或一組欄位x的值來確定的,就稱為y函式依賴於x...

第一正規化 第二正規化 第三正規化以及BC正規化

關於函式依賴以及碼的相關知識麻煩讀者自己學習,這裡只解釋各個正規化之間的區別及定義!先來看看第一正規化,第一正規化是資料庫關係模式的基礎,換句話說,起碼必須滿足第一正規化才是正確的,那麼什麼是第一正規化呢?第一正規化就是在乙個關係模式內,不能存在還可以再分的屬性,即所有屬性都必須是簡單屬性 不能再分...

對第一,二,三,BC正規化的理解

第一正規化 只要滿足所有字段不可再分,即不存在 乙個欄位中有不同的資料型別 這種情況,例如手機號這個字段不能既有手機號又有姓名年齡這些。第二正規化 在第一正規化的前提下,每個非主屬性都完全函式依賴於主鍵 主鍵可以有多個字段 首先什麼是主屬性和非主屬性?主屬性就是候選鍵中的每乙個屬性,候選鍵可能是多個...