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