資料庫設計三大正規化
第一正規化:在關係模式r的每個關係r中,如果每個屬性值都是不可再分的原子值,那麼稱r滿足第一正規化。
也就是說每一列均不可再分
1nf是關係模式應具備的最起碼的條件
第二正規化:如果關係模式r滿足1nf,且每個非主屬性完全函式依賴於候選鍵,那麼稱r滿足2nf。
(目的是消除部分函式依賴),,簡單的說就是 如果乙個表是復合主鍵,其他非主鍵字段完全函式依賴於復合主鍵,才稱其滿足2nf。
舉個例子:
設關係模式r(s#,c#,grade,tanme,taddre)的屬性分別為學生學號,選修課編號,成績,任課老師姓名和位址。(s# 和 c#)是r 的候選鍵。那麼(s#,c#)->(tname,taddr)和
c#->(tname,taddr)。此時 如果有一門課程選修人數為100,表中教師姓名和位址就會重複100次。
第三正規化:如果關係模式r是1nf,且每個非主屬性都不傳遞依賴於r的候選鍵,那麼稱r滿足3nf。
(目的是消除傳遞依賴)
例—-s1(sno,sname,dno, dname, location)
學號 姓名 所在系 系名稱 系位址
關鍵字sno決定各個屬性。由於是單個關鍵字,沒有部分依賴的問題,肯定是2nf。但這關係肯定有大量的冗餘,有關學生所在的幾個屬性dno,dname,location將重複儲存,插入,刪除和修改時也將產生類似以上例的情況。
原因:關係中存在傳遞依賴造成的。即sno 1->1 dno。 而dno 1->n sno卻不存在,而dno -> location存在, 因此關鍵遼 sno 對 location 函式決定是通過傳遞依賴 sno -> location 實現的。也就是說,sno不直接決定非主屬性location。
解決目地:每個關係模式中不能留有傳遞依賴。
解決方法:分為兩個關係 s(sno,sname,dno),d(dno,dname,location)
注意:關係s中不能沒有外關鍵字dno。否則兩個關係之間失去聯絡
資料庫設計三大正規化資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...
資料庫三大正規化
1 第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現...
資料庫三大正規化
第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...