【范式與函數依賴】3NF與BCNF的區別


 

*本文中碼指代候選碼,主屬性為構成碼的屬性。

先簡要引入幾個概念

圖1


圖2

  單拿出來我認為不是很好理解的3NF和BCNF詳細的說說。

  書上寫了,BCNF是完善后的3NF。從圖2中顯然得出,1-3NF都是規范非主屬性與碼之間的關系。而主屬性之間的關系沒有規范。有人說了 ,要是構成碼的主屬性之間存在部分函數依賴或傳遞函數依賴,那么這就不是碼,是超碼了。too young!誰告訴你碼必須是一個了?比方說AB->C,BC->A,此時AB、BC都是碼即ABC都是主屬性。所以ABC之間有什么函數依賴不在1-3NF的約束之內。所以需要有BCNF來約束主屬性之間的函數依賴了。

 舉個例子,R={AB->C,BC->A,C->A},R的碼為AB、BC,故主屬性為ABC,R為3NF。但是函數依賴C->A,決定因素C不包含碼BC故R不是BCNF。

 


免責聲明!

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



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