3

在關係數據庫設計中,例如,存在模式S(銀行家,BNAME,客戶)和功能依賴(FDS)BC正規化與圓形函數依賴

banker-> BNAME 顧客,bname- >銀行家

BCNF中的模式S?或者它應該是: (銀行家,bname)和(客戶,銀行家)

+0

FD,banker-> bname(customer,bname) - >銀行家嗎? –

回答

0

我認爲應該是(銀行家,bname)和(客戶,銀行家)。看起來更像是一個與我有關的外鍵關係。

+0

我也這麼認爲,所以BCNF可以將1張FD分成更多的表格,但是1張表格不會超過1張,對嗎? –

+0

是的,作爲分裂關係模式的結果,FD確實可能變得難以言表。這種現象被稱爲「依賴性保存」。在邏輯數據庫設計中,FD需要通過邏輯數據庫約束來恢復(「替換」)。 –

1

我不認爲'S'在BCNF。 Chris Date對BCNF的非正式定義如下。

relvar在BCNF當且僅當唯一的決定因素是候選 鍵。 (簡介數據庫系統,第7版,第367頁)

術語行列式指函數相關的左手側。如果有一個函數依賴關係的左手邊不是候選關鍵字,那麼關係就不在BCNF中。

讓我們用傳統的表示法重寫你的例子。

R{ABC} 
A->B 
BC->A 

有兩個候選鍵:AC和BC。 A-> B的左側不是候選鍵。所以R不在BCNF。

或者它應該是:(銀行家,BNAME)和(客戶,銀行家)

號你的函數依賴說很清楚客戶確實確定銀行家。