第二正規化的一些理解

2021-10-06 08:21:22 字數 1347 閱讀 2107

第二正規化比較官方的解釋是:

第二正規化(

2nf)要求資料庫表中的每個例項或記錄必須可以被唯一地區分。選取乙個能區分每個實體的屬性或屬

性組,作為實體的唯一標識。例如在員工表中的身份證號碼即可實現每個員工的區分,該身份證號碼即為候選鍵,

任何乙個候選鍵都可以被選作主鍵。在找不到候選鍵時,可額外增加屬性以實現區分。 第二正規化(

2nf)要求實

體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性。如果存在,那麼這個屬

性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分通常

需要為表加上乙個列,以儲存各個例項的唯一標識。簡而言之,第二正規化就是在第一正規化的基礎上屬性完全依賴於

主鍵。嗯,讀完之後似懂非懂,最後到底是個什麼玩意,還是一臉懵逼

一、我們先從概念入手:

比如一張表中有這麼些屬性:key1,key2,列1,列2,列3

其中key1和key2組成主鍵,第二正規化就是說列1、2、3完全依賴於key1+key2,而不是僅依賴於key1或者僅依賴於key2(也就是部分依賴)。

大白話說就是只要你告訴我key1和key2 的值,我就能立馬確定出列1、2、3的值,但是如果你只告訴我key1或者key2的值,那麼抱歉,鬼知道列1、2、3的值是多少,除非它是部分依賴。

從函式方面看完全依賴,z=2x+3y   (模擬 x:key1; y:key2; z:列1、2、3)  ,只知道x或者y的值是無法確定出z值的!

部分依賴就是z=2x、z=3y ,不再具體解釋

說了這麼多,應該理解 完全依賴和部分依賴 的意思了吧?

二、為什麼

那麼再說一說為什麼要有第二正規化:

舉個例子:

學號、課程、姓名、門派、掌門、分數,我們用 『學號+課程』 作為主鍵來建表

可以看到,表裡有很多重複的資料,造成資料冗餘,就像乙個人明明可以一句話就能說清楚的事,非要重複多遍,是不是有種欠抽的感覺!

後來經過我們的前輩研究發現,凡是有這種資料冗餘的現象都有部分依賴跡象的存在,就像該表中的  姓名、門派、掌門部分依賴於學號,最後把它總結歸納為第二正規化,編入我們的三浪箴言,,額。。。是三正規化箴言。

所以我們把上表拆分為兩張:

以上內容純屬自己的見解,如有不對的地方,望指正,謝謝?

第一正規化 第二正規化 第三正規化理解

資料庫中設計乙個好的標準化正規化能大大減少資料冗餘,增強資料的易操作性。正規化的演變 第一正規化 表中沒有重複資料組 屬性不可以再分,具有乙個主鍵 主鍵組 例如 出現從重複的資料組,把它轉換為第一正規化如 這樣就可以順利的應用在資料庫中了。第二正規化 在第一正規化的基礎上,必須消除區域性依賴也就是說...

第一正規化,第二正規化,第三正規化

第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...

第一正規化,第二正規化,第三正規化

第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...