規範化理論 函式依賴 正規化 簡單粗暴

2021-07-25 19:46:53 字數 1202 閱讀 3842

一.為什麼要設計正規化?

避免插入,刪除,更新,冗餘異常

二、基本概念

實體:一張資料庫表,比如:學生表,學生就是乙個實體

屬性:一張表(實體)會有很多屬性,比如乙個學生實體會有學號,班級等屬性

候選碼:可以決定其他屬性的集合,比如a->b ,a->c,c->d

那麼a,b,c就是候選碼

主碼(主關鍵字):候選碼中的乙個,例如學生的學號就可以作為乙個主碼,因為這個學號可以決定班級,等等其他屬性

元組:表的一行資料的集合就是乙個元組

全碼:如果乙個屬性可以確定所有的其他屬性,則這個就是全碼

外碼:乙個屬性(不是主碼),它是其他表的主碼,則稱它為這個表的外碼

三、函式依賴

1.完全函式依賴:非主屬性依賴所有的關鍵字(候選碼)

例如:r實體有a,b,c,d,e,f的屬性,其中a,b是候選碼,a->c,b->c等等

這就滿足完全函式的依賴了

2.部分函式依賴:與上大同小異,非主屬性部分依賴關鍵字

比如:a->c,這個c沒有依賴b,就說明是部分部分函式依賴

3.傳遞函式依賴:x y z是r的不同屬性子集,就是說xyz是不同列的

如果x->y , y->z並且x不包含y,y不確定x(y!->x),這樣就是傳遞函式依賴

4.平凡函式依賴:u包含xy,x->y,並且x包含y

四、正規化

1.第一正規化(1nf)

就是說,乙個屬性下面不能再分了,有人看到這裡會感到奇怪,這個1nf我要注意什麼,感覺現在的資料庫系統也沒法設計成這樣的,對,現在設計不出這樣的了,因為現在的系統就可以自動的滿足第一正規化了

2.第二正規化(2nf)

第二正規化就是不允許有部分函式依賴

例如:a,b是候選碼,a->c,c沒有依賴b,這就是部分函式依賴了,所以這種就不是2nf,那麼怎麼解決呢

分成兩個表 t1 a,c

t2 a,b

這樣a->c這就是完全函式依賴

3.第三正規化(3nf)

不允許非關鍵字對關鍵字的傳遞函式依賴

比如:a是關鍵字 a->b b->c

這裡就存在c(非關鍵字)對a(關鍵字)的傳遞函式依賴

以上是自己在複習資料庫期間整理總結的,適合應付考試

規範化理論 如何計算最小依賴集?

如果函式依賴集f滿足一下條件,則稱f為乙個最小函式依賴集。1 f中任意一函式的右部僅含有乙個屬性。2 f中不存在這樣的函式依賴x a,使得f與f 等價,即f中的函式依賴均不能由f中其他函式依賴匯出。3 f中不存在這樣的函式依賴x a,x有真子集z使得f 演算法步驟 1 將f中的所有函式依賴的右邊化為...

關聯式資料庫規範化理論 正規化

此篇博文是我的第一篇文章,在複習資料庫正規化部分的時候做的筆記。正規化指 規範化的關係模式,由於規範程度不同,產生了不同的正規化 乙個低一級的關係正規化通過模式分解可以轉換成若干高一級正規化的關係模式的集合。這個過程稱為關係模式的規範化。關係模式規範化的必要性 關係模式規範化,使之達到較高的正規化是...

關聯式資料庫規範化之函式依賴和正規化

設r u 是乙個屬性集上的關係模式,x,y是u的子集。函式依賴 如果x y,則稱y函式依賴於x。平凡函式依賴 如果x y,且y是x的子集。非平凡函式依賴 如果x 且y不是x的子集。完全函式依賴 如果x y,且x的任何乙個真子集都不能推出y,則y完全函式依賴於x。部分函式依賴 如果x y,且x的至少存...