一連の機能依存関係と出力候補キーを入力として取る練習をしています。アルゴリズムはありますか?そのような場合、FD:s を入力し、出力としてスーパーキー/候補キーのリストを取得できる Web ベースの実装はありませんか?
ここSOで見つけたものを練習します。適切な質問は 、言及された機能的依存関係がある特定の関係の最高の正規形を見つける方法です
B->G
BI->CD
EH-> AG
G-> DE
候補キーが BFHI であることを確認しようとしたときに、これを正しく行っているかどうかを確認してください。
FD B->G は ABCDEFHI->ABCDEFGHI と書き換えられるため、ABCDEFHI はスーパーキーです。FD BI->CD は ABEFGHI->ABCDEFGHI と書き換えられるため、ABEFGHI はスーパーキーです。FD EH->AG は BCDEEFHI->ABCDEFGHI と書き換えることができるため、BCDEEFHI はスーパーキーです。FD G->DE は ABCFGHI->ABCDEFGHI と書き換えられるため、ABCFGHI はスーパーキーです。
私たちのスーパーキーでは、BFHI はすべてのキーにあります。したがって、BFHI は候補キーであり、検査からわかるようにこれ以上減らすことはできません (?)
私はこれを正しい方法で推論していますか?
拡張アルゴリズムが処理できる別の問題があります。それが機能する場合、 データベースの無関係な属性と分解
ここで、FD:s は
A->BCD
BC->DE
B->D
D->A
ここで、FB A->BCD は AEF->ABCDEF として記述できるため、AEF はスーパーキーです。FD BC->DE は ABCF->ABCDEF として書き換えられるため、ABCF はスーパーキーです。FD B->D は ABCEF->ABCDEF と書き換えられるため、ABCEF はスーパーキーです。FD D->A は BCDEF->ABCDEF として書き換えることができるため、BCDEF はスーパーキーです。すべてのスーパーキーについて、F はすべてのスーパーキーに含まれる唯一のメンバーであるため、F が唯一の候補キーです。
これは機能しますか?
回答/コメントをありがとう