資料庫三正規化

2021-10-05 17:14:00 字數 2012 閱讀 4945

正規化:

normal form正規化是「符合某一種級別的關係模式,表示乙個關係內部個屬性之間的聯絡的合理化程度」。可以簡單理解為某一標準級別。

資料庫正規化分為1nf,2nf,3nf,bcnf,4nf,5nf,符合高一級的正規化必定符合低一級的正規化。

原子性:

原子性是指事務是乙個不可再分割的工作單元,事務中的操作要麼都發生,要麼都不發生。

碼非主屬性

碼裡面的屬性就是主屬性,不是主屬性的就是非主屬性。簡單理解為無法決定其他資料的屬性。

函式依賴

函式y=f(x)代表了給定乙個x的值,y的值也是確定的。在x確定的情況下,必定能確定y的值,說y函式依賴於x,寫作x→y。簡單理解為y的值由x決定。

完全函式依賴

在一張表中,若x→y,且對於x的任意真子集,x』→y不成立,那麼稱y對於x完全依賴,記作xf→y。簡單理解為若y對x完全依賴,y必須由x中的所有元素得出。

部分函式依賴

如果y函式依賴於x,但是y不完全函式依賴於x,就叫做部分函式依賴。簡單理解為y可以通過x中的某一或某些元素得到,而不需要通過x中的所有元素得到。

傳遞函式依賴

如果y依賴於x,z又依賴於y,就說z依賴於x。

1nf:

定義關係中的每個屬性都不可再分,不重複,原子性。mysql中不符合1nf的資料表不能建立成功。

例:學號*

姓名系名

系主任課名*

分數2019001

小明計算機

計主任高數

802019001

小明計算機

計主任英語

902019001

小明計算機

計主任物理

652019002

小紅化學系

化主任高數

902019002

小紅化學系

化主任英語

952019002

小紅化學系

化主任物理

70存在問題

資料冗餘,插入異常,刪除異常,修改異常等。

2nf:

定義在1nf的基礎上,消除了非主屬性對於碼的部分函式依賴。

例:學號*

課名*分數

2019001

高數80

2019001

英語90

2019001

物理65

2019002

高數90

2019002

英語95

2019002

物理70

學號*姓名系名

系主任2019001

小明計算機

計主任2019002

小紅化學系

化主任判斷步驟:

第一步:找出資料表中所有的碼。

第二步:根據第一步所得到的碼,找出所有的主屬性。

第三步:資料表中除去所有的主屬性,剩下的就都是非主屬性了。

第四步:檢視書否存在非主屬性對碼的部分依賴。若存在,則只符合1fn要求,若不存在,則符合2fn要求。

存在問題

資料冗餘,插入異常,刪除異常,修改異常等問題。相比於1nf減少了資料冗餘。

3nf定義

在2nf的基礎上,消除了非主屬性對於碼的傳遞函式依賴。存在傳遞函式依賴則不滿足3nf。

例:學號*

課名*分數

2019001

高數80

2019001

英語90

2019001

物理65

2019002

高數90

2019002

英語95

2019002

物理70

學號*姓名系名

2019001

小明計算機

2019002

小紅化學系

系名*系主任計算機

計主任化學系

化主任存在問題

插入異常,刪除異常。

判斷1nf,2nf,3nf

1nf:是否為原子性

2nf:是否存在部分函式依賴

3nf:是否存在傳遞函式依賴

資料庫正規化 三正規化

所謂第一正規化 1nf 是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化 1nf 表中的每個域值只能是實體的乙個屬性或乙個屬性的...

資料庫三正規化

資料庫的三正規化 1n 關係r中的屬性都是不可分割的項.2n 在1n的基礎上,每個非主屬性完全函式依賴於碼.3n 在2n的基礎上,每乙個非主屬性既不部分依賴於碼也不傳遞依賴於碼.1n 消除非主屬性對碼的部分函式依賴 2n 消除非主屬性對碼的傳遞函式依賴 3n 消除主屬性對碼的部分和傳遞函式依賴 bc...

資料庫三正規化

1 第一正規化 1nf 無重複的列 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規化 ...