1

私は3NFとBCNFの違いに頭を悩ませようとしています。私はそこに到達していると思いますが、誰かが助けてくれるといいですね。

以下は、第3正規形の一連の関係です(関数従属性の識別から盗まれ、Connolly&Beggのデータベースシステムからそれらを取得しました)。

Client {clientNo(PK), clientName}
Owner {ownerNo(PK), ownerName}
Property {propertyNo (PK), propertyAddress, rent}
ClientRental {clientNo(PK), propertyNo(PK), rentStart, rentFinish, ownerNo(FK)}

各物件の所有者は1名のみで、クライアントはそれらの物件を借りることができます。家賃は物件ごとに固定されていると仮定します。

だから私の質問は:これらはBCNFにもありますか?

私の勘は、ClientRentalの関係はPropertyNo->ownerNoだからではありません。したがって、PropertyNoは機能依存性の決定要因ですが、スーパーキーではありません。

正しい球場の近くにありますか?

4

1 に答える 1

0

違いを表現するための短く非公式な方法は、BCNFでは、すべての関数従属性のすべての「矢印」が候補キーからの「矢印」であるということです。3NFにはあるが、BCNFにはないリレーションの場合、候補キー以外の何かから少なくとも1つの「矢印」があります。

BCNFに適合しない3NFテーブルのウィキペディアエントリ

よくある誤解は、2NF以上に正規化できず、次に3NF以上に正規化できず、次にBCNF以上に正規化できないというものです。実際、2NFに到達するために部分的なキーの依存関係を修正すると、多くの場合、5NFのすべての関係が残ります。つまり、2NFの1つの関係から、5NFの複数の関係に、間にBCNFで停止することなく移動しました。

于 2013-02-02T16:06:25.593 に答える