數據庫轉化為3NF以及BCNF


數據庫轉化為3NF以及BCNF

轉換為3NF保持函數依賴

例題:關系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D}

  1. 首先最小化處理得到\(F=A\rightarrow B,A\rightarrow C,AD\rightarrow E,E\rightarrow D\)
  2. 合並\(R_1={ABC},R_2={ADE},R_3={ED}\)

轉換為3NF保持函數依賴和無損性

例題:關系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D}

  1. 首先根據上面得到的\(R_1,R_2,R_3\)

  2. 計算出R的候選碼為AD,AE,生成兩個新的關系\(R_4{AD},R_5{AE}\)

  3. 下一步就是看包括關系,明顯\(R_3,R_4,R_5\)包括在\(R_2\)里面所以得到\(R_1,R_2\)

轉換為BCNF

例題:關系模式R<U,F>,其中:U={A,B,C,D,E},F={A→C,C→D,B→C,DE→C,CE→A},將其分解成BCNF並保持無損連接。

A:LR

B:L

C:LR

D:LR

E:L

計算BE的閉包得到ABCDE所以候選碼為BE

  1. 對於A→C不符合BCNF所以分離出來,\(R_1\) ={AC},\(R_2\)={ABDE}(去除C),這時\(F_2\) = {B→D,DE→D,BE→A},刪除DE→D,得到\(F_2\) = {B→D,BE→A}
  2. 對於\(R_2\)其中B→D中的B是決定因素但是不是碼(碼是BE),所以分離
  3. 得到\(R_3= {ABE},R_2 = {BD},R_1 = {AC}\)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM