リレーショナル データベースの設計では、たとえば、スキーマ S(銀行家、bname、顧客) と関数の依存関係 (FD) があります。
銀行家 -> bname 顧客、bname -> 銀行家
スキーマ S は BCNF にありますか? または、次のようにする必要があります: (banker, bname) and (customer, banker)
リレーショナル データベースの設計では、たとえば、スキーマ S(銀行家、bname、顧客) と関数の依存関係 (FD) があります。
銀行家 -> bname 顧客、bname -> 銀行家
スキーマ S は BCNF にありますか? または、次のようにする必要があります: (banker, bname) and (customer, banker)
「S」はBCNFにはないと思います。以下は、Chris Date による BCNF の非公式な定義です。
唯一の決定要因が候補キーである場合にのみ、relvar は BCNF に含まれます。(データベース システムの紹介、第 7 版、367 ページ)
決定要因という用語は、機能依存関係の左側を意味します。左側が候補キーではない機能依存関係がある場合、その関係は BCNF にありません。
例を従来の表記法で書き直してみましょう。
R{ABC}
A->B
BC->A
AC と BC の 2 つの候補キーがあります。A->B の左側は候補キーではありません。したがって、R は BCNF にはありません。
または、次のようにする必要があります: (banker, bname) and (customer, banker)
いいえ、あなたの機能依存関係は、顧客が銀行家を決定しないことを明確に示しています。
(銀行員, bname) と (顧客, 銀行員) であるべきだと思います。私には外部キー関係のように見えます。