誰かが3NFとBCNFの違いを説明してもらえますか?いくつかの例を提供することもできれば素晴らしいことです。ありがとう。
3NFとBCNFの違いはわずかです。
リレーションは、2NFにあり、主キーに推移的に依存する非プライム属性がない場合、3NFにあります。言い換えれば、Rの各機能依存性X⟶Aについて、次の条件の少なくとも1つが満たされる場合、関係Rは3NFにあります。
次の関係を考えます:
EMP_DEPT(firstName、employeeNumber、dateOfBirth、address、departmentNumber、departmentName)
従業員は1つの部門でのみ働くことができ、各部門には多くの従業員がいます。
候補キーはemployeeNumberです。
以下の機能的な依存関係を考慮してください。
上記の定義を考えると、2番目の機能依存関係が3NFの2つの条件のいずれも満たさないため、関係EMP_DEPTは3NFにないと結論付けることができます。
リレーションRは、3NFにあり、Rの各機能依存関係X⟶Aの場合、BCNFにあり、XはRのキーまたはスーパーキーです。言い換えると、3NFとBCNFの唯一の違いは、BCNFに存在しないことです。 3NFの2番目の条件。これにより、BCNFにある関係はすべて3NFになりますが、3NFにあるすべての関係がBCNFになるとは限らないため、BCNFは3NFよりも厳密になります。
次の関係を考えます:
STUDENT_COURSE(studentNumber、socialSecurityNumber、courseNumber)
学生は多くのコースを支援することができ、コースには多くの学生がいます。
候補キーは次のとおりです。
以下の機能的な依存関係を考慮してください。
上記の定義があれば、少なくともstudentNumberはSTUDENT_COURSEのキーまたはスーパーキーではないため、STUDENT_COURSEはBCNFにないと結論付けることができます。