リンクされた記事は特によく書かれていません。(これは観察であり、批判ではありません。著者の母国語は英語ではありません。) アルゴリズムを書き直してみます。これは、私がこれを行う方法を教えているのではありません。これは、元の作者がこれを行うように言っている方法の私の解釈です.
- FD の左側にも右側にもない属性を特定します。
- FD の右側のみにある属性を識別します。
- FD の左側のみにある属性を識別します。
- 手順 1 と 3 の属性を組み合わせます。
- ステップ 4 の属性のクロージャを計算します。クロージャがすべての属性を含む場合、ステップ 4 の属性が唯一の候補キーを構成します。(候補キーがいくつあっても、それらのすべてにこれらの属性が含まれている必要があります。)
- ステップ 4 とステップ 2 に含まれていない属性を特定します。
- 手順 4 の属性の閉包と、手順 6 の属性のすべての可能な組み合わせを計算します。
したがって、投稿したFDについては、これで終わります。
- {は}
- {}
- {B}
- {BF}
- {BF} の閉包は {BF} です。それはすべての属性ではありません。(ただし、すべての候補キーには {BF} が含まれている必要があります。)
- {ACDE}
- これらの属性セットの閉包を計算します。
- {ABF}
- {CBF}
- {DBF}
- {EBF}
- {ACBF}
- {ADBF}
- {AEBF}
- {CDBF}
- {CEBF}
- {DEBF}
- {ACDBF}
- {ADEBF}
- {CDEBF}
これらの組み合わせが正しければ、すべての候補キーがステップ 7 の可能性の中に見つかります。あなたの例では、3 つの候補キーがあります。