總結:
正規化的含義:
符合某種級別的關係模式的集合。表示乙個關係內部的各屬性之間聯絡的合理化程度。可以理解為:資料表的表結構所符合的某種設計標準的級別。
第一正規化:是對關係模式的基本要求。不滿足第一正規化的關係,不能稱為關係型資料庫。符合第一正規化的關係,每個屬性都不可以再分割。
但是如果僅僅滿足第一正規化:仍然存在資料冗餘過大、插入異常、刪除異常、修改異常等的問題。
第二正規化:建立在第一正規化的基礎上,首先滿足第一正規化。
消除了非主屬性對碼的部分函式依賴。
概念解析:
函式依賴,在一張表中,屬性x(可能為乙個屬性也可能為乙個屬性組)確定的情況下,y的取值必定可以確定。我們就說y依賴於x。跟y=f(x)的關係很相似。
衍生三個函式依賴 的概念:
完全函式依賴,部分函式依賴,傳遞函式依賴。
屬性y依賴於屬性x。x可能為乙個屬性或者乙個屬性組。
完全函式依賴::如果x為乙個屬性,那麼y對於x就是完全函式依賴。如果x為乙個屬性組,對於x的任何乙個真子集x」,y都不能依賴於它。那麼函式y對於x完全函式依賴。
部分函式依賴:
如果,x為乙個屬性組。對於x的某個真子集,y依賴於它。那麼就成函式y對於x部分函式依賴。
傳遞函式依賴::如果z函式依賴於y,y函式依賴於x;x不依賴於y,y不包含於x。那麼我們就稱之為z傳遞依賴於x。
碼: 假設k為表中某個屬性或者某個屬性組。對於除了k以外的其他的屬性,都完全依賴函式依賴於k。我們就稱k為候選碼,簡稱碼。加入k中的屬性確定的情況下,其他的屬性,完全都能確定,如果k不確定或者k中的任何乙個屬性不確定,其他的屬性不能確定,我們就說k為碼。一張表中可以有超過乙個碼。
包含在任何乙個碼中的屬性稱為主屬性。其餘的稱為非主屬性,即任何乙個碼中都不包含的屬性,成為非主屬性。
如何判斷乙個資料表,是否滿足第二正規化:
第一步:先找出資料庫中所有的碼。
先找出單個屬性,再找出兩個屬性的組合,再找出三個屬性的….
技巧:如果某個屬性或者屬性組是碼,記為k。那麼包含這個k的屬性組一定不是碼。
第二步:根據碼找出所有的主屬性,去除所有的主屬性,剩下的就是非主屬性了。
第三步:檢視非主屬性,是否有對碼。檢視非主屬性,對碼是否是完全函式依賴。如果是,就是符合第二正規化。否則就不符合。
第三正規化:3nf在2nf的基礎之上,消除了非主屬性對於碼的傳遞函式依賴。
第一正規化,第二正規化,第三正規化
第一正規化 存在非主屬性對碼的部分依賴關係 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 欄位不可以...
第一正規化,第二正規化,第三正規化
第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...