阿摩線上測驗 登入

申論題資訊

試卷:96年 - 96 專技高考_資訊技師:資料結構(包括資料庫)#50597
科目:資料結構
年份:96年
排序:0

申論題內容

五、關聯表為何需要正規化?關聯式資料庫第一正規化形式(1NF)、第二正規化形式 (2NF)、第三正規化形式(3NF)、第四正規化形式(4NF)定義為何?(20 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

正規化的目的是通過結構化資料,消除冗餘和異常,確保數據的一致性和完整性。每個正規化形式(1NF、2NF、3NF、4NF)在不斷細化資料依賴關係,優化數據庫結構。

為何需要正規化?

正規化是指將關聯式資料庫中的資料組織成結構化形式的過程。其目的是:

  1. 減少數據冗餘:避免相同數據在多個表中重複出現。
  2. 消除資料異常:避免資料插入、更新和刪除異常,確保數據的一致性和完整性。
  3. 提高查詢效率:通過消除冗餘數據和確保數據依賴性的明確性,優化數據庫查詢。

第一正規化形式(1NF)

定義

  • 每個表格的欄位必須具有原子性,即每個欄位都只能包含單一值,不能有重複的數組或集合。
  • 表格中的每一列必須是不可分割的單元。

示例

  • 非1NF:{學生ID, 學生姓名, 科目1, 科目2, ...}
  • 1NF:{學生ID, 學生姓名, 科目},每行只包含一個科目。

第二正規化形式(2NF)

定義

  • 必須先滿足1NF。
  • 所有非主鍵屬性都必須完全依賴於主鍵,而不能只依賴於主鍵的一部分(消除部分依賴性)。

示例

  • 非2NF:{學生ID, 科目, 科目名稱, 科目成績}
  • 2NF:拆分成兩個表:
    1. {學生ID, 科目, 科目成績}
    2. {科目, 科目名稱}

第三正規化形式(3NF)

定義

  • 必須先滿足2NF。
  • 所有非主鍵屬性都不能依賴於其他非主鍵屬性(消除傳遞依賴性)。

示例

  • 非3NF:{學生ID, 科目, 科目成績, 學院名稱, 學院地址}
  • 3NF:拆分成三個表:
    1. {學生ID, 科目, 科目成績}
    2. {科目, 科目名稱}
    3. {學院名稱, 學院地址}

第四正規化形式(4NF)

定義

  • 必須先滿足3NF。
  • 消除多重依賴性,即一個表格中不能存在非平凡且非函數依賴的多值依賴。

示例

  • 非4NF:{學生ID, 課程, 語言}
    • 可能的多值依賴關係:學生可以修多門課程,且會說多種語言。
  • 4NF:拆分成兩個表:
    1. {學生ID, 課程}
    2. {學生ID, 語言}