1. 程式人生 > >《SQL入門經典》筆記(第四章:建立資料庫之規格化資料庫)

《SQL入門經典》筆記(第四章:建立資料庫之規格化資料庫)

1. 原始資料庫:

在未規格化之前,一些資料可能會在多個表中出現,這被稱作資料冗餘。資料冗餘對安全、磁碟利用、查詢速度和資料庫更新都有壞處。尤其是資料完整性會受到影響。

 

2. 什麼是規格化?

規格化是把原始資料庫分解為表,去除資料庫裡冗餘資料的過程。資料庫開發人員利用規格化來設計資料庫。

規格化的優點:

  • 更好的資料庫整體性組織;
  • 減少冗餘資料;
  • 資料庫內部的資料一致性;
  • 更靈活的資料庫設計;
  • 更好地處理資料庫安全;
  • 加強引用整體性的概念(一個表裡某一列的值依賴於另一個表裡某列的值)。

規格化缺點:降低資料庫效能。

 

3. 規格形式:

具體的規格化方針被稱為規格形式,是規格化中不可或缺的概念。

(1)什麼是規格形式?

規格形式是衡量資料庫被規格化級別(或深度)的一種方式。資料的規格化級別由規格形式決定。

 

(2)常見的三種規格形式:

a. 第一規格形式

資料庫必須處於第一規格形式(突然想到這就是以前老師講的正規化。。?)。

第一規格形式的目標是把原始資料分解到表中並給大多數表或全部表設定一個主鍵(以此來從本質上區別各個表)。

 

b. 第二規格形式:

第二規格形式必須滿足第一規格形式。目標是提取對主鍵僅有部分依賴的資料,把它們儲存到另一表中。

如何理解“部分依賴”呢?對於主鍵EMP_ID而言,僱員的個人資訊依賴於主鍵,例如EMP_NAME, EMP_ADDRESS等;而一些與主鍵聯絡不是很緊密的欄位,例如員工進入公司的時間DATE_HIRE,上次晉升時間DATE_LAST_RAISE等。

 

c. 第三規格形式:

第三規格形式必須滿足第一和第二規格形式。目標是刪除表裡不依賴於主鍵的資料。對於EMPLOYEE_例子而言,員工的職位等資訊和EMP_ID完全不相關,因此其被摘出放入新表。如下圖所示。

 

4. 資料庫邏輯設計/邏輯建模:

把資料安排到邏輯的、有組織的物件組,以便於維護的過程。

(1)什麼是終端使用者的需求?

任何資料庫設計都要考慮終端使用者。終端使用者需求是最重要的考慮因素。

那麼誰是終端使用者呢?——終端使用者是最終使用資料庫的人。

設計時要考慮的與使用者相關的因素包括:資料庫裡應該儲存什麼資料、使用者如何訪問資料庫、以何許可權訪問、資料庫中的資料如何分組、哪些資料最常被訪問、全部資料與資料庫如何關聯、採取什麼措施保證資料的正確性、如何減少資料冗餘、如何利於資料庫維護……

 

(2)資料冗餘:資料應該沒有冗餘。

 

5. 命名規範:

命名規範是在資料庫規格化過程中最重要的考慮因素之一。