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