正規化的理解

2021-08-07 12:12:05 字數 1163 閱讀 2498

關聯式資料庫規範化:關係內部各屬性之間的聯絡的合理化程度-----正規化

符合第二正規化的就一定符合第一正規化

2nf在1nf的基礎之上,消除了非主屬性對於碼的部分函式依賴

函式依賴

屬性x能夠確定屬性y,則y函式依賴於x,即x->y(依賴於誰,誰在前面)。 碼:

除 k 之外的所有屬性都完全函式依賴於 k,則k是候選碼,簡稱碼。

注:可以超過乙個屬性(如果碼只有乙個屬性,則不存在非主屬性對碼的部分依賴)

主屬性:

包含在任何乙個碼中的屬性稱為主屬性

例:

函式依賴關係:學號—>姓名,學號—>系名,系名—>系主任,(學號,課名)->分數

對於(學號、課名)->姓名,非主屬性「姓名」對碼的部分函式依賴;

對於(學號、課名)->系名,非主屬性「系名」對碼的部分函式依賴;

不符合2nf的要求。

對於(學號、課名)->系名,系名->系主任,非主屬性系主任對碼的傳遞函式依賴;

也不符合3nf。

3nf在2nf的基礎之上,消除了非主屬性對於碼的傳遞函式依賴

3nf是對字段冗餘性的約束,即任何字段不能由其他字段派生,它要求字段沒有冗餘。

例1

假設表中有單價、數量、金額,那麼金額是冗餘字段,因為它能由(單價*數量)得到。但是,增加金額字段,可以提高查詢速度。

例2:

以上,不存在非主屬性對碼的部分函式依賴和傳遞依賴,屬於3nf。

消除主屬性對於碼的部分函式依賴與傳遞函式依賴。

上例,主屬性倉庫名對碼(管理員,物品名)的部分函式依賴。

消除函式依賴

正規化的理解

前言 為什麼要寫這篇文章呢,從去年年底開始,就和很多做技術的朋友交流過,從資料庫設計到資料庫架構各個方面的內容。有一些朋友執著於orm,執著於所謂的資料庫設計,卻忘記了一切技術是要為業務服務這個基石。當然這文章裡也有一些自己的理解,想向大家表達。正規化是什麼 正規化是符合某一種級別的關係模式的集合。...

三正規化的理解

1nf 字段不可分 2nf 有主鍵,非主鍵字段依賴主鍵 3nf 非主鍵字段不能相互依賴 解釋 1nf 原子性 字段不可再分,否則就不是關聯式資料庫 2nf 唯一性 乙個表只說明乙個事物 3nf 每列都與主鍵有直接關係,不存在傳遞依賴 不符合第一正規化的例子 關聯式資料庫中create不出這樣的表 表...

三正規化的理解

list b 第二正規化 2nf b 單關鍵字的表,或者若為組合關鍵字則必須沒有關鍵字組合鍵中的某個字段 非關鍵字段的表 b 第三正規化 3nf b 在第二正規化的基礎上,資料表中如果不存在傳遞函式依賴 關鍵字段 非關鍵字段x 非關鍵字段y list size large b 第一正規化 1nf b...