1. 程式人生 > >資料庫三正規化

資料庫三正規化

關係型資料庫設計是很重要的一門學科,設計的好壞與否,直接影響到後續業務效能。遵從資料庫方式進行資料庫設計,將極大程度上是的資料冗餘變少,後續整個資料庫的效能,維護與管理都將變得輕鬆。設計資料庫結構有六種正規化,而最常用的莫過於一二三正規化。本文將主要描述這三種正規化。

一、第一正規化(1NF)

1NF是對屬性的原子性約束,要求屬性(列)具有原子性,不可再分解。
關係資料模型要求所有的關係模式必須滿足第一正規化。

非第一正規化的例子
在這裡插入圖片描述
轉換為第一正規化
在這裡插入圖片描述

二、第二正規化(2NF)

符合1NF,每一條記錄存在惟一性約束,即實體的惟一性。
資料表裡的所有屬性(列)都要該表的主鍵有完全依賴關係。
如果有屬性列只和主鍵的一部分(複合主鍵)有關的話,則應將其獨立出來變成另一個數據表。
假定需要設計學生選課表,需要考慮以下資訊:
   學生有那些基本資訊?
   學生選了哪些課,成績是什麼?
   每個課的學分是多少?
   學生屬於那個系,系的基本資訊是什麼?

不符合2NF示例
在這裡插入圖片描述

改進後的符合2NF示例
在這裡插入圖片描述

三、第三正規化(3NF)

滿足1NF,2NF且非主鍵欄位之間不能有依賴關係或者表上不存在由非主鍵可推匯出屬性列。

三正規化示例:

在這裡插入圖片描述
改進後的三正規化
在這裡插入圖片描述