R1(A,B,F)
R2(B,H)
R3(B,C,I)
R4(A,E)
R5(C,D)
R6(A,B,C)
本關聯經第二正規化後並無出現遞移相依,故已符合第三正規化。
要將關聯表格 R(A, B, C, D, E, F, H, I)分割成符合2NF和3NF要求的關聯表格,我們需要考慮之前提到的功能相依(Functional Dependency):
2NF要求在1NF的基礎上,消除非主鍵屬性對主鍵的部分依賴。換句話說,每個非主鍵屬性必須完全依賴於主鍵。
在1NF中,我們已經確定(A, B, C)是主鍵。現在我們要檢查是否有任何非主鍵屬性是對主鍵的部分依賴。
根據功能相依:
這些部分依賴意味著我們需要將R分解成多個表格,以消除部分依賴。
這樣,我們可以將R分解成以下表格:
3NF要求在2NF的基礎上,消除非主鍵屬性對主鍵的傳遞依賴。換句話說,非主鍵屬性必須直接依賴於主鍵,不能通過其他非主鍵屬性傳遞依賴於主鍵。
在我們的2NF分解中,R4(A, B, C, F, I)仍有以下功能相依:
這些是直接依賴,沒有傳遞依賴,所以R4已經符合3NF的要求。
R1(A, E)
R2(B, H)
R3(C, D)
R4(A, B, C, F, I)
這四個表格滿足2NF和3NF的要求,並消除了所有部分依賴和傳遞依賴,保證了資料的正規化。