0

これは、2011 年秋に開催されたデータベース コース (現在は coursera.org で自習) からの質問です。

次のリレーショナル スキーマを検討してください。

R1(A、B、C)、R2(B、D)

(a) スキーマを検討し、このスキーマの関係に保持される唯一の機能的依存関係は、A → B、A → C、B → A、A → D、およびこれらに続くすべての依存関係であると仮定します。スキーマは BCNF にありますか?

(b) 部分 (a) から依存関係 A → D を省略したとします。スキーマは BCNF にありますか?

(a) の質問に対する答えは「はい」です。それは私の答えに対応しています。2 番目の質問に対する正しい答えも「はい」です。しかし、それは私の答えに対応していません。

A → D 依存関係を省略すると、D は B に依存しなくなり、したがって B は B → D のキーではなくなります。したがって、BCNF 違反が発生します。

私は何を間違っていますか?

4

1 に答える 1

2

そして、元の問題ステートメントで言及した依存関係 B->D はどこにありますか?

その上。

元の問題ステートメント自体にかなりの欠陥があります。データベース設計において、複数の関係スキーマに「またがる」依存関係について話すことは非常にまれです。A->D はまさにそれを行います。

これはおそらく、与えられた関係スキーマ間の自然な結合から生じる関係で FD が保持されることになっていることを意味しますが、これは古典的な正規化理論に関して非常に非正統的な仮定です。私が知っている古典的な正規化理論は、そのような FD を扱っていません。

于 2013-12-28T21:49:31.473 に答える