我想了解BCNF是什麼,我有這樣的關係:BCNF同一個代理鍵和兩個獨特的按鍵
學生(ID,SSN,電子郵件,名字,姓氏)
其中
- ID是主代理鍵與不爲空,並自動遞增特性,
- SSN是與非空屬性的唯一密鑰和
- 電子郵件也是一個獨特的密鑰與非空propery。
有沒有什麼違反BCNF,如果是的話,我怎麼能用更好的設計克服這種情況?
編輯
我想寫我的函數依賴,但請糾正我,如果我錯了。
確定其他屬性有三個屬性,所以令人困惑的是ssn和email都存在於方程的左側和右側。看來,這個關係不屬於BCNF但必須有一些錯誤:)
id -> (ssn, email, name, surname)
ssn -> (id, email, name, surname)
email -> (id, ssn, name, surname)
如果sedran的一組依賴項已完成,那麼是的。但作爲一般規則,重疊鍵的不存在並不意味着關係在BCNF中。如果碰巧有非關鍵依賴或部分關鍵依賴,那麼它不會滿足BCNF。 – sqlvogel 2013-05-12 09:01:10
@sqlvogel - 我想不出如果沒有重疊的鍵,你可能無法在BCNF中。你能告訴我一個例子嗎? – 2013-05-12 14:13:57
例如依賴關係A-> B,其中A和B是不重要的,無論候選關鍵字是什麼,都會違反BCNF(和3NF)。 – sqlvogel 2013-05-15 19:57:42