范式簡單說明

  • 1NF:每一列都是不可分割的原子數(shù)據(jù)項

  • 2NF:消除非主屬性對碼的部分函數(shù)依賴

  • 3NF:消除非主屬性對碼的傳遞函數(shù)依賴

 

詳細解析查看百度百科:數(shù)據(jù)庫范式

如何理解這幾個范式的含義?光看字面意思就非常的晦澀!

這幾種范式有什么意義呢?可以簡單理解為是一種設計標準。

一般我們是如何設計表字段呢? 似乎并沒有什么硬性的要求,可以把一個表搞成幾個表,反過來也行;

幾十個字段放一起也行,拆分在不同的地方也行。但是,這種隨心所欲的設計,項目是走不長遠的  電腦培訓,計算機培訓,平面設計培訓,網(wǎng)頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

 

1NF:每一列都是不可分割的原子數(shù)據(jù)項

1NF理解起來比較容易,關系型數(shù)據(jù)庫一般都滿足這個,是關系型數(shù)據(jù)庫最基本的要求了。

即每一列所代表的數(shù)據(jù)屬性是不可再分的,就像原子一眼,已經(jīng)是物質構成的最小單位。如下圖:

電腦培訓,計算機培訓,平面設計培訓,網(wǎng)頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

圖1

 

商品類型列包涵了2種屬性:分類ID與名稱;

這在數(shù)據(jù)庫表中是不可能存在的,即取數(shù)據(jù)的時候“商品類型”這一列不可能即代表名稱又代表ID,符合1NF要求的表應該如下:

電腦培訓,計算機培訓,平面設計培訓,網(wǎng)頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

圖2

 

這樣設計就比較清晰明了了;1NF比較好理解,一般都不會犯錯誤這種錯誤,但也不排除例外的。

比如難道就不能按照一定格式存儲嗎,比如這樣:分