首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

關係資料庫正規化三大範式深度解析:1NF/2NF/3NF 遞進式要求與實體關係建模實戰

     編輯:關於SqlServer

建構資料庫必須遵循規則,關係資料庫中此規則即範式。範式為符合某級別的關係模式集合。關係必須滿足不同範式。目前有六種範式:1NF 到 6NF。滿足最低要求為 1NF。在 1NF 基礎上進一步滿足更多要求為 2NF,以此類推。**一般資料庫僅需滿足 3NF 即可。**

3.4.1 第一範式 (1NF):無重複欄位

任何關係資料庫的基本要求,不滿足 1NF 即非關係資料庫。

定義: 資料庫表每一欄位為不可分割基本資料項,同一欄位不可有多個值——實體某屬性不可有多值或重複屬性。若出現重複屬性,需定義新實體,由重複屬性構成,新舊實體為一對多關係。1NF 中每列僅包含一個實例資訊。例:員工資訊表不可將所有資訊放一欄,也不可將多欄合併;每列僅代表一員工資訊,一員工資訊僅出現一次。**簡言之:1NF = 無重複欄位。**

3.4.2 第二範式 (2NF):非主屬性非部分依賴主鍵

建立在 1NF 基礎上(滿足 2NF 必先滿足 1NF)。

要求: 表中每個實例/列必須可被唯一區分。通常需加一欄儲存唯一標識。如員工資訊表加 emp_id(員工編號),每員工編號唯一,故可唯一區分。此唯一屬性稱主關鍵字/主鍵/主碼。

2NF 要求實體屬性完全依賴主關鍵字。完全依賴指不存在僅依賴主鍵一部分的屬性。若存在,該屬性與主鍵該部分應分離成新實體,新舊實體為一對多。**簡言之:2NF = 非主屬性非部分依賴主鍵。**

3.4.3 第三範式 (3NF):屬性不依賴其他非主屬性

滿足 3NF 必先滿足 2NF。

要求: 資料庫表不包含已在其他表含有的非主關鍵字資訊。例:存在部門資訊表(含 dept_id、部門名稱、部門簡介)。員工資訊表列出 dept_id 後,**不可再加入部門名稱、簡介等部門相關資訊**。若無部門表,依 3NF 應建構之,否則產生大量資料冗餘。**簡言之:3NF = 屬性不依賴其他非主屬性。**

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved