資料庫正規化 三正規化設計

2021-10-07 11:35:15 字數 2422 閱讀 9802

資料庫第一正規化

原子性:表中每一列都不可以再分割成更小的列

資料庫第二正規化

不產生區域性依賴

每張表只描述一件事情

資料庫第三正規化

表中每列都直接依賴於主鍵,而不是通過其它列間接依賴於主鍵

什麼是資料庫正規化

學習第一正規化的應用

什麼是正規化

一種規則,指導程式設計師建立表的規則

程式設計師在設計表的時候,只需要符合三大正規化就可以了

有哪些正規化

滿足最低要求的正規化是第一正規化(1nf),在第一正規化的基礎上進一步滿足更多規範要求的稱為第二正規化(2nf),其餘正規化以次類推。一般說來,資料庫只需滿足第三正規化(3nf)就行了

滿足這些規範的資料庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常

原子性:表中每一列都不可以再分割成更小的列

如果一列中包含的資料還可以再拆分,不符合第一正規化

班級表學號

姓名班級

1000

張三一年級3班

1001

李四一年級2班

2001

王五二年級1班

解決方案

將班級列拆分成為年紀列和班號列兩個字段

學號姓名

年級班號

1000

張三一年級

3什麼是第一正規化?

原子性,每一列不可以繼續拆分

什麼是第二正規化

概念

在滿足第一正規化的基礎上,有更多的要求,才是第二正規化。特點是表中每一列都必須完全依賴於主鍵,而不是區域性依賴。

如果主鍵是復合主鍵,即有多列做為主鍵時,表中部分列只依賴主鍵的一部分,則不符合第二正規化。

不產生區域性依賴

每張表只描述一件事情

學生課程表,主鍵是聯合主鍵:學生id + 課程id

學生id

學生姓名

學生年齡

課程id

課程名字

課程週期

考試成績

stu001

張三22

course01

語文16周

80stu001

張三21

course02

數學14周

90stu002

李四19

course01

語文16周

78stu003

王五20

course03

英語18周

99解決方案

學生表,主鍵是學生id

學生id

學生姓名

學生年齡

stu001

張三22

課程表,主鍵是課程id

課程id

課程名字

課程週期

course01

語文16周

考試成績表,主鍵是學生id和課程id

學生id

課程id

考試成績

stu001

course01

80stu001

course02

90第二正規化特點?

不產生區域性依賴

每張表只描述一件事情

什麼是第三正規化

在滿足第二正規化的基礎上,有更多的要求。 表中每列都直接依賴於主鍵,而不是通過其它列間接依賴於主鍵

依賴關係

所謂傳遞依賴,指的是如果存在"a → b → c"的決定關係,則c傳遞依賴於a

滿足第三正規化的資料庫表應該不存在如下依賴關係:主鍵列 → 非主鍵列x → 非主鍵列y

學生資訊表 ,主鍵是學號

學號姓名

年齡所在學院

學院地點

1000

張三20

傳智專修學院

江蘇2000

李四19

廣州美術學院

廣州1001

王五21

傳智專修學院

江蘇2001

趙六20

廣州美術學院

廣州2002

小七18

廣州美術學院

廣州存在的傳遞關係:學號 --> 所在學院 --> 學院地點

當存在大資料量時,會造成資料冗餘

解決方案

學生表學號姓名

年齡所在學院id

1000

張三20

001學院表

學院id

學院名字

學院地點

001傳智專修學院

江蘇注:表使用的正規化越高階,被拆分的表就越多

​ 如果效能與正規化有衝突,優先考慮效能

第三正規化特點?

不產生傳遞依賴

資料庫正規化 三正規化

所謂第一正規化 1nf 是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化 1nf 表中的每個域值只能是實體的乙個屬性或乙個屬性的...

資料庫設計三大正規化資料庫設計三大正規化

為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...

資料庫設計的三正規化(六正規化)

資料庫是設計正規化理解 關係型資料庫的核心 規範化 規範化的存在是為了在資料庫組織儲存資料時使資料 保持完整性並且最小化的冗餘資料。資料庫設計有六種正規化規則,但通常我們再設計資料庫時,通常用到3種正規化。1.1 第一正規化 概念 指資料庫表的每一列的資料不可拆分,同一列不能有多個值,並且不能有重複...