資料庫的正規化

2021-09-30 15:31:56 字數 1772 閱讀 9985

資料庫的正規化

無規矩不成方圓

,在資料庫設計的時候遵守的規矩就是正規化

.即設計資料庫必須滿足不同的規則也就是滿足不同的正規化

.關聯式資料庫有六種正規化

,而常用的則是第一第二和第三正規化。而其餘的正規化我們基本還用不到.

正規化介紹

如果沒有正規化不僅會產生大量無用的表字段,而且會使得表結構非常難以維護。因為正規化是遞進的關係,所以引出了第一正規化.

第一正規化

第一正規化就是在沒有正規化的基礎上進行的改進,所謂第一正規化就是指表中的所有欄位都是原子的、不可再分的,第一正規化是將沒有正規化中重複的字段抽取出來,作為表的資料,從而形成乙個穩定的、冗餘資料少得表結構。

此時,表的結構變得穩定了,而且表中的冗餘資訊相對沒有正規化也少了很多。可是,第一正規化只是關聯式資料庫設計的最低滿足的正規化,第一正規化中仍然有很多的冗餘資訊,由此,需要第二正規化

第二正規化

第二正規化是滿足屬性對主鍵是完全函式依賴的,因此,滿足第二正規化的表當然也是滿足第一正規化的,第二正規化的目的就是消除表中的部分依賴。

幾個概念要解釋下, 1

:完全函式依賴

設有屬性集a和

s,若k中的所有屬性共同能夠推出

s中的任意屬性,且對於

a的任何真子集,都不能推出

p中的任意屬性,則成

a完全函式依賴s。

2:部分函式依賴

與上相似,只是,

a中存在真子集使得,該子集能推出

s中任意屬性.

不滿足第二正規化的表至少有以下幾個缺點:

1:資料重複,浪費空間

2:插入異常

3更新異常,刪除異常等

d:第三正規化

第三正規化是指在滿足第二正規化的情況下,消除表中的傳遞依賴。

所謂傳遞依賴,就是指

x-->y,y-->z,

那麼可以得到

y-->z.

傳遞依賴常發生在主鍵、外來鍵、外來鍵相關的屬性上,例如,假設有這樣的表

學生表(學生

id,學生姓名,院系

id,院系名

),此處主鍵為(學生

id),外來鍵為(院系

id)

院系表(

院系id

,院長名稱

),主鍵為

(院系id)

很明顯,此處存在傳遞依賴,因為

學生id

可以唯一確定

院系id

,而院系

id 可以唯一確定

院系名。

從上面的表資料易知,不滿足第三正規化的表至少有以下幾個缺點:1 :

資料重複,浪費空間 2

:插入異常 3

:更新異常,刪除異常等

資料庫 資料庫正規化

關聯式資料庫的設計規範。不同的規範要求被稱為不同的正規化,越高的正規化資料庫冗餘越小。減少資料庫中資料冗餘的過程 1 第一正規化 1nf 在關係模式r中,當且僅當所有屬性只包含原子值,即每個分量都是不可再分的資料項,則稱r滿足1nf。例如表所示的教師職稱情況關係就不滿足1nf。原因在於,該關係模式中...

資料庫正規化 三正規化

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

資料庫的正規化

目前 關聯式資料庫 有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 和 第五正規化 5nf,又稱完美正規化 滿足最低要求的正規化是第一正規化 1nf 在第一正規化的基礎上進一步滿足更多規範要求的稱為第二正規化 2nf 其餘正規...