私はBCNFが何であるかを理解しようとしていますし、私はこのような関係を持っている:BCNFと2つのユニークなキー
学生(ID、SSN、電子メール、名、姓)
- IDがNULLでないとオートインクリメント特性一次代理キーは、ある
- SSNであります非ヌルプロパティのユニークキーおよび
- 電子メールはヌルプロパティーを持つユニークなキーです。
BCNFに違反することはありますか?その場合、どうすればより良いデザインでこの状況を克服できますか?
EDIT
私は、機能の依存関係を記述しようとしているが、私が間違っている場合は、私を修正してくださいしています。
他のものを決定する3つの属性があります。したがって、方程式の左側と右側にssnとemailの両方が存在するのは混乱します。この関係はBCNFではありませんが、何かが間違っ:)
id -> (ssn, email, name, surname)
ssn -> (id, email, name, surname)
email -> (id, ssn, name, surname)
セドランの依存関係のセットが完了したら、はい。しかし、一般的なルールとして、重複するキーがないということは自動的に関係がBCNFにあることを意味しません。非キー依存関係または部分的なキー依存関係が発生した場合、BCNFを満たすことはできません。 – sqlvogel
@sqlvogel - 重複しているキーがないと、BCNFにいかなくても失敗するとは思いません。私に例を教えてください。 –
など。 AとBが非プライムである依存関係A→Bは、候補キーが何であれBCNF(および3NF)の違反になります。 – sqlvogel