題組內容
二、假設關聯資料庫的表格 R(A,B,C,D)有四個屬性 A,B,C,D其功能相依Functional Dependency為{A,B,D}→C 與{C,D}→B
⑶請證明 R 滿足第三正規化(3NF)或反證 R 不滿足 3NF。(4 分)
詳解 (共 1 筆)
詳解
要證明關係 ?(?,?,?,?)R(A,B,C,D) 是否滿足第三正規化形式(3NF),我們需要首先了解什麼是第三正規化形式:
第三正規化形式(3NF)的定義
一個關係 ?R 若要滿足 3NF,需要滿足以下條件:
- 它必須已經滿足第二正規化形式(2NF)。
- 對於每個非平凡的函數相依 ?→?X→Y,以下至少一條成立:
- ?X 是超鍵(Superkey)。
- ?Y 是主屬性(Primary Attribute)(即屬於某個候選鍵的一部分)。
分析關係 ?R
我們已知:
- 候選鍵:{A, B, D}
- 功能相依:
- {?,?,?}→?{A,B,D}→C
- {?,?}→?{C,D}→B
在這裡,我們需要檢查這些功能相依是否符合 3NF 的條件。
1. 檢查 2NF
在之前的分析中,我們已經確定關係 ?R 滿足 2NF。所有非主屬性沒有對候選鍵的部分相依。
2. 檢查每個函數相依
我們需要檢查每個功能相依,確定它們是否滿足 3NF 的條件:
-
檢查 {?,?,?}→?{A,B,D}→C
- {?,?,?}{A,B,D} 是候選鍵,因此它是超鍵。
- 這個函數相依滿足 3NF 的第一個條件(因為 ?X 是超鍵)。
-
檢查 {?,?}→?{C,D}→B
- {?,?}{C,D} 不是候選鍵,因此不是超鍵。
- ?B 是主屬性的一部分(因為候選鍵是 {?,?,?}{A,B,D}),但這不是第三正規化所需的條件,因為主屬性需要是右側。
因此,{?,?}→?{C,D}→B 的這個函數相依不滿足 3NF 的條件。
結論
由於存在一個函數相依 {?,?}→?{C,D}→B 不能滿足 3NF 的條件,即左側不是超鍵且右側也不是完全是主屬性,關係 ?R 不滿足第三正規化形式(3NF)。
為了使關係 ?R 滿足 3NF,我們需要將其分解,使其所有的函數相依滿足 3NF 的條件。通常,我們可以將其分解成如下形式:
- ?1(?,?,?,?)R1(A,B,D,C) 其中 {?,?,?}→?{A,B,D}→C
- ?2(?,?,?)R2(C,D,B) 其中 {?,?}→?{C,D}→B
這樣,每個新的關係都滿足 3NF,因為每個關係中的函數相依都是以超鍵來決定非主屬性。
所以,根據上述分析,關係 ?R 不滿足第三正規化形式(3NF)。