sqlserver 三大正規化

2022-04-26 03:43:23 字數 2143 閱讀 7028

分析:資料庫設計應遵循三大正規化分別為:

第一正規化:確保表中每列的原子性(不可拆分);

第三正規化:非主鍵列之間沒有傳遞函式依賴關係(消除傳遞依賴);

詳述:第一正規化

例子:資訊如下:

針對以上需求,下面分別設計兩種型別**:

第一種表設計:不滿足第一正規化

第二種表設計:滿足第一正規化

第二正規化

需求描述:設計乙個訂單資訊表,訂單有多種商品,將訂單編號和商品編號作為聯合主鍵。

第一種表設計:不滿足第二正規化

分析:訂單編號和商品編號作為聯合主鍵,由於商品名稱,單位,**這幾列只與商品編號有關,與訂單

編號無關,因此與主鍵(聯合主鍵)無關,違反正規化第二原則。

第二種表設計:滿足第二正規化

分析:把第一種設計表進行拆分,把商品資訊分離到另乙個表中,把訂單專案表也分離到另乙個表中。

第三正規化

分析:在表中,乙個userid能確定乙個userlevel。這樣,userid依賴於studentno和cardno,而userlevel又依

賴於userid,這就導致了傳遞依賴,3nf就是消除這種依賴。

將以上**拆分成如下**,以滿足第三正規化:

分析:資料庫設計應遵循三大正規化分別為:

第一正規化:確保表中每列的原子性(不可拆分);

第三正規化:非主鍵列之間沒有傳遞函式依賴關係(消除傳遞依賴);

詳述:第一正規化

例子:資訊如下:

針對以上需求,下面分別設計兩種型別**:

第一種表設計:不滿足第一正規化

第二種表設計:滿足第一正規化

第二正規化

需求描述:設計乙個訂單資訊表,訂單有多種商品,將訂單編號和商品編號作為聯合主鍵。

第一種表設計:不滿足第二正規化

分析:訂單編號和商品編號作為聯合主鍵,由於商品名稱,單位,**這幾列只與商品編號有關,與訂單

編號無關,因此與主鍵(聯合主鍵)無關,違反正規化第二原則。

第二種表設計:滿足第二正規化

分析:把第一種設計表進行拆分,把商品資訊分離到另乙個表中,把訂單專案表也分離到另乙個表中。

第三正規化

分析:在表中,乙個userid能確定乙個userlevel。這樣,userid依賴於studentno和cardno,而userlevel又依

賴於userid,這就導致了傳遞依賴,3nf就是消除這種依賴。

將以上**拆分成如下**,以滿足第三正規化:

SqlServer 資料庫 三大 正規化

1 概述 一般地,在進行資料庫設計時,應遵循三大原則,也就是我們通常說的三大正規化,即第一正規化要求確保表中每列的原子性,也就是不可拆分 第二正規化要求確保表中每列與主鍵相關,而不能只與主鍵的某部分相關 主要針對聯合主鍵 主鍵列與非主鍵列遵循完全函式依賴關係,也就是完全依賴 第三正規化確保主鍵列之間...

SqlServer系列 資料庫三大正規化

1 概述 一般地,在進行資料庫設計時,應遵循三大原則,也就是我們通常說的三大正規化,即第一正規化要求確保表中每列的原子性,也就是不可拆分 第二正規化要求確保表中每列與主鍵相關,而不能只與主鍵的某部分相關 主要針對聯合主鍵 主鍵列與非主鍵列遵循完全函式依賴關係,也就是完全依賴 第三正規化確保主鍵列之間...

通俗易懂SQL server 中的三大正規化

一 第一正規化 官方定義 資料庫表中的所有欄位都是單一屬性,不可再分的。強調的是列的原子性。白話 每一列都有自己的屬性說明,誰也幫不了誰,誰幹誰的活。清晰明了。二 第二正規化 官方定義 一是表必須有乙個主鍵 二是沒有包含在主鍵中的列必須完全依賴於主鍵,而不能只依賴於主鍵的一部分。白話 資料庫表中有倆...