0

私は書店に一連の関数依存関係 F、R = {cid、cname、bid、name、rentdate、returndate、cost} を持っています。そのテーブルは 1 つだけです。

customerid、bookid、bookname、この人物によるこの本のレンタル日と返却日。

明らかに、BCNF ではありません

しかし、これに対して重要な機能依存関係の F を特定する方法は?

私の意見では:

cid -> cname

入札 -> bname

入札、賃借日 -> 返却日、cid

それは大丈夫ですか?最後の機能依存関係では、特定の時間に 1 冊の本をレンタルする各注文には、固有の返却日があり、1 人だけに属していると思います

しかし、このテーブルでは、rentdate と returndate も null に設定できるため、この関数の依存関係についても混乱しています!!!

このようにして、

入札、賃借日 -> 返却日、cid

正しい?

4

1 に答える 1

0

Codd は、null を持つタプルを関数依存関係の適用から除外しただけです。私の知る限り、Codd の 3 値ロジックを使用して、純粋な SQL の関数依存性に対処する一貫した方法はありません。

したがって、ほとんどの人がヌルを避けるように言うと思います。明らかに、それは実際に役立つ推奨事項として常に受け入れられるわけではありません。

ただし、興味がある場合は、このトピックに関する学術研究が行われています。特定のこの問題をカバーする論文があります。

Antonia Badia および Daniel Lemire 著、null マーカーを使用した機能的依存関係、Computer Journal The Computer Journal (2015) 58 (5): 1160-1168。http://arxiv.org/abs/1404.4963

于 2015-05-15T00:21:06.110 に答える