阿摩線上測驗 登入

申論題資訊

試卷:103年 - 103 專技高考_電子工程技師:電子計算機原理#43191
科目:計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)
年份:103年
排序:0

申論題內容

五、請說明資料庫的「正規化」(Normalization)。(10 分)何謂 BCNF(Boyce-Codd Normal Form)正規化形式?(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

資料庫的「正規化」(Normalization)

正規化(Normalization)是指通過分解資料庫中的表格來消除資料冗餘,減少插入、更新和刪除操作中的異常,並提高資料的一致性和完整性。正規化的目的是將資料庫結構轉換為一組小的、更易於管理的表,每個表只包含相關的資料。正規化過程通常包括將資料庫轉換為若干正規化形式(Normal Forms,NFs),每個正規化形式都有具體的要求和規則。

正規化的主要步驟和形式

  1. 第一正規化形式(1NF)

    • 要求:每個表格的每一列都是原子的(不可再分的),即每個欄位只包含單一值。
    • 目的:消除重複的群組,確保每個欄位只有一個值。
  2. 第二正規化形式(2NF)

    • 要求:首先符合1NF,並且每個非主鍵欄位都完全依賴於主鍵的全部,而不是部分。
    • 目的:消除部分依賴,確保每個非主鍵欄位都依賴於主鍵的整體。
  3. 第三正規化形式(3NF)

    • 要求:首先符合2NF,並且每個非主鍵欄位都只依賴於主鍵,而不依賴於其他非主鍵欄位。
    • 目的:消除傳遞依賴,確保每個非主鍵欄位只依賴於主鍵。

BCNF(Boyce-Codd Normal Form)正規化形式

定義

BCNF(Boyce-Codd Normal Form)是一種比3NF更嚴格的正規化形式,旨在解決3NF無法處理的一些異常情況。BCNF的要求如下:

  • 一個關係中的每個決定因素(determinant)都是候選鍵(candidate key)。
  • 具體來說,如果關係 RRR 中存在函數依賴 X→YX \rightarrow YXY,則 XXX 應該是一個候選鍵。

BCNF 的要求和應用

  • 候選鍵:候選鍵是一組能夠唯一標識關係中元組的屬性組合,且其中不包含多餘的屬性。
  • 函數依賴:在關係 RRR 中,若屬性集 XXX 的值唯一地確定屬性集 YYY 的值,則稱 YYY 函數依賴於 XXX,記作 X→YX \rightarrow YXY
  • 應用:BCNF要求每個決定因素都是候選鍵,這意味著在BCNF中,每個非候選鍵的屬性都應該唯一地依賴於候選鍵,而不能依賴於其他非候選鍵的屬性。

示例

假設有一個表格 RRR,其結構如下:

學生ID(StudentID) 課程ID(CourseID) 教師(Teacher)
1 CS101 Dr. Smith
2 CS101 Dr. Smith
3 CS102 Dr. Brown

在這個例子中,假設有以下函數依賴:

  • {學生ID,課程ID}→教師\{學生ID, 課程ID\} \rightarrow 教師{學生ID,課程ID}教師
  • 教師→課程ID教師 \rightarrow 課程ID教師課程ID

雖然該表滿足3NF,但不滿足BCNF,因為 "教師" 不是候選鍵,卻決定了 "課程ID"。

為了使表格滿足BCNF,我們需要將其分解成兩個表格:

  1. 教師-課程表:
教師(Teacher) 課程ID(CourseID)
Dr. Smith CS101
Dr. Brown CS102
  1. 學生-教師表:
學生ID(StudentID) 教師(Teacher)
1 Dr. Smith
2 Dr. Smith
3 Dr. Brown

分解後,兩個表都滿足BCNF的要求。

總結

  • 正規化:通過將資料庫分解為更小的表,減少資料冗餘,提高資料的一致性和完整性。
  • BCNF:比3NF更嚴格,要求每個決定因素都是候選鍵,進一步消除異常情況,提高資料庫設計的質量。