1nf是對屬性的原子性
,要求屬性具有原子性,不可再分解;
表:欄位1、 欄位2(欄位2.1、欄位2.2)、欄位3 ......如學生(學號,姓名,性別,出生年月日),如果認為最後一列還可以再分成(出生年,出生月,出生日),它就不是一正規化了,否則就是;
2nf是對記錄的惟一性
,要求記錄有惟一標識,即實體的惟一性,即不存在部分依賴;
表:學號、課程號、姓名、學分;這個表明顯說明了兩個事務:學生資訊, 課程資訊;由於非主鍵字段必須依賴主鍵,這裡學分依賴課程號,姓名依賴與學號,所以不符合二正規化。
可能會存在問題:
正確做法:
學生:student
(學號, 姓名);
課程:course
(課程號, 學分);
選課關係:studentcourse
(學號, 課程號, 成績)。
3nf是對字段的冗餘性
,要求任何字段不能由其他字段派生出來,它要求字段沒有冗餘,即不存在傳遞依賴;
表: 學號, 姓名, 年齡, 學院名稱, 學院**因為存在依賴傳遞: (學號) → (學生)→(所在學院) → (學院**) 。
可能會存在問題:
正確做法:
學生:(學號, 姓名, 年齡, 所在學院);
學院:(學院, **)。
一般說來,資料庫只需滿足第三正規化(3nf
)就行了。
沒有冗餘的資料庫設計可以做到。但是,沒有冗餘的資料庫未必是最好的資料庫,有時為了提高執行效率,就必須降低正規化標準,適當保留冗餘資料。具體做法是:在概念資料模型設計時遵守第三正規化,降低正規化標準的工作放到物理資料模型設計時考慮。降低正規化就是增加字段,允許冗餘,達到以空間換時間的目的
。
〖例〗:有一張存放商品的基本表,如表1所示。「金額」這個欄位的存在,表明該錶的設計不滿足第三正規化,因為「金額」可以由「單價」乘以「數量」得到,說明「金額」是冗餘字段。但是,增加「金額」這個冗餘字段,可以提高查詢統計的速度,這就是以空間換時間的作法。
在rose 2002
中,規定列有兩種型別:資料列和計算列。「金額」這樣的列被稱為「計算列」,而「單價」和「數量」這樣的列被稱為「資料列」。
優點:
缺點:
優點:
缺點:
1、通俗地理解資料庫三個正規化
2、資料庫模型設計,第一正規化、第二正規化、第三正規化簡單例子理解
3、資料庫三大正規化最簡單的解釋
資料庫(第一正規化,第二正規化,第三正規化)
正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...
資料庫(第一正規化,第二正規化,第三正規化)
正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...
資料庫(第一正規化,第二正規化,第三正規化)
正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...