范式簡單說明
1NF:每一列都是不可分割的原子數(shù)據(jù)項(xiàng)
2NF:消除非主屬性對碼的部分函數(shù)依賴
3NF:消除非主屬性對碼的傳遞函數(shù)依賴
詳細(xì)解析查看百度百科:數(shù)據(jù)庫范式
如何理解這幾個范式的含義?光看字面意思就非常的晦澀!
這幾種范式有什么意義呢?可以簡單理解為是一種設(shè)計標(biāo)準(zhǔn)。
一般我們是如何設(shè)計表字段呢? 似乎并沒有什么硬性的要求,可以把一個表搞成幾個表,反過來也行;
幾十個字段放一起也行,拆分在不同的地方也行。但是,這種隨心所欲的設(shè)計,項(xiàng)目是走不長遠(yuǎn)的
1NF:每一列都是不可分割的原子數(shù)據(jù)項(xiàng)
1NF理解起來比較容易,關(guān)系型數(shù)據(jù)庫一般都滿足這個,是關(guān)系型數(shù)據(jù)庫最基本的要求了。
即每一列所代表的數(shù)據(jù)屬性是不可再分的,就像原子一眼,已經(jīng)是物質(zhì)構(gòu)成的最小單位。如下圖:
圖1
商品類型列包涵了2種屬性:分類ID與名稱;
這在數(shù)據(jù)庫表中是不可能存在的,即取數(shù)據(jù)的時候“商品類型”這一列不可能即代表名稱又代表ID,符合1NF要求的表應(yīng)該如下:
圖2
這樣設(shè)計就比較清晰明了了;1NF比較好理解,一般都不會犯錯誤這種錯誤,但也不排除例外的。
比如難道就不能按照一定格式存儲嗎,比如這樣:分