SQL 第一正規化 第二正規化 第三正規化

2021-09-01 13:29:09 字數 1812 閱讀 6151

作者 : dolphin

一、第一正規化 1nf

要求:每乙個分量必須是不可分的資料項。

特點:1)有主鍵,且主鍵不能為空。

2)字段不能再分。

示例:(以下例子不滿足第一正規化)

/*學號      年齡        資訊*/

sno sage sinfo

1001 20 陝西,寶雞

主鍵:sno

不滿足原因:1)主鍵重複。2)sinfo欄位可以再分。

二、第二正規化 2nf

要求:在正規化一的基礎上,且每乙個非主屬性完全函式依賴於碼。

特點:1)滿足第一正規化。

2)表中的每乙個非主屬性,必須完全依賴於本表碼。

3)只有當乙個表中,主碼由兩個或以上的屬性組成的時候,才會出現不符合第二正規化的情況。

示例:(以下例子不符合第二正規化)

/*學號    課程號     得分    課程名*/

sno cno score sname

1001 001 99 資料庫

主鍵: sno,cno

不滿足原因:sname不完全依賴於碼,課程名部分依賴於碼cno。

三、第三正規化 3nf

要求:在滿足第二正規化的基礎上,且每乙個非主屬性既不部分依賴於碼也不傳遞依賴於碼。

特點:1)滿足第二正規化。

2)非主屬性不能傳遞依賴於碼。

示例:(以下例子不符合第三正規化)

/*學號     系別     系主任*/

sno sdept shead

1001 計算機系 張三

主鍵:sno

不滿足原因:shead傳遞依賴於碼,sno->sdept->shead,可得sno->shead。

四、bcnf

要求:在滿足第三正規化的基礎上,且不允許主鍵的一部分被另一部分或其它部分決定。

特定:1)滿足第三正規化。

2)所有非主屬性對每乙個碼都是完全函式依賴。

3)所有的主屬性對每乙個不包含它的碼,也是完全函式依賴。

4)沒有任何屬性完全函式依賴於飛碼的任何一組屬性。

示例:(以下例子不符合第bcnf正規化)

/*學生       老師        課程*/

stu teacher course

張三 李開復 資料庫

假設:每個老師只教一門課。

候選碼:

(stu,teacher)->course

(stu,course)->teacher

這兩個碼由兩個屬性組成,而且它們是相互交叉的,所以不存在傳遞依賴,所以為3nf。

但是由於:teacher->course,(主鍵的一部分被另一部分決定),所以不符合bcnf。

giseryang.第一正規化,第二正規化,第三正規化[cp/ol].

,2012-05-09/2014-05-28.

ruthless.資料庫設計三大正規化[cp/ol].

,2012-04-01/2014-05-28. 

allenlsy 孤而無寂的csdn部落格.第一正規化,第二正規化,第三正規化,bcnf[cp/ol].

,2010-03-08/2014-05-28

第一正規化,第二正規化,第三正規化

第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...

第一正規化,第二正規化,第三正規化

第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...

第一正規化,第二正規化,第三正規化

第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...