2

SOには多くの関連する質問がありますが、この質問に答えることができるものはありません:

依存関係を維持しながら、損失のない結合を BCNF 関係に分解できる 3NF 関係を持つことは可能ですか?

1 つまたは複数の依存関係を緩和する準備ができている場合は、3NF 関係を BCNF に分解できることは承知しています。そして Beeri と Bernstein は、形式 {AB->C, C->B} の FD が BCNF に還元できない 3NF 関係を与えることを証明しました。しかし、3NF で BCNF に還元できる場合もありますか?

追加の非公式なオタク ポイントとして、BCNF ではなく 3NF で許可されている依存関係を表す適切な用語を知りたいです。部分的および推移的な依存関係に基づいて、1NF、2NF、および 3NF を区別するのは非常に簡単ですが、私の考えでは、BCNF の問題の半分は、禁止されている依存関係のタイプに簡単な名前がないことです。

4

1 に答える 1

1

しかし、3NF で BCNF に還元できる場合もありますか?

はい。ウィキペディアに例があります

コート開始時刻 終了時刻 料金タイプ
--
1 09:30 10:30 セイバー
1 11:00 12:00 セーバー
1 14:00 15:30 標準
2 10:00 11:30 プレミアムB
2 11:30 13:30 プレミアムB
2 15:00 16:30 プレミアムA

その例の機能的な依存関係はリストされていませんが、派生させることはできます。以下に FD をリストします。

AB→CD
AC→BD
BD→AC
CD→AB
ABC->D
BCD->A
ABD->C
ACD->B
D->A

追加の非公式なオタク ポイントとして、BCNF ではなく 3NF で許可されている依存関係を表す適切な用語を知りたいです。. . . BCNF の問題の半分は、禁止されている依存関係のタイプに簡単な名前がないことです。

BCNF では、すべての行列式 (左側) が候補キーでなければなりません。または、すべての矢印は候補キーからの矢印であると言えます。それをひっくり返して、BCNF は候補キーではない行列式を禁止します。

ウィキペディアの記事の候補キーは {AB, AC, BD, CD} です。関数依存性 D->A のため、開始関係は BCNF にありません。そのFDの行列式D は候補キーではありません。

于 2015-03-01T14:33:23.457 に答える